2 usuarios conectados

Tres en raya (Ta-te-ti). Juego en Python

Comparte esto
Python
 
def mostrar_tablero(tablero):
    print("-------------")
    print(f"| {tablero[0]} | {tablero[1]} | {tablero[2]} |")
    print("-------------")
    print(f"| {tablero[3]} | {tablero[4]} | {tablero[5]} |")
    print("-------------")
    print(f"| {tablero[6]} | {tablero[7]} | {tablero[8]} |")
    print("-------------")

def comprobar_ganador(tablero, jugador):
    # Comprobar filas
    for i in range(0, 9, 3):
        if tablero[i] == tablero[i+1] == tablero[i+2] == jugador:
            return True
    # Comprobar columnas
    for i in range(3):
        if tablero[i] == tablero[i+3] == tablero[i+6] == jugador:
            return True
    # Comprobar diagonales
    if (tablero[0] == tablero[4] == tablero[8] == jugador) or \
       (tablero[2] == tablero[4] == tablero[6] == jugador):
        return True
    return False

def jugar_ta_te_ti():
    tablero = [" " for _ in range(9)]
    jugador_actual = "X"
    juego_terminado = False

    print("¡Bienvenido al Ta-Te-Ti!")
    mostrar_tablero(tablero)

    while not juego_terminado:
        try:
            posicion = int(input(f"Jugador {jugador_actual}, elige una posición (1-9): ")) - 1
            if 0 <= posicion <= 8 and tablero[posicion] == " ":
                tablero[posicion] = jugador_actual
                mostrar_tablero(tablero)

                if comprobar_ganador(tablero, jugador_actual):
                    print(f"¡Jugador {jugador_actual} ha ganado!")
                    juego_terminado = True
                elif " " not in tablero:
                    print("¡Empate!")
                    juego_terminado = True
                else:
                    jugador_actual = "O" if jugador_actual == "X" else "X"
            else:
                print("¡Posición inválida! Intenta de nuevo.")
        except ValueError:
            print("¡Entrada inválida! Por favor, introduce un número entre 1 y 9.")

    print("¡Gracias por jugar al Ta-Te-Ti!")

if __name__ == "__main__":
    jugar_ta_te_ti()

¿Cómo funciona el código?

  1. mostrar_tablero(tablero): Esta función toma una lista que representa el tablero y la imprime de una manera legible en la consola.
  2. comprobar_ganador(tablero, jugador): Esta función verifica si el jugador actual ha ganado revisando todas las posibles líneas ganadoras (filas, columnas y diagonales) en el tablero.
  3. jugar_ta_te_ti(): Esta es la función principal del juego:
    • tablero = [" " for _ in range(9)]: Inicializa una lista de 9 espacios en blanco para representar las 9 casillas del tablero.
    • jugador_actual = "X": Comienza el juego con el jugador "X".
    • juego_terminado = False: Una variable booleana para controlar si el juego ha terminado.
    • Se imprime un mensaje de bienvenida y se muestra el tablero inicial.
    • while not juego_terminado:: El bucle principal del juego continúa hasta que alguien gana o hay un empate.
      • Se pide al jugador actual que elija una posición del 1 al 9.
      • Se verifica si la posición es válida (dentro del rango y la casilla está vacía).
      • Si la posición es válida, se coloca el símbolo del jugador actual en esa casilla y se muestra el tablero actualizado.
      • Se comprueba si el jugador actual ha ganado. Si es así, se declara el ganador y se marca juego_terminado como True.
      • Si no hay ganador, se comprueba si el tablero está lleno (empate). Si es así, se declara el empate y se marca juego_terminado como True.
      • Si el juego aún no ha terminado, se cambia al siguiente jugador.
      • Si la entrada del jugador no es válida (no un número o posición fuera de rango/ocupada), se muestra un mensaje de error.
    • Finalmente, se imprime un mensaje de agradecimiento por jugar.
  4. if __name__ == "__main__":: Asegura que la función jugar_ta_te_ti() se ejecute solo cuando el script se llama directamente.

Cómo jugar:

  1. Guarda este código en un archivo con extensión .py (por ejemplo, ta_te_ti.py).
  2. Abre una terminal o símbolo del sistema.
  3. Navega al directorio donde guardaste el archivo.
  4. Ejecuta el script con el comando: python ta_te_ti.py
  5. Los jugadores se turnarán para introducir un número del 1 al 9 para colocar su símbolo ("X" o "O") en el tablero. El objetivo es alinear tres de sus símbolos en una fila, columna o diagonal.