見出し画像

○✕ゲームを作ってみよう ! with Python3 ⑤

みなさんこんにちは、metchです🌻🍓🧡
今回は○✕ゲームを作ってみよう第5段、
最後の記事になります✨
はじめてプログラミングに触れる人でも
簡単に作れるように分かりやすく
解説を付けていきたいと思います!
何かわからないことがあったら、
ぜひコメントで質問してください!

○✕ゲームの流れ

  1. 3×3の盤面を表示する

  2. ○を書く位置を入力させ、盤面に反映する

  3. 盤面を表示する

  4. 勝利判定をする

  5. ✕を書く位置を入力させ、盤面に反映する

  6. 盤面を表示する

  7. 勝利判定をする

前回の記事では、
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

実行すると、
○✕ゲームを遊ぶことができましたか?

これで○✕ゲームは完成です!

ゲームの作り方は一つではありません。
プログラミングに慣れてきたら、
もっと短いコードで書くためにはどうしたらよいか考えてみたり、
ゲームを改造してみてください!

興味がある人は、それぞれの用語について調べてみるとより、
理解が深まると思います✨
何かわからないことがあったらコメントで教えてください!

ここまで読んでいただき、
ありがとうございます!
少しでも参考になったら
♡(スキ)やフォローよろしくお願いします。

○✕ゲーム完成プログラム(有料)

ここまで作成したプログラムを載せておくので、
参考にしてください。

ここから先は

1,442字

¥ 100

この記事が参加している募集

自己紹介

スキしてみて

この記事が気に入ったらサポートをしてみませんか?