Magicode logo
Magicode
0
2 min read

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

カサレリア。katzenです。

前回、V言語の比較演算子でプリミティブな型の比較が出来るようになりました。これで比較して処理を分けられるようになったと思います。

では、引き続き第7話 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. 終了

これの2まで終わっています。

// day7.v
import os

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

// 2. 数字1〜3を入力してもらうことにします。
line := os.get_line()

3について、数値に変換して比較するか、文字列のまま比較するかを検討していました。

今回は文字列での比較で行います。

要件にはありませんでしたが、優しさとして入力データにスペースや改行が入っていた場合も考慮しておきましょう。

多分string.trimあたりがあると思います。ありました。公式

しかしもう少し下を見ると、string.trim_spaceというものを発見しました。

これで簡単にかけますが、正直複数やり方がある(ラッパーメソッド)は、あまり好きではないです。

でも利用します。

// ...
you := line.trim_space()

こうですね。

// 3. それ以外が入力された場合、「数字の1か2か3を入力してね。」と表示して2.へ
if "1" != you && "2" != you && "3" != you {
  println("数字の1か2か3を入力してね。")
}

さて、表示はこれでいいですが、2へ戻るのはどうしましょう。

V言語では一応gotoが使えますがunsafe(安全ではない)です。

方向としてはループ処理にして2に戻す方法にしましょう。

loop {
  2.の処理
  3.の処理
   入力データが以上なら continue
  ...
}

こんなイメージですね。

さて、今度はループについて知る必要がありますね。

きっとforやwhileなどがあるのではないでしょうか。

迫る文字列比較の壁を超え一安心したそのとき、ループ処理が必要に迫ってきていました。

次回「V言語のループ処理」見てください!

Discussion

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