128 lines
4 KiB
Python
128 lines
4 KiB
Python
'''
|
|
Juego TA-TE-TI
|
|
Profesora = ANA LAURA ALMADA
|
|
Alumnos de UNL Virtual - Grupo Venus
|
|
Federico Alejandro Mazzei:
|
|
Estructura inicial del programa (tablero inicial del juego, ingreso de posiciones validas y contador de jugadas)
|
|
datos_jugadores() Solicito nombre de los jugadores y lo guardo en un archivo .TXT (jugadores.txt)
|
|
Fernando Zaldívar Posse:
|
|
Validación de ganador de la partida. Empate si se completan las 9 posiciones sin un ganador.
|
|
Matías Mauricio Machado Pérez:
|
|
Menú principal con opciones antes de que muestre el tablero de juego.
|
|
Sara Somaré:
|
|
Incorporación del segundo jugador y turnos de juego integrándolo al código de Ingrid.
|
|
Ingrid Celia Spessotti:
|
|
Representación del tablero con una lista, actualización del tablero y control de casillas ocupadas
|
|
'''
|
|
|
|
def comprueba_ganador():
|
|
""" Comprueba si hay un ganador """
|
|
return (tablero[0] == tablero[1] == tablero[2] or
|
|
tablero[3] == tablero[4] == tablero[5] or
|
|
tablero[6] == tablero[7] == tablero[8] or
|
|
tablero[0] == tablero[3] == tablero[6] or
|
|
tablero[1] == tablero[4] == tablero[7] or
|
|
tablero[2] == tablero[5] == tablero[8] or
|
|
tablero[0] == tablero[4] == tablero[8] or
|
|
tablero[2] == tablero[4] == tablero[6])
|
|
|
|
def imprime_tablero():
|
|
print(f"\n {tablero[0]} | {tablero[1]} | {tablero[2]} \n---+---+---\n {tablero[3]} | {tablero[4]} | {tablero[5]} \n---+---+---\n {tablero[6]} | {tablero[7]} | {tablero[8]} ")
|
|
|
|
"""
|
|
Defino una función que permite cargar datos de los jugadores
|
|
"""
|
|
def datos_jugadores(modalidad):
|
|
"""Grabo los datos de los jugadores en un archivo TXT"""
|
|
archivo = open('./juego_tateti/jugadores.txt', 'w')
|
|
|
|
""" El jugadorX puede jugar solo o contra otro humano por eso se define afuera """
|
|
nombre_jugadorX = input('\nIngrese el nombre del jugador X: ')
|
|
|
|
archivo.write('JugadorX = ' + nombre_jugadorX + '\n')
|
|
|
|
if modalidad == str(1):
|
|
nombre_jugadorO = input('\nIngrese el nombre del jugador O: ')
|
|
|
|
print("¡Buenisimo! " + nombre_jugadorX + " vs " + nombre_jugadorO + "\nArranca el juego.")
|
|
|
|
archivo.write('JugadorO = ' + nombre_jugadorO + '\n')
|
|
|
|
else:
|
|
|
|
print("\n " + nombre_jugadorX + " esta modalidad va a estar disponible próximamente!\n")
|
|
|
|
archivo.close()
|
|
|
|
print("=== BIENVENIDO AL TA-TE-TI ===")
|
|
print("1. Humano vs Humano (2 jugadores)")
|
|
print("2. Humano vs PC (Próximamente...)")
|
|
|
|
opcion = ""
|
|
while opcion != "1":
|
|
opcion = input("Elegí una opción (1 para jugar): ")
|
|
|
|
if opcion == "1":
|
|
datos_jugadores(opcion)
|
|
|
|
elif opcion == "2":
|
|
datos_jugadores(opcion)
|
|
|
|
else:
|
|
print("Opción no válida. Poné 1 o 2.")
|
|
|
|
|
|
# Declaro las variables para luego validarlas
|
|
p1, p2, p3 = "1", "2", "3"
|
|
p4, p5, p6 = "4", "5", "6"
|
|
p7, p8, p9 = "7", "8", "9"
|
|
|
|
# Defino matriz para poder almacenar las X y O para luego poder controlar las ubicaciones y lineas
|
|
|
|
tablero = [p1, p2, p3, p4, p5, p6, p7, p8, p9]
|
|
|
|
imprime_tablero()
|
|
|
|
|
|
# Integración del código de jugador X y jugador O al código de Ingrid.
|
|
# Comienza el jugador X
|
|
jugadorX = True
|
|
jugadorO = False
|
|
jugadas = 0
|
|
|
|
while jugadas < 9:
|
|
if jugadorX:
|
|
print("Turno del jugador X")
|
|
else:
|
|
print("Turno del jugador O")
|
|
|
|
numeroElegido = int(input("Elegir un número del 1 al 9: "))
|
|
|
|
if 1 <= numeroElegido <= 9:
|
|
|
|
if tablero[numeroElegido - 1] not in ['X', 'O']:
|
|
|
|
if jugadorX:
|
|
tablero[numeroElegido - 1] = 'X'
|
|
jugadorX = False
|
|
jugadorO = True
|
|
else:
|
|
tablero[numeroElegido - 1] = 'O'
|
|
jugadorX = True
|
|
jugadorO = False
|
|
|
|
jugadas += 1
|
|
|
|
imprime_tablero()
|
|
|
|
else:
|
|
print("Ubicación no disponible.")
|
|
|
|
else:
|
|
print("Ingrese un número válido del 1 al 9.")
|
|
|
|
if comprueba_ganador():
|
|
print("¡GANASTE!")
|
|
break
|
|
elif jugadas==9:
|
|
print("La partida terminó empatada")
|