三目並べゲームの作り方 Python Code 例:
⚡ スマートサマリー
三目並べ Python これは、古典的な2人用グリッドゲームを再現した、初心者向けのプロジェクトです。このプロジェクトを構築することで、ループ、条件分岐、リスト、関数、再帰といった基本的なスキルを強化しながら、行、列、対角線をチェックして勝者を決定します。

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