忍者ブログ

マドノマグラの初心者自作ゲーム制作日誌 迷走モード

プログラミング初心者が自作ゲームを作成してみようとする動きを記す。現在迷走中。

ブログ履歴

2010/11/06: HSP3.22の環境を整えてみる
2009/11/09: Rubyで適当版自分用関連記事リンク作成プログラムを作る
2009/06/04: Visual C++(DXライブラリ使用)の環境を整えてみるも休止状態に
2009/03/17: ActionScript勉強の環境を整えるも結局休止状態に
2006/07/15: とりあえず分岐型ゲームを作る グリーンタワーVer1.2 ダウンロード(zip)
2006/07/02: ブログスタート。NScripterで何かを作ろうとする

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

赤ちゃんドラゴンと会話「初めてのプログラミング」13.4追加練習問題2問目

初めてのプログラミングの13.4追加練習問題2問目、赤ちゃんドラゴンと会話を考えてみる。

初めてのプログラミングのp134からのドラゴンクラスをベースに考えることにした。

とりあえず、1文字を入力するとそれに応じたコマンドが実行されるというものにした。さらに、終了コマンドで、すぐこのプログラムを終われるようにした。

初めてのプログラミング
Chris Pine
オライリー・ジャパン
売り上げランキング: 161616
おすすめ度の平均: 3.5
3 Rubyを使ってHello, Worldから
4 丁寧な解説
4 Ruby
PR

OrangeTreeクラスの作成「初めてのプログラミング」13.4追加練習問題1問目

初めてのプログラミングの13.4追加練習問題1問目、OrangeTreeクラスの作成を考えてみる。

class 作成。
とりあえず、初期化したときに、高さ1、実の数0、経年0を設定。

木の高さは(経年+1)の2乗

経年の際
実がなるのは4年目からで、その実の数はフィボナッチ数列の2から始まるようにした。
ちなみに、今までに実が1個以上木に付いている場合は、実が落ちたことにして、新たに実がつく。
そして、11年目で木が枯れてプログラムから exit することにした。

また実を獲ってみるときは、0個のときに獲れない表示、1個以上のときは「うまい」表示

とりあえず、全コマンドを入力したものをループさせると、ちゃんと11年目で枯れて終了した。

初めてのプログラミング
Chris Pine
オライリー・ジャパン
売り上げランキング: 161616
おすすめ度の平均: 3.5
3 Rubyを使ってHello, Worldから
4 丁寧な解説
4 Ruby

ローマ数字変換メソッド.to_romanの作成「初めてのプログラミング」13.1練習問題3

初めてのプログラミングの13.1練習問題3、ローマ数字変換メソッド.to_romanの作成を考えてみる。

「初めてのプログラミング」練習問題9.4の3問目を考えてみる の newromannumerals0.rb に手を加える形をとった。

数字が1から3999の範囲外のときに、.to_roman が成された場合には、nil を返す仕様にした。

5つの数字についてテストを行い、うまく動作することを確認した。

初めてのプログラミング
Chris Pine
オライリー・ジャパン
売り上げランキング: 161616
おすすめ度の平均: 3.5
3 Rubyを使ってHello, Worldから
4 丁寧な解説
4 Ruby

整数階乗メソッド.factionalの作成「初めてのプログラミング」13.1練習問題2

初めてのプログラミングの13.1練習問題2、整数階乗メソッド.factionalの作成を考えてみる。

初めてのプログラミングの p91 に手を加える形で考えた。

5つのパターンについてテストした。

初めてのプログラミング
Chris Pine
オライリー・ジャパン
売り上げランキング: 161616
おすすめ度の平均: 3.5
3 Rubyを使ってHello, Worldから
4 丁寧な解説
4 Ruby

配列メソッド.shuffleの作成「初めてのプログラミング」13.1練習問題1

初めてのプログラミングの13.1練習問題1、配列メソッド.shuffleの作成を考えてみる。

配列変化時に連続単語判定の入れ込み「初めてのプログラミング」10.3練習問題1問目リターンズ2の shuffle3.rb に手を加える方針をとった。

いじるところはあまりなかったものの、shuffle3.rb に書いていた shuffleメソッドのままだと、.shuffle を起動させて2回目でエラーを起こした。そこで、shuffling と名称を変えたところ、スムースに進み実行できた。

初めてのプログラミング
Chris Pine
オライリー・ジャパン
売り上げランキング: 161616
おすすめ度の平均: 3.5
3 Rubyを使ってHello, Worldから
4 丁寧な解説
4 Ruby

人名誕生日の読み込みと入力表示「初めてのプログラミング」12.6追加練習問題2問目

初めてのプログラミングの12.6追加練習問題2問目、人名誕生日の読み込みと入力表示を考えてみる。

ルール確認
テキストファイルを読み込み
それは each_line で1行ずつ配列格納
さらに、split で1行3個の配列にして、名前をキーにした hash。

その後、名前を入力。
hash で合致したものは誕生日表示。
そうじゃない場合は、データにないよ!と表示。

とりあえずうまくいった。

初めてのプログラミング
Chris Pine
オライリー・ジャパン
売り上げランキング: 161616
おすすめ度の平均: 3.5
3 Rubyを使ってHello, Worldから
4 丁寧な解説
4 Ruby

ローマ数字から算用数字へ「初めてのプログラミング」12.6追加練習問題1問目

