// day7.v
import os
import rand
// 1. 「じゃんけん...(1.ぐー,2.ちょき,3.ぱー)」と表示して
print('じゃんけん...')
retry: for {
println('(1.ぐー,2.ちょき,3.ぱー,q.終了)')
// 2. 数字1〜3を入力してもらうことにします。
line := os.get_line()
you := line.trim_space()
// 3. それ以外が入力された場合、「数字の1か2か3を入力してね。」と表示して2.へ
// + qを入れたら終了
match you {
'1', '2', '3' {}
'q' {break retry} // 終了
else {
println('数字の1か2か3を入力してね。qで終了だよ。')
continue retry
}
}
// 計算しやすいように内部的には0,1,2にする
player := you.int() - 1 // 数値に直しておく
// 4. ランダムでNPCの手(0,1,2)を決めて
cpu := rand.intn(3) ? // ?はエラーを無視します
// 5. 「あなた:(手) (手):NPC」 と表示して
lut := ['ぐー', 'ちょき', 'ぱー']! // !を指定することで固定長にします。
println('あなた:${lut[player]} vs ${lut[cpu]}:NPC')
// 6. 1は2に勝ち、2は3に勝ち、3は1に勝ち、同じ数字ならあいこ 内部的には-1
// 7. 「あなたの勝ち」 or 「あなたの負け」 or 「あいこで...(1.ぐー,2.ちょき,3.ぱー)」と表示して
// 8. あいこなら2.へ戻る
if player == cpu {
print('あいこで...')
continue retry
}
result := match true {
(player + 1) % 3 == cpu { 'あなたの勝ち' }
else { 'あなたの負け' }
}
println(result)
// 9. 終了
break
}