Python で三目並べゲームを作成する:ステップバイステップのコード チュートリアル
Python の Tic Tac Toe Game は、ぜひ試してみたい興味深いプロジェクトです。これは課題を解決するクールで楽しいプロジェクトであり、Python の基本概念をマスターするのに役立ちます。楽しい三目並べゲームを作成すると、スキルを向上させることができます。
Pycharm などの優れた Python エディタまたはコマンド ライン インターフェースを使用できます。
チックトック ゲームの遊び方
三目並べゲームは、ゲームボードを必要とせずに誰でもプレイできるシンプルな 2 人用ゲームです。 2 人のプレイヤーが、勝利または引き分けでゲームが終了するまで、異なるセルにマークを付ける必要があります。
三目並べゲームの遊び方は次のとおりです。
ステップ 1) 三目並べゲームは、正方形のグリッド内の空のセルから始まります。これは三目並べボードです。
ステップ 2) 両プレイヤーは 2 つのシンボル (通常は X または O) から選択します。ゲーム内では他の固有のシンボルを使用できます。
ステップ 3) 現在のプレイヤーは、勝利の組み合わせを埋めるまで、三目並べボードのセルを埋めて順番にマークを付けます。それは、同じ符号を持つ行、列、または対角線全体です。
ステップ 4) すべてのセルが埋まっていて明らかな勝者がいない場合、ゲームが引き分けになる可能性もあります
要件
三目並べ Python プロジェクトを構築するには、Python プログラミング言語の初心者レベルの理解が必要です。これには、「for」ループと反復、および Python で使用される if ステートメントについての理解が含まれます。
三目並べ Python プロジェクトを完了するには、Python と Python テキスト エディターがコンピューターにインストールされている必要もあります。これは Python による初心者レベルの三目並べゲームなので、Python ライブラリは必要ありません。
コード内のバグの解決策を見つけるには、ある程度のデバッグ スキルが必要な場合があります。また、ゲーム コンポーネントについても十分に理解している必要があります。
三目並べ Python アルゴリズム
Python プログラミング言語で三目並べゲームを作成するには、次の手順に従います。
ステップ 1) 三目並べゲームを始めるためのボードを作成します。
ステップ 2) ゲームボードの寸法を決定するようユーザーに要求します。
ステップ 3) 最初のプレイヤーをランダムに選択します。
ステップ 4) 三目並べゲームが始まります。
ステップ 5) プレイヤーはボード上の空いている場所を選択してプレイします。
ステップ 6) 選択した空の場所をプレーヤーのサインで埋めます。
ステップ 7) ゲーム ロジックを使用して、プレーヤーがゲームで勝つか引き分けになるかを判断します。
ステップ 8) プレイヤーが勝てない場合、または 2 番目のプレイヤーと引き分けになった場合は、毎回のプレイ後にゲーム ボードを表示します。
ステップ 9) それぞれ引き分けまたは勝利のメッセージを表示します。
ステップ 10) 新しいゲームを開始するオプションを使用して三目並べゲームを終了します。
三目並べの完全な Python コード
# Guru99
# Code developed by Guru99.com
# Guru99 tic-tac-toe game
#Get input
def getInput(prompt, cast=None, condition=None, errorMessage=None):
while True:
try:
val = cast(input(prompt))
assert condition is None or condition(val)
return val
except:
print(errorMessage or "Invalid input.")
# Print the game board
def printBoard(board):
print()
for row in board:
print(*row)
print()
# Check if player won using the winning combinations
def checkWin(board):
# Check rows
for row in range(len(board)):
for col in range(len(board)-1):
if board[row][col] == "_" or board[row][col+1] == "_" or board[row][col] != board[row][col+1]:
break
else:
return True
# Check column numbers
for col in range(len(board)):
for row in range(len(board)-1):
if board[row][col] == "_" or board[row+1][col] == "_" or board[row][col] != board[row+1][col]:
break
else:
return True
# Check left diagonal
for cell in range(len(board)-1):
if board[cell][cell] == "_" or board[cell+1][cell+1] == "_" or board[cell][cell] != board[cell+1][cell+1]:
break
else:
return True
# Check right diagonal
for cell in range(len(board)-1):
emptyCell = board[cell][len(board)-cell-1] == "_" or board[cell+1][len(board)-cell-2] == "_"
different = board[cell][len(board)-cell-1] != board[cell+1][len(board)-cell-2]
if emptyCell or different:
break
else:
return True
# No win
return False
# Play tic tac toe game
def play():
# Introduction
print("------------\nN-DIMENSIONAL TIC TAC TOE game by guru 99.com \n------------")
# Set up variables
N = getInput(prompt="Guru99 says>>> Enter N, the dimensions of the board: ",
cast=int,
condition=lambda x: x >= 3,
errorMessage="Invalid input. Please enter an integer greater than or equal to 3 as explained on guru99.com")
board = [['_'] * N for _ in range(N)]
used = 0
turn = 0
# Play guru99 tic tac toe game in Python using while infinite loop
while True:
# Print guru99 tic tac toe game board
printBoard(board)
# Get user pick
pick = getInput(prompt=f"Player {turn+1} - Pick location (row, col): ",
cast=lambda line: tuple(map(int, line.split(" "))),
condition=lambda pair: min(pair) >= 0 and max(pair) < N and board[pair[0]][pair[1]] == "_",
errorMessage="Invalid input. Please enter a valid, unoccupied location as an integer pair.")
# Populate location
board[pick[0]][pick[1]] = "X" if turn == 0 else "O"
used += 1
# Check for win
#Guru99 tutorial
if checkWin(board):
printBoard(board)
print(f"Game over, Player {turn+1} wins.")
break
# Check for tie
elif used == N*N:
printBoard(board)
print("Game over. Players have tied the match.")
print("Guru99.com tic tac toe game ")
break
# If no win yet, update next user
turn = (turn+1)%2
# Check for rematch
playAgain = getInput(prompt="Play Guru99 tic tac toe_Game again? (y/n): ",
cast=str,
condition=lambda ans: ans.strip("\n").lower() in {"y", "n"},
errorMessage="Invalid input. Please enter 'y' or 'n'.")
if playAgain == 'n':
# End the game
print("\nGuru99 TicTacToe game ended.")
return
else:
# Rematch
play()
# Main
if __name__ == '__main__':
play()
上記のソース コードを実行すると、以下は 3 X 3 三目並べボードの予想される出力になります。
------------ N-DIMENSIONAL TIC TAC TOE game by guru 99.com ------------ Guru99 says>>> Enter N, the dimensions of the board: 3 _ _ _ _ _ _ _ _ _ Player 1 - Pick location (row, col): 1 1 _ _ _ _ X _ _ _ _ Player 2 - Pick location (row, col): 0 1 _ O _ _ X _ _ _ _ Player 1 - Pick location (row, col): 1 2 _ O _ _ X X _ _ _ Player 2 - Pick location (row, col): 0 2 _ O O _ X X _ _ _ Player 1 - Pick location (row, col): 1 0 _ O O X X X _ _ _ Game over, Player 1 wins. Play Guru99 tic tac toe_Game again? (y/n):
完全なコードの内訳
作成中 Python での三目並べは簡単です。各行で何が起こっているのかを理解するために、さまざまな関数を細かく分析してみましょう。
ボードの印刷
三目並べボードがゲームのメインディスプレイです。では、ゲーム ボードを表示するために Python 表示ウィンドウが使用されます。
Python で三目並べのボードを作成するのに役立つ手順は次のとおりです。
三目並べの Python コード
def getInput(prompt, cast=None, condition=None, errorMessage=None): while True: try: val = cast(input(prompt)) assert condition is None or condition(val) return val except: print(errorMessage or "Invalid input.") # Print the board def printBoard(board): print() for row in board: print(*row) print() N = getInput(prompt="Guru99 says>>> Enter N, the dimensions of the board: ", cast=int, condition=lambda x: x >= 3, errorMessage="Invalid input. Please enter an integer greater than or equal to 3 as explained on guru99.com") board = [['_'] * N for _ in range(N)] used = 0 turn = 0 printBoard(board)
コード出力:
------------ N-DIMENSIONAL TIC TAC TOE game by guru 99.com ------------ Guru99 says>>> Enter N, the dimensions of the board: 3 _ _ _ _ _ _ _ _ _
三目並べゲーム – 勝利のアレンジメント
プレイヤーが勝ったかどうかを確認するには、行、列、対角線全体で勝利の組み合わせを確認する必要があります。勝者がいる場合は、勝者のメッセージを表示する必要があります。
行
- 行の場合、この関数は連続する列のペアをすべて取得し、勝利の組み合わせをチェックします。
- 最初に列を埋めたプレイヤーが勝ちです。したがって、2 番目のプレーヤーが負けます。
- 連続する 2 つの列が同じである場合、その行内のすべての要素が同じであることは明らかです。
- それらの 2 つが異なる場合、または行に空のセルが含まれている場合でも、勝者は存在しません。
- 次に、負け条件を実装し、ブレークを追加します。これらの負け条件のいずれかに該当する場合、チェックされた行には勝者がいませんでした。
- else ステートメントは、勝者が存在することを示す true を返します。
- ブレークはこのループから抜け出し、次の行に進みます。
列
列についても、行と同じ機能を繰り返します。各プレイヤーが順位を選択した後、プレイヤーが勝ったかどうかを確認します。
斜めの列が勝ち
左斜めの場合、タスクはより簡単になります。常に対角線のセルを比較します。ただし、勝者がいない場合は、次の指示に進むことができます。
ゲーム ロジックをプレイする
これがゲームの主な機能です。このために、情報を保存する変数を使用できます。
- 最初の変数は、「N」に格納されるボード サイズです。ゲームは、ユーザーに数値の入力を求めた後、ボードのサイズを取得します。
- 値を入力すると、その値が処理されます。
- 無効な数字が入力されたときにプレーヤーに表示するエラー メッセージも作成します。
- 次に、セルが入力されたときに「X」または「O」を入力する 2 つの変数を作成できます。
- 次に、プレイヤーにゲームボードを見せます。この後、プレーヤーの意見を聞きます。
- ロジックは選択したセルを塗りつぶしとしてマークし、勝ちか引き分けかをチェックします。
- 勝者がいない場合、ゲームは次のプレイヤーにプレイするよう求めます。勝ちまたは引き分けの場合、ゲームはユーザーに新しいゲームが必要かどうかを尋ねることができます。
結論
- 三目並べは、空のボード セルにユニークなシンボルを配置してプレイする楽しい 2 人用ゲームです。
- Python で三目並べゲームを作成するには、Python、テキスト エディタ、および Python のインストールについての初心者レベルの理解が必要です。
- このアルゴリズムは、あらゆる言語で体系的にコードを記述するのに役立ちます。
- ゲームを作成するには、まずボードを描画し、勝ち負けの取り決めを決定するコードを記述します。
- Python の三目並べコードを最初に再生してテストできます。
Python
- Python Average:Python でリストの AVERAGE を見つける方法
- Python-基本構文
- Python で三目並べゲームを作成する:ステップバイステップのコード チュートリアル
- 例を使用した Python map() 関数
- Python の type() と isinstance() と例
- Python 変数、定数、およびリテラル
- Python の For &While ループ:列挙、中断、継続ステートメント
- Python XML パーサー チュートリアル:xml ファイルの例を読む (Minidom、ElementTree)
- Python DSL:特殊なドメインに合わせたソリューション
- Python Main 関数とメソッドの例:def Main() を理解する
- Python ファイル処理:テキスト ファイルの作成、読み取り、書き込み、開く方法