juego_tateti/tateti_1.3.py
2026-07-29 18:34:44 -03:00

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")