Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> python

Crea un juego de tres en raya en Python:tutorial de código paso a paso

Tic Tac Toe Game en Python es un proyecto interesante que puedes probar. Es un proyecto interesante y divertido para resolver un desafío y puede ayudarte a dominar conceptos básicos en Python. Crear un divertido juego de tres en raya te ayudará a desarrollar tus habilidades.

Puedes utilizar un buen editor de Python como Pycharm o la interfaz de línea de comandos.

¿Cómo jugar al juego Tic Toc?

El juego tres en raya es un juego sencillo para dos jugadores que cualquiera puede jugar sin necesidad de un tablero de juego. Se trata de dos jugadores marcando celdas diferentes hasta que finaliza el juego, en el que se logra una victoria o un empate.

A continuación se explica cómo jugar al juego de tres en raya.

Paso 1) El juego de tres en raya comienza con celdas vacías en una cuadrícula. Este es el tablero de tres en raya.

Paso 2) Ambos jugadores eligen entre dos símbolos, normalmente X u O. Puedes usar cualquier otro símbolo único en el juego.

Paso 3) El jugador actual marca por turnos completando las celdas del tablero de tres en raya hasta que un jugador completa una combinación ganadora. Es decir, una fila, columna o diagonal entera con el mismo signo.

Paso 4) También es posible un empate en el juego en caso de que todas las celdas estén llenas y no haya un ganador aparente

Requisitos

La creación del proyecto Python de tres en raya requiere una comprensión de nivel principiante del lenguaje de programación Python. Incluye comprender los bucles e iteraciones "for" y qué declaración if se usa en Python.

También necesita tener Python y un editor de texto Python instalado en su computadora para completar el proyecto Python tres en raya. Como se trata de un juego de tres en raya para principiantes en Python, no necesitarás ninguna biblioteca de Python.

Es posible que necesites algunas habilidades de depuración para encontrar soluciones a los errores en tu código y también debes tener una comprensión adecuada de los componentes del juego.

Algoritmo de Python tres en raya

Sigue estos pasos para crear un juego de tres en raya en el lenguaje de programación Python:

Paso 1) Crea el tablero para comenzar el juego de tres en raya.

Paso 2) Solicita al usuario que decida las dimensiones del tablero de juego.

Paso 3) Elige al azar el primer jugador.

Paso 4) Comienza el juego de tres en raya.

Paso 5) Los jugadores juegan seleccionando un lugar vacío en el tablero.

Paso 6) Llena el lugar vacío seleccionado con el cartel del jugador.

Paso 7) Determina si un jugador gana o empata en el juego usando la lógica del juego.

Paso 8) Muestra el tablero de juego después de cada jugada si ningún jugador gana o empata con el segundo jugador.

Paso 9) Muestra un mensaje de empate o victoria, respectivamente.

Paso 10) Finaliza el juego de tres en raya con opciones para comenzar un nuevo juego.

Código Python completo para tres en raya

# 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()

Una vez que ejecute el código fuente anterior, a continuación se muestra el resultado esperado para un tablero de tres en raya de 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):

Desglose completo del código

Creando Tres en raya en Python es simple. Analicemos las diferentes funciones en bits para entender qué sucede en cada línea:

Imprimiendo el tablero

El tablero de tres en raya es la pantalla principal del juego. En, la ventana de visualización de Python se utiliza para mostrar el tablero de juego.

Estos son los pasos que te ayudarán a crear un tablero para tres en raya en Python:

Código Python para Tic Tac Toe

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)

Salida del código:

------------
N-DIMENSIONAL TIC TAC TOE game by guru 99.com
------------
Guru99 says>>> Enter N, the dimensions of the board: 3
_ _ _
_ _ _
_ _ _

Juego Tic Tac Toe – arreglo ganador

Para comprobar si algún jugador ganó, debemos comprobar las combinaciones ganadoras en las filas, columnas y diagonales. Si hay un ganador, debemos mostrar un mensaje ganador.

Filas

Columnas

Para las columnas repetimos la misma función que en las filas. Comprobamos si un jugador ganó después de que cada jugador elige su lugar.

La fila diagonal gana

Para la diagonal izquierda, la tarea se vuelve más sencilla. Siempre estaremos comparando las celdas en las diagonales. Sin embargo, en caso de que no haya ningún ganador, podemos pasar a la siguiente instrucción.

Jugar a la lógica del juego

Esta es la función principal del juego. Para ello podemos utilizar variables que almacenen información.

Conclusión


python

  1. Solución de problemas de pérdida de memoria de Python:diagnosticar y solucionar problemas de rendimiento
  2. Python - Módulos
  3. Sueño de Python ()
  4. Conjuntos de Python
  5. Conversión de tipos de Python y conversión de tipos
  6. Python Anónimo/Función Lambda
  7. Python - Configuración del entorno
  8. Dominar Python:6 formas efectivas de calcular el cuadrado de un número
  9. Domine Python con cuestionarios interactivos de Real Python:pruebe sus habilidades
  10. Python - Operadores básicos
  11. Matriz de Python:transposición, multiplicación, ejemplos de matrices NumPy