見出し画像

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

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

○✕ゲームの流れ

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

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

  3. 盤面を表示する

  4. 勝利判定をする

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

  6. 盤面を表示する

  7. 勝利判定をする

前回の記事では、
1.3×3の盤面を表示する
プログラムの作成を行いました。

今回の記事では、
2.〇を書く位置を入力させ、盤面に反映する
3.盤面を表示する
プログラムを作成したいと思います。

前回までのプログラム

前回作成した、
3×3の盤面を表示する
プログラムをのせておきます。

今回の記事でつくるプログラムはこの続きに書いていくことになります。
まだ作成できていない人は
前の記事を参考にするか、
このコードをコピペして使ってみてください!

gameboard=[1,2,3,4,5,6,7,8,9]
for i in range(0,len(gameboard)):

    if (i%3==2):
        print (gameboard[i])
    else:
        print (gameboard[i] , end = "")

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

まずは座標を入力させるための
input_boardという関数を作成します。

関数input_boardの作成

関数input_boardを作り、
○を引数に関数を実行すると入力できるようにしましょう。

上のプログラムの続きに記述します。

#入力するための関数
def input_board(player_type):
place=int (input("1~9の座標を入力してださい:"))-1

input_board('o')

実行すると、シェルウィンドウに
3×3の盤面を表示したあと
「1~9の数字を入力してください」
と表示され、入力できるようになります。

このままだと、
引数に〇と✕どちらを入力しても
関数を呼び出すことができます。

○を入力した時のみ、
座標を入力できるように変更しましょう。

#入力するための関数
def input_board(player_type): 
  if(player_type == "o"): 
     print ("あなたのターン")
    place=int (input("1~9の座標を入力してださい:"))-1

displayboard()
input_board("o")

実行すると、3×3の盤面を表示した後、
「あなたのターン」
「1~9の数字を入力してください」
と表示されます。

input_boardの引数を✕にして実行すると、
「あなたのターン」
「1~9の数字を入力してください」
が表示されなくなれば成功です。

入力判定

入力された数字のマスが空いているか判定します。

もし、入力された数字のマス目に
○かが入っていたら
もう一度入力をさせるために関数 input_boardを呼び出します。
○かが入っていなければ
入力された座標に〇を書きこみます。

if(gameboard[place] == 'o' or gameboard[place] == 'x'):

    input_board(player_type)
else:
    gameboard[place] = player_type

input_boardの引数を〇に直して実行すると、
数字を入力した後何も起こりません。

きちんと入力した座標に〇が書き込まれているか確認できるように、
盤面を表示してみましょう。

3.盤面を表示する

○を書く位置を入力させ、盤面に反映されているか確認するため、
盤面を表示してみましょう。

盤面を表示するプログラムは前回作成しました。
しかし、盤面の表示をするたびに、
同じようなコードを毎回記述するのはとても大変です。

そこで盤面を表示するための関数を作成しましょう。

gameboard=[1,2,3,4,5,6,7,8,9]

#盤面を表示するための関数
def displayboard():
    print ("現在の盤面")
    for i in range(0,len(gameboard)):

        if (i%3==2):
            print (gameboard[i])
        else:
            print (gameboard[i] , end = "")

前回作成した部分に
def displayboard():
を追加します。

インデント(空欄)があっているか注意してください。

プログラムの最後にdisplayboard()と記述すると盤面を表示してくれます。
このように作成した関数を使うためのコードを書くことを
関数を呼び出すといいます。

プログラムの最後に
#プログラムの流れ
displayboard()
input_board("o")
displayboard()

と記述してプログラムを実行してみましょう。

現在の盤面が表示された後、数字を入力すると
入力した数字のマスに〇が書き込まれましたか?

今回の記事で、
1.3×3の盤面を表示する
2.○を書く位置を入力させ、盤面に反映する
3.盤面を表示する
のプログラムが完成しました。

次回は、
○を書く位置を入力させ、盤面に反映する
プログラムを作成します。

今回作成したプログラムには新しく、

  • 関数

が含まれています。

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

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

次の記事はこちら


ここまでのプログラム

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

ここから先は

623字

¥ 100

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

自己紹介

スキしてみて

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