Ccmmutty logo
Commutty IT
2 min read

第7話 V言語で超簡単なゲームを作る

https://cdn.magicode.io/media/notebox/blob_mfeLVvu
前回、V言語の標準入力として、入力を受け付けてプログラムにデータを渡すことが出来ました。
これで、入力と出力が出来るようになったので、ここまでのまとめとして、超簡単なゲームを作ります。
それは「じゃんけんゲーム」です。
簡単すぎますか?
もし簡単すぎたらランキング機能やコンボ機能。通信対戦などお好きなようにカスタマイズしてみてください。
フローはこんな感じにしましょう。
  1. 「じゃんけん...(1.ぐー,2.ちょき,3.ぱー)」と表示して
  2. 数字1〜3を入力してもらうことにします。
  3. それ以外が入力された場合、「数字の1か2か3を入力してね。」と表示して2.へ
  4. ランダムでNPCの手(1,2,3)を決めて
  5. 「あなた:(手) (手):NPC」 と表示して
  6. 1は2に勝ち、2は3に勝ち、3は1に勝ち、同じ数字ならあいこ
  7. 「あなたの勝ち」 or 「あなたの負け」 or 「あいこで...(1.ぐー,2.ちょき,3.ぱー)」と表示して
  8. あいこなら2.へ戻る
  9. 終了
さっそく組んでみましょう。
// day7.v
import os

// 1. 「じゃんけん...(1.ぐー,2.ちょき,3.ぱー)」と表示して
println("じゃんけん...(1.ぐー,2.ちょき,3.ぱー)")

// 2. 数字1〜3を入力してもらうことにします。
line := os.get_line()
ここまでは問題ないですね。
さて、入力に[1,2,3]以外が入力されたと判定するにはどうしたらいいでしょうか。

入力データの比較

a. 数値に変換して比較する。
b. 文字として比較する。
この2パターンかと思います。
aの場合、
you := line.int()
でしょうか。数値に変換できない文字を入れた場合はどうなるのでしょう。
リファレンス を見てみましょう。え?書いてない。後日ソースを見るとして、これはいけない。とりあえず動作を見る限り、変換できないものは0になるようです。
これでは0が入力されたときの判定ができません。今回の要件で0はないので、単純にエラーとできますが、設計時に気をつける必要がありそうです。
もしくは無理やり、数値変換したものを再度文字列にして比較するみたいなことをして、一緒なら入力データ。違うならエラーという分岐が必要そうです。
どなたか解決策を知っている方いらっしゃいましたらコメントください(=人= )
bの場合、単純ですね。 そのまま入力データを比較すればいいのです。
さて、比較の方法については調べていませんでした。きっとifとかswitchみたいなものがあると思います。
超簡単なゲーム制作がついに始まりました。しかし入力データの比較が壁となって迫ってきます。
次回「V言語の比較演算子」見てください!

Discussion

コメントにはログインが必要です。