Python3でCLIなじゃんけんゲームを作った

Python3の勉強を兼ねて、CLIなじゃんけんゲームを作りました。3回勝負でじゃんけんの手をキーボードから入力し、CPUと対戦するというものです。

特殊なことは得になく、ライブラリを使う部分はCPUの手を決めるためにランダムな整数を生成するときくらいで、あとは基本の文法で作れるのでループと条件分岐、標準入力の読み取りくらいが分かっていれば作れると思います。

ソースコード

いきなりソースコードですが、以下のような感じです。

動かすとこんな感じです。

$ python janken.py
じゃんけんをしよう!
3回勝負だよ。
最初はぐー、じゃんけん...(手を選んでね)
ぐー:0、ちょき:1、ぱー:2
> 0
ぽん!
あなた: ぐー
CPU: ぱー

結果: CPUの勝ち!

最初はぐー、じゃんけん...(手を選んでね)
ぐー:0、ちょき:1、ぱー:2
> 0
ぽん!
あなた: ぐー
CPU: ぐー

結果: あいこ

最初はぐー、じゃんけん...(手を選んでね)
ぐー:0、ちょき:1、ぱー:2
> 0
ぽん!
あなた: ぐー
CPU: ぐー

結果: あいこ

3回勝負の結果:
  CPUの勝ち
$
  

使っているもの

使っているライブラリというほどのものでもありませんが、コンピュータの手を生成するために、0~2までのランダムな数字を生成するためにrandomというライブラリを使っています。

random.randint()という関数でランダムな整数を作って使っています。

スクリプト内でやっていること

スクリプト内でやっていることをざっくり説明します。

スクリプトの一番下の分岐「if __name__ == “__main__”:」でじゃんけんゲームを開始するstart_repl関数を呼び出します。これがゲームの開始位置になります。

start_replでは、引数nに与えられた回数だけじゃんけんを実行します。プレイヤーに手を入力させると同時に、コンピュータの手をrandam.randintで生成します。

validate_handsという関数を作成して、プレイヤーが入力した手が0~2のうちどれかになっているか判定を行い、プレイヤーの手が正しい場合のみ、1回の勝負として扱います。それ以外は、無視して再度入力を促すようにしました。

プレイヤーの入力が正しい場合は、janken関数で勝敗を判定しています。

start_repl関数のwhileループでプレイヤーとコンピュータの勝利数を計算しておき、3回の勝負が終わった後にwhileループの外で勝負の結果を表示してゲームを終わります。

まとめ

じゃんけんゲームを作ってみました。それほど難しいことはやっていませんが、やっぱり自分で仕組みを考えて作るときのパズルを解くような感覚は楽しいです。

ライブラリをたくさん使っていると言うわけでもないので、ある程度文法を勉強したことがある初心者の方でもとっつきやすいのではないかと思います。

プログラミングを始めたけど文法の次に何を勉強したらいいか迷ってる人は復習がてら使ってもらえるとうれしいです。

シェアする

  • このエントリーをはてなブックマークに追加