マドノマグラの初心者自作ゲーム制作日誌 迷走モード
プログラミング初心者が自作ゲームを作成してみようとする動きを記す。現在迷走中。
ブログ履歴
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ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
プレイリスト出力のシャッフル「初めてのプログラミング」11.6練習問題2問目後半戦
初めてのプログラミングの11.6練習問題2問目後半戦、プレイリスト出力のシャッフルを考えてみる。
音楽プレイリスト作成「初めてのプログラミング」11.6練習問題2問目前半戦と配列変化時に連続単語判定の入れ込み「初めてのプログラミング」10.3練習問題1問目リターンズ2をベースに改良…というよりは、ほとんど流用して完成させた。
オライリー・ジャパン
売り上げランキング: 161616
丁寧な解説
Ruby
配列変化時に連続単語判定の入れ込み「初めてのプログラミング」10.3練習問題1問目リターンズ2
初めてのプログラミングの10.3練習問題1問目をさらに考えてみる。
shuffleの仕組みを少し変更「初めてのプログラミング」10.3練習問題1問目リターンズ1 をベースに少し改良をしてみた。
今回は、シャッフルにより、配列を入れ替えていく途中で、3連続単語でかぶる部分があるかどうかのチェックを行った。
かぶった場合は、チェックした単語とその一つ前の単語を入れ替えるという手法。これは、改良前のメソッドとほぼ同じである。
オライリー・ジャパン
売り上げランキング: 161616
丁寧な解説
Ruby
shuffleの仕組みを少し変更「初めてのプログラミング」10.3練習問題1問目リターンズ1
初めてのプログラミングの10.3練習問題1問目を再び考えてみる。
「初めてのプログラミング」10.3練習問題の1問目後半戦、完全なる shuffle とは何ぞやをベースに少し改良をしてみた。
シャッフルの際、
入れた単語が1個だった場合は、そのままの配列。
入れた単語が2個だった場合は、1つ目と2つ目を入れ替え
入れた単語が3個だった場合は、まず、配列を入れ替えてからもとの配列と比較。
そのとき、もとの配列の並びの連続して3個が同じ並びだったときには、入れ替えた配列の、3連続同じ部分の2つ目と3つ目を入れ替えることで、擬似的に混ぜ合わせることにした。
ただ、これでは配列の数が増えたときに、一度配列を入れ替えるというのが無駄な手段になりそうなので、やっぱり改良の余地はありそう。
配列の1度目のシャッフルで、この3連続判定を行う必要があるだろう。
それはまた次の機会に考えることにした。
オライリー・ジャパン
売り上げランキング: 161616
丁寧な解説
Ruby
音楽プレイリスト作成「初めてのプログラミング」11.6練習問題2問目前半戦
初めてのプログラミングの11.6練習問題2問目前半戦、音楽プレイリスト作成を行った。
さすがに、問題のとおり全体からファイルを探すのは時間がかかるので、マイドキュメントの音楽フォルダにあった wmaファイルを探して、playlist.m3u にテキストを出力を行うことにした。
まず、playlist0.rb では、playlist.m3u はできたのだが、このファイルを実行しても、プレイリストとして機能しない。おそらくは改行が成されないままテキストが出力されているからだろうと考えた。
次に、playlist1.rb では、テキスト出力の前に各要素ごとに改行制御文字を追加することにした。
こうしてできた playlist.m3u を実行すると、うまくプレイリストとして機能した。
オライリー・ジャパン
売り上げランキング: 161616
丁寧な解説
Ruby
ファイル名リネームプログラム「初めてのプログラミング」11.6練習問題1問目
初めてのプログラミングの11.6練習問題1問目、ファイル名リネームプログラムを作ってみる。
手順としては、初めてのプログラミングのp114-115に書かれているプログラムをベースに改良を行う。
また、今回は jpgファイルではなく、テキストファイルの拡張子を強引に unko にして、unko ファイルの移動を行うようにする。
そして、移動先に同名のファイルがあった場合には、その同名ファイルの移動前に強制終了する仕組みにした。
通常の実行も、同名ファイルがあったときの実行も行い、うまくいった。
オライリー・ジャパン
売り上げランキング: 161616
丁寧な解説
Ruby
99本のビール再び「初めてのプログラミング」10.5追加練習問題4問目
初めてのプログラミングの10.5追加練習問題4問目、99本のビールの歌を english_number メソッドを用いて表示を行う。
さらに拡張しそうです…「初めてのプログラミング」10.5追加練習問題2問目 と「初めてのプログラミング」練習問題7.5の1問目を考えてみたのプログラムを利用することにする。
english_number メソッド で数値を英語表記
beerbottle メソッド で数値から、Bottle かBottles にするのかを決定 (0の場合はNo Bottles)
songs メソッド で 実際の歌の表示
を行うことにした。
また、英語での数字の先頭を大文字にするため .capitalize を用いた。
オライリー・ジャパン
売り上げランキング: 161616
丁寧な解説
Ruby
wedding_numberの恐怖「初めてのプログラミング」10.5追加練習問題3問目
初めてのプログラミングの10.5追加練習問題3問目、wedding_numberの表示を行う。
さらに拡張しそうです…「初めてのプログラミング」10.5追加練習問題2問目で書いたプログラムに追加修正を行う方針。
方針としては、つなぎ部分を" and "にしてみる。これだけで万事解決…たまたまだけれども。
オライリー・ジャパン
売り上げランキング: 161616
丁寧な解説
Ruby
さらに拡張しそうです…「初めてのプログラミング」10.5追加練習問題2問目
初めてのプログラミングの10.5追加練習問題2問目、位処理の拡張のである。
「初めてのプログラミング」10.5追加練習問題1問目、千の追加になって で書いたプログラムに追加修正を行う方針。
方針としては、各位の値を割り算して行くやり方をとっていきたい。そこでは繰り返しが生じるので、
[1_000_000_000_000," trillion"]
[1_000_000_000," billion"]
[1_000_000," million"]
[1_000," thousand"]]
という配列を作って、.eachイテレータ作戦を用いていくことにした。
以上のことを考慮して作成、実行し、うまくいった。
オライリー・ジャパン
売り上げランキング: 161616
丁寧な解説
Ruby
「初めてのプログラミング」10.5追加練習問題1問目、千の追加になって
初めてのプログラミングの10.5追加練習問題1問目、千の位 thousand の追加を行った。
初めてのプログラミングのp101-103に書かれているプログラムに追加修正を行う。
基本方針は、元のプログラムに 1000で割った場合の処理を加えること。ただし、それだけだと、100の位の処理の時に、thirty-two hundred なんて表示が出てくるので、100の位の処理を one hundredから nine hundred までにする修正が必要になる。
以上のことを考慮して作成、実行し、うまくいった。
オライリー・ジャパン
売り上げランキング: 161616
丁寧な解説
Ruby
「初めてのプログラミング」10.3練習問題の2問目、dictionary_sort メソッドを考える
初めてのプログラミングの10.3練習問題の2問目、dictionary_sort メソッドの作成を行った。
とりあえず、「初めてのプログラミング」10.2のソート、再帰を使う場合に苦悩する で書いたプログラムに修正を加える方針をとった。
単語について、小文字にした状態での比較を行うようにした。.downcase の使用である。ついでに、単語をインプットする部分もメソッド化しておいた。別に意味はない。
実行して「C,b,A」の順に打ち込んだ結果、「A,b,C」を返してきたのでこれでOKだろう。
オライリー・ジャパン
売り上げランキング: 161616
丁寧な解説
Ruby