juego_tateti/tateti_1.4.py

138 lines
4.5 KiB
Python
Raw Permalink Normal View History

2026-07-29 17:18:37 -03:00
'''
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)
2026-07-29 18:34:44 -03:00
Agrego la función jugar_tateti(opcion) que según la opcion elegida juega vs humano o PC.
2026-07-29 17:18:37 -03:00
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
'''
2026-07-29 18:34:44 -03:00
import random
def tatetivsPC(tablero):
casillas = []
for casilla in range(9):
if not (tablero[casilla] == "X" or tablero[casilla] == "O"):
casillas.append(tablero[casilla])
print(casillas)
return random.choice(casillas)
2026-07-29 17:18:37 -03:00
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]} ")
2026-07-29 18:34:44 -03:00
2026-07-29 17:18:37 -03:00
def datos_jugadores(modalidad):
2026-07-29 18:34:44 -03:00
"""Esta función permite cargar los datos de los jugadores"""
#Grabo los datos de los jugadores en un archivo TXT
2026-07-29 17:18:37 -03:00
archivo = open('./juego_tateti/jugadores.txt', 'w')
2026-07-29 18:34:44 -03:00
#El jugadorX puede jugar solo o contra otro humano por eso se define afuera
2026-07-29 17:18:37 -03:00
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: ')
2026-07-29 18:34:44 -03:00
print("\n¡Buenisimo! " + nombre_jugadorX + " vs " + nombre_jugadorO + "\nArranca el juego.")
2026-07-29 17:18:37 -03:00
archivo.write('JugadorO = ' + nombre_jugadorO + '\n')
else:
2026-07-29 18:34:44 -03:00
print("\n¡Buenisimo! " + nombre_jugadorX + " vs PC " + "\nArranca el juego.")
2026-07-29 17:18:37 -03:00
archivo.close()
2026-07-29 18:34:44 -03:00
def jugar_tateti(opcion):
datos_jugadores(opcion)
imprime_tablero()
jugadas = 0
jugadorX = True
jugadorO = False
2026-07-29 17:18:37 -03:00
2026-07-29 18:34:44 -03:00
while jugadas < 9:
2026-07-29 17:18:37 -03:00
if jugadorX:
2026-07-29 18:34:44 -03:00
print("\nTurno del jugador X")
numeroElegido = int(input("Elegir un número del 1 al 9: "))
2026-07-29 17:18:37 -03:00
else:
2026-07-29 18:34:44 -03:00
if opcion == str(1):
print("\nTurno del jugador O")
numeroElegido = int(input("Elegir un número del 1 al 9: "))
else:
print("\nTurno PC")
numeroElegido = int(tatetivsPC(tablero))
2026-07-29 17:18:37 -03:00
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")
2026-07-29 18:34:44 -03:00
print("=== BIENVENIDO AL TA-TE-TI ===")
print("1. Humano vs Humano (2 jugadores)")
print("2. Humano vs PC")
opcion = ""
opcion = input("Elegí una opción (1 para jugar): ")
# 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]
if opcion == "1":
jugar_tateti(opcion)
elif opcion == "2":
jugar_tateti(opcion)
else:
print("Opción no válida. Poné 1 o 2.")