○✕ゲームを作ってみよう ! with Python3 ⑤
みなさんこんにちは、metchです🌻🍓🧡
今回は○✕ゲームを作ってみよう第5段、
最後の記事になります✨
はじめてプログラミングに触れる人でも
簡単に作れるように分かりやすく
解説を付けていきたいと思います!
何かわからないことがあったら、
ぜひコメントで質問してください!
○✕ゲームの流れ
3×3の盤面を表示する
○を書く位置を入力させ、盤面に反映する
盤面を表示する
勝利判定をする
✕を書く位置を入力させ、盤面に反映する
盤面を表示する
勝利判定をする
前回の記事では、
6.盤面を表示する
7.勝利判定をする
プログラムの作成を行いました。
今回の記事では、
○✕ゲームの完成
プログラムを作成したいと思います。
前回までのプログラム
前回までに作成したプログラムは
前の記事の最後にまとめてあります。
こちらをご覧ください!
○✕ゲームの完成
前回まで作成していたプログラムでは
1回、〇と✕を書き込んで終わってしまっていました。
繰り返し〇と✕を書き込むためには
どうしたらいいのか考えてみましょう。
繰り返し〇と✕を書き込めるようにしよう
まずは
#ゲームの流れ
以下に書かれたコードの中で、
繰り返したい部分を探します。
〇と✕を書き込み、
勝敗判定に関係するプログラムは以下の
6つになります。
○を書く位置を入力させ、盤面に反映する
盤面を表示する
勝利判定をする
✕を書く位置を入力させ、盤面に反映する
盤面を表示する
勝利判定をする
この部分を繰り返し実行できるようにしてみましょう。
プログラムを繰り返したいときは
for文を使用します。
#ゲームの流れを下のように書き換え、
実行してみましょう。
displayboard()
for turn in range(0,9):
input_board("o")
displayboard()
judge()
input_board("x")
displayboard()
judge()
実行すると、
繰り返し〇と✕が入力できるようになりましたか?
○✕ゲームを実行し、
勝てるようにゲームを進めてみてください。
勝ち手が盤面にあってもゲームが終わらないことが分かります。
関数 judgeが呼び出されているにも関わらず
勝敗判定が出来ていないのはどうしてでしょうか?
これは、関数 judgeでは、盤面に勝ち手があるかどうかを判定しているだけで、もし、勝ち手があったときにどうするのかを決めていないからです。
ゲームの終了
もし、盤面に勝ち手があったとき、
ゲームが終了するようにプログラムを追加しましょう。
if judge(): # 勝敗判定
print(judge() + "の勝ち")
break
追加出来たらプログラムを実行し、
〇が勝てるようにゲームを進めてみましょう。
勝ち手があったとき、
〇の勝ちと表示され、それ以上ターンが進まなくなりましたか?
今度は引き分けになるようにゲームを進めてみましょう。
最後のマスに〇を書きこんだ時、
相手のターン
そのマスはすでに埋まっています。別の数字を入力してください。
と、出力され続けてしまいます。
引き分けになったときにゲーム終了
〇を書きこんだ時にターン1、
✕を書きこんだ時にターン2・・・
と進むようにプログラムを変更してみましょう。
#ゲームの流れ
for turn in range(0,9):
if(turn %2 == 0) : # あなたのターン
displayboard()
input_board("o")
displayboard()
judge()
else:#相手のターン
displayboard()
input_board("x")
displayboard()
judge()
ターン8になったとき(マス目がすべて埋まったとき)
引き分けと表示し、ゲームが終わるようにプログラムを追加します。
if turn == 8: # 8手目で引き分け
print("引き分け")
break
実行すると、
○✕ゲームを遊ぶことができましたか?
これで○✕ゲームは完成です!
ゲームの作り方は一つではありません。
プログラミングに慣れてきたら、
もっと短いコードで書くためにはどうしたらよいか考えてみたり、
ゲームを改造してみてください!
興味がある人は、それぞれの用語について調べてみるとより、
理解が深まると思います✨
何かわからないことがあったらコメントで教えてください!
ここまで読んでいただき、
ありがとうございます!
少しでも参考になったら
♡(スキ)やフォローよろしくお願いします。
○✕ゲーム完成プログラム(有料)
ここまで作成したプログラムを載せておくので、
参考にしてください。
ここから先は
¥ 100
この記事が気に入ったらチップで応援してみませんか?