初めてのプログラミングの12.6追加練習問題1問目、ローマ数字から算用数字への変換を考えてみる。

ルール確認
方針 最大3999まで

nilniiM,MDC,CLX,XVIのレベルを考える。各位の10,5,1要素である。

与えられたローマ数字の文字チェックの開始。

ただし、チェック前に、末尾に改行コードを挿入.
一文字ずつ、疑似的なチェックポインタが動くような感覚で。


5の要素のあるなしチェック
次が10と5要素が来た場合、ローマ数字のルールに反するので不正チェック。以下のチェックは関数呼び出しはあるもののスルー。
そうじゃない場合は、結論の数に数値を追加。

次に1の要素チェックへ移動。

1の要素あるなしチェック
まず、数値に1を追加

あるとき、次の文字の1の要素あるなしチェック
10要素なら、数値は8を追加で、次のレベルへ
5要素なら、数値は3を追加で、次のレベルへ
1要素なら、数値は1を追加。

その次の文字の要素チェック。
10か5要素なら、ローマ数字のルールに反するので不正チェック。
1要素なら、数値は1を追加。

さらにその次の文字チェック
1要素、ローマ数字のルールに反するので、不正チェック。
そうじゃないなら、次のレベルへ

全レベル終了時に、チェックポインタが指す文字が改行コードなら数値表示。
そうじゃないなら、不適正表示。


かなりいきあたりばったりのコードなので、はっきりいってこれがベストなのかはわからん。

初めてのプログラミング
Chris Pine
オライリー・ジャパン
売り上げランキング: 161616
おすすめ度の平均: 3.5
3 Rubyを使ってHello, Worldから
4 丁寧な解説
4 Ruby

一人で祝おう誕生日「初めてのプログラミング」12.2練習問題2問目

初めてのプログラミングの12.2練習問題2問目、一人で祝おう誕生日界を考えてみる。

誕生日から10億秒後の世界「初めてのプログラミング」12.2練習問題1問目の入力プログラムをベースに考えることに。

ルール確認
生年月日を入力。その次の年から去年までの誕生日を祝う。
そして、今年の誕生日と現在の日付を比較。今年の分を祝うべきかを決定させる。
なお、今年を入力したときに年齢が出さないための対処法も場当たり的に追加した。

一応、自分の生年月日、自分の生年の大晦日、2007年の2パターン、2008年のパターンをテストして、ちゃんと動いた。

初めてのプログラミング
Chris Pine
オライリー・ジャパン
売り上げランキング: 161616
おすすめ度の平均: 3.5
3 Rubyを使ってHello, Worldから
4 丁寧な解説
4 Ruby

誕生日から10億秒後の世界「初めてのプログラミング」12.2練習問題1問目

初めてのプログラミングの12.2練習問題1問目、誕生日から10億秒後の世界を考えてみる。

10億秒の計算の前に、誕生日を入れてもらう入力モードを作った。
年月日時分秒の順に入力してもらうような仕様。
ただし日の場合は、すでに入れられた年月の値によって、範囲が異なるのでこれだけ別処理にした。
あとTimeクラスを使う関係上、年は1970から入力OKとした。

ただ10億秒後の日付がいつになるかなんて、私は知らないので出力結果が正しいかどうかはわからん。

初めてのプログラミング
Chris Pine
オライリー・ジャパン
売り上げランキング: 161616
おすすめ度の平均: 3.5
3 Rubyを使ってHello, Worldから
4 丁寧な解説
4 Ruby

シャッフル法則を追加「初めてのプログラミング」11.6練習問題3問目

初めてのプログラミングの11.6練習問題3問目、シャッフル法則の追加を考えてみる。

プレイリスト出力のシャッフル「初めてのプログラミング」11.6練習問題2問目後半戦をベースに考えることにした。

ルール確認
前回の法則に加えて、同じグループ(例えば ../aho/track00.wma だった場合は、ahoグループ)が5連続で続いた場合は、次の出力分は、なるべく同じグループをさけるように選ぶという手段をとった。

ただし、選び方はランダムで選び同じグループだった場合は再抽選。8回連続で同じグループを引き当てた場合は、次に引いたものが何であっても出力することにする。


今回、まだこの本では習っていない、array[-x]の手法と、グローバル変数 $x を手法を使用した。

そのグローバル変数は、

$LIMIT 回連続で続いた場合という部分
$RESHUFFLE_TIME 回まで再抽選するという部分

を調整できるようにするために用いた。これがいい手段なのかは知らん。


ただ問題なのは、当方の wma のファイルは、とある1グループの数が他を圧倒しているので、このシャッフルの妥当性がイマイチわからないという点である。このプログラムでいいのかは不明である。

初めてのプログラミング
Chris Pine
オライリー・ジャパン
売り上げランキング: 161616
おすすめ度の平均: 3.5
3 Rubyを使ってHello, Worldから
4 丁寧な解説
4 Ruby

PR

カテゴリー

最新記事

アーカイブ

プロフィール

HN:
マドノマグラ
性別:
非公開
職業:
趣味:
駄文書き
自己紹介:
ゲームを作ろうとしているうちに、言語学習に飽きていく。典型的なダメな人パターンに陥るアホな人

リンク

ブログ内検索

バーコード

RSS

忍者ブログ │ [PR]