私はRubyにはとても新しく、試して学ぶためにいくつかの情報源を使ってきました。私はCodecadamyのRubyクラスを終了しました。私はHard Rubyを学ぶことで約75%です。また、私はEloquent RubyとPickaxe Ruby bookの100ページを読んだことがあります。RubyでのRPGテキストベースのゲームの作成。コントロールとシーンを保存して実行するには?
私はRubyでテキストベースのRPGゲームを実践しようとしています。私はゲームをよく知っているので、Chrono Triggerを再現することに決めました。私はキャラクターやストーリーを考えるのに時間をかけたくありません。コーディングを練習したいだけです。
私は、プレーヤーが使用するための4つの簡単なコントロールを作ろうとしましたが、シーンに組み込むことは非常に困難です。
たとえば、私はコントロール "talk"を持っており、ユーザーが入力したものに基づいてシーンを実行するために 'if/else'ステートメントを使用します。ユーザーが「話す」を何度も入力すると、無限のif/elseシナリオを辿る必要があります。
以下は私のコードです。私は初心者なので非常に乱雑ですが、誰かがそれを見て、それがうまくいくようにする方法についていくつかのアドバイスをくれたら!
---------ようこそ方法-----------
def welcome
puts "Welcome to Chrono Trigger: Ruby Edition!"
puts "Let's discuss the controls to help you become familiar with the game."
puts ""
puts "We are going to break the controls down into categories to help make it easier to understand"
puts "Anytime you get stuck just type 'help' to bring the controls back up."
puts ""
puts "The controls are 'talk' 'action' 'attack' 'flee'."
puts ""
puts "Simple enough? Type 'start' to begin!"
print "> "
response = $stdin.gets.chomp
if response == "start" then chapter_1_start end
end
---------クロノは、次の何をすべき? - ----
def crono_next
puts "What should Crono do next?"
@next_task = $stdin.gets.chomp
end
def chapter_1_start
puts "(Bells Ringing)"
puts "\"Crono....Crono...\""
puts "\"Time to get up!\""
puts ""
puts "Crono wakes up from bed."
puts "Crono is standing in the middle of his bedroom"
print "> "
response = $stdin.gets.chomp
if response == "help"
help
elsif response == "action"
puts "Crono closes the curtains."
puts "Then he leaves the room"
chapter_1_start2
elsif response == "talk"
puts "Crono talks to himself"
else
puts "..."
end
end
def chapter_1_start2
def talk
puts "Mom: \"Oh Crono, don't forget to stop by your friend Lucca's house before you head to the Millenial Fair.\""
crono_next
if @next_task == "talk"
puts "Mom: \"I almost forgot. Here's 200 gil to buys some cat food while you're out.\""
crono_next
if @next_task == "talk"
puts "Mom: \"You really should be leaving now Crono\""
chapter_1_start3
elsif @next_task == "action"
puts "Crono pets his cat."
puts "'Meow'"
chapter_1_start3
else
chapter_1_start3
end
elsif @next_task == "action"
action
else
"Mom: \"You really should be leaving now Crono\""
chapter_1_start3
end
end
def action
puts "Crono pets his cat."
puts "'Meow'"
crono_next
if @next_task == "talk"
talk
elsif @next_task == "action"
action
else
"Crono does nothing."
end
end
puts "Crono heads downstairs and sees his mom in the kitchen and his cat in the living room."
crono_next
if @next_task == "talk"
talk
elsif @next_task == "action"
action
else
puts "Let's try that again."
chapter_1_start2
end
end
def chapter_1_start3
puts ""
puts "Crono begins walking away from his house"
puts "If he travels West he will be heading in the direction of Lucca's house."
puts "If he travels East he will be headed to the Millenial Fair."
puts crono_next
----------------ヘルプメニュー----------------
def help
puts "What do you need help with? 'controls', 'hints', 'quit'"
print "> "
help_subject = $stdin.gets.chomp
if help_subject == "controls"
puts "The controls are 'talk' 'action' 'attack' 'flee'."
elsif help_subject == "hints"
puts "I got nothing"
elsif help_subject == "quit"
puts "Are you sure you want to quit?(Your game will not be saved)"
print "> "
sure_quit = $stdin.gets.chomp
if sure_quit.include? "y"
exit(0)
else
help
end
else
puts "Guess you didn't really need help after all."
end
end
----------------ヘルプメニュー-----------------
def talk(person)
@person = person
end
welcome
投稿をコードの特定の領域を指す特定の質問に限定してください –
作業コードに関する質問はhttp://codereview.stackexchange.comに適していますが、いくつかのアップ。それは座っているときには少し "コードダンプ"ですが、それが小さなコードセットに集中すれば、それは良い質問かもしれません。 –
ごめんなさい!私は一般的にコミュニティとプログラミングに新しいです、私はこのことについて謝ります。 – Caleb