マドノマグラの初心者自作ゲーム制作日誌 迷走モード
プログラミング初心者が自作ゲームを作成してみようとする動きを記す。現在迷走中。
ブログ履歴
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で何かを作ろうとする
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ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
分かれ道 Ver 1.0 を作成し、配列って便利だねえということを学ぶ
選択肢によって分岐するゲームを、勉強がてら作ってみる。
Ruby ではじめるプログラミング 【第 2 回】のコード、ほぼそのままにほんのごく一部を改変したものを書いて動かすことに成功。
配列というのが非常に便利であるということと、to_i メソッドは数字以外の文字が与えられた場合は 0 を返すというのは地味に重要かもしれない。
ちなみに、このプログラム冒頭のメッセージ、3万円、5万円、10万円…の意味がわからない人は、おとうさんやおかあさんに聞いてみようね。
ところで、続き部分のコードに対して、preタグで囲んだので、見やすくなりました。
#! ruby -Ks
# 分かれ道 Ver 1.0
# メッセージデータ
message00 = "3万円、5万円、10万円。運命の分かれ道がある\n" +
"どの道に進みますか?\n" +
"1:3万円 2:5万円 3:10万円\n"
message01 = "安いコースを選んだせいで、十分な買い物が出来ませんでした\n" +
"ゲームオーバー\n"
message02 = "5万円コースの買い物に成功しました。\n" +
"副賞として、宝箱を開ける権利を手に入れました\n" +
"1:そのままにしておく 2:開ける\n"
message03 = "ごめんなさい、10万円コースは予算が無いのでできません\n" +
"1:次へ\n"
message04 = "宝箱を開けないでいると、\n" +
"司会者にボコられ大怪我をしてしまいました。\n"+
"ゲームオーバー\n"
message05 = "パカッ\nまばゆい光があふれだした…\n" +
"100万円相当の金貨を手に入れました!\n" +
"ハッピーエンド"
# シーンデータ[メッセージ,飛び先1,飛び先2,飛び先3]
tbl = [
[message00, 1, 2, 3],
[message01,nil,nil,nil],
[message02, 4, 5,nil],
[message03, 0,nil,nil],
[message04,nil,nil,nil],
[message05,nil,nil,nil],
]
# シーン0からのスタート
scene = 0
# ゲーム本編のループ
while true
# シーンデータの取りだし
scene_data =tbl[scene]
# 各シーンでのメッセージ表示
message_show = scene_data[0]
puts message_show
# 行き止まりでループ脱出
if scene_data[1] == nil
exit
end
# 数字入力を促す
puts "数字を入力してください"
input_value = gets.to_i
# 数字判定
if input_value > 0
# 現在のシーンデータでの、飛び先の数字を渡す
next_scene = scene_data[input_value]
# 数字が空なら、やり直し
if next_scene == nil
puts "不正な値が入力されました"
# 数字が空じゃないなら、飛び先シーン取りだしのための数字決定
else
scene = next_scene
end
# 数字が0以下でも、やり直し
else
puts "不正な値が入力されました"
end
# ちょっとした間があって、ループ先頭へ
sleep 0.5
print "\n"
end
PR
この記事にコメントする
PR
カテゴリー
最新記事
(04/22)
(11/20)
(11/11)
(11/11)
(11/09)
(11/07)
(11/07)
(11/07)
(11/07)
(11/06)
アーカイブ
プロフィール
HN:
マドノマグラ
HP:
性別:
非公開
職業:
謎
趣味:
駄文書き
自己紹介:
ゲームを作ろうとしているうちに、言語学習に飽きていく。典型的なダメな人パターンに陥るアホな人