三目並べゲームの作り方 Python コード例付き
三目並べゲームで Python は、あなたが試すことができる興味深いプロジェクトです。これは、課題を解決するクールで楽しいプロジェクトであり、基本的な概念を習得するのに役立ちます。 Python楽しい三目並べゲームを作成すると、スキルが向上します。
良い Python Pycharm などのエディタまたはコマンドライン インターフェイス。
チックトックゲームの遊び方は?
三目並べゲームは、ゲームボードを必要とせずに誰でもプレイできるシンプルな XNUMX 人用ゲームです。 XNUMX 人のプレーヤーが、勝利または引き分けでゲームが終了するまで、異なるセルにマークを付ける必要があります。
三目並べゲームの遊び方はこちらです。
ステップ1) 三目並べゲームは、正方形のグリッド内の空のセルから始まります。 こちらは三目並べボードです。
ステップ2) 両プレイヤーは XNUMX つのシンボル (通常は X または O) から選択します。 ゲーム内では他の任意の固有のシンボルを使用できます。
ステップ3) 現在のプレイヤーは、勝利の組み合わせを埋めるまで、三目並べボードのセルを埋めて順番にマークを付けます。 これは、同じ符号を持つ行、列、または対角線全体です。
ステップ4) すべてのセルが埋まっていて明らかな勝者がいない場合、ゲームが引き分けになる可能性もあります
要件
の構築 ○×ゲーム Python プロジェクト 初心者レベルの理解が必要です Python プログラミング言語。「for」ループと反復、if文がどのように使用されるかを理解することが含まれます。 Python.
あなたも持っている必要があります Python フォルダーとその下に Python 三目並べを完成させるためにコンピュータにテキストエディタをインストールします Python プロジェクト。これは初心者レベルの三目並べゲームなので、 Python、何も必要ありません Python としょうかん。
コード内のバグの解決策を見つけるには、ある程度のデバッグ スキルが必要な場合があります。また、ゲーム コンポーネントについても十分に理解している必要があります。
Tic Tac Toeの Python アルゴリズム
三目並べゲームを作成するには、以下の手順に従ってください。 Python プログラミング言語:
ステップ1) ボードを作成して三目並べゲームを始めます。
ステップ2) ゲームボードの寸法を決定するようユーザーに依頼します。
ステップ3) 最初のプレイヤーをランダムに選択します。
ステップ4) 三目並べゲームが始まります。
ステップ5) プレイヤーはボード上の空いている場所を選択してプレイします。
ステップ6) 選択した空のスポットをプレーヤーのサインで埋めます。
ステップ7) ゲーム ロジックを使用して、プレーヤーがゲームで勝つか引き分けになるかを判断します。
ステップ8) プレイヤーが勝てない場合、または XNUMX 番目のプレイヤーと引き分けになった場合は、毎回のプレイ後にゲーム ボードを表示します。
ステップ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()
Tic Tac Toeの Python コード出力
上記のソース コードを実行すると、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 _ _ _ _ _ _ _ _ _
三目並べゲーム – 勝利のアレンジメント
プレイヤーが勝ったかどうかを確認するには、行、列、対角線全体で勝利の組み合わせを確認する必要があります。 勝者がいる場合は、勝者のメッセージを表示する必要があります。
行
- 行については、関数は連続する列のペアをすべて取得し、勝利の組み合わせをチェックします。
- 最初に列を埋めたプレイヤーが勝ちです。 したがって、XNUMX番目のプレーヤーは負けます。
- 連続する XNUMX つの列が同じである場合、その行内のすべての要素が同じであることは明らかです。
- それらの XNUMX つが異なる場合、または行に空のセルが含まれている場合でも、勝者はいません。
- 次に、負け条件を実装し、ブレークを追加します。 これらの負け条件のいずれかが当てはまる場合、チェックされた行には勝者がいませんでした。
- else ステートメントは、勝者が存在することを示す true を返します。
- ブレークはこのループから抜け出し、次の行に進みます。
コラム
列についても、行と同じ機能を繰り返します。 各プレイヤーが順位を選択した後、プレイヤーが勝ったかどうかを確認します。
斜めの列が勝ち
左斜めの場合、タスクはより簡単になります。 常に対角線のセルを比較します。 ただし、勝者がいない場合は、次の指示に進むことができます。
ゲームロジックをプレイする
これがゲームの主な機能です。 このために、情報を保存する変数を使用できます。
- 最初の変数は「N」に格納される基板サイズです。 ゲームは、ユーザーに数値の入力を求めた後、ボードのサイズを取得します。
- したがって、値を入力すると処理されます。
- また、無効な数値が入力されたときにプレーヤーに表示するエラー メッセージも作成します。
- 次に、セルが入力されたときに「X」または「O」を入力する XNUMX つの変数を作成できます。
- 次に、プレイヤーにゲームボードを見せます。 この後、プレイヤーからの意見を受け取ります。
- 次に、ロジックは選択したセルを塗りつぶしとしてマークし、勝ちか引き分けかをチェックします。
- 勝者がいない場合、ゲームは次のプレイヤーにプレイを求めます。 勝ちまたは引き分けの場合、ゲームはユーザーに新しいゲームが必要かどうかを尋ねることができます。
まとめ:
- 三目並べは、空のボード セルにユニークなシンボルを配置してプレイする楽しい XNUMX 人用ゲームです。
- 三目並べゲームの作成 Python 初心者レベルの理解が必要です Python、テキストエディタ、および Python インストールされています。
- このアルゴリズムは、あらゆる言語で体系的にコードを記述するのに役立ちます。
- ゲームを作成するには、まずボードを描画し、勝ち負けの配置を決定するコードを記述します。
- 三目並べのコードは以下でテストできます。 Python まずはプレイしてみましょう。