Skip to content

Instantly share code, notes, and snippets.

@malambra
Created July 13, 2024 23:07
Show Gist options
  • Save malambra/d55aa1f527dc7a5ed96e6d940665385c to your computer and use it in GitHub Desktop.
Save malambra/d55aa1f527dc7a5ed96e6d940665385c to your computer and use it in GitHub Desktop.
tablero = [["-"]*7 for i in range(6)]
def print_tablero(tablero):
print(" " + " ".join(str(i) for i in range(7)))
for idx, fila in enumerate(tablero):
print(idx, " ".join(fila))
def jugada(jugador, columna):
lleno = True
for fila in range(5, -1, -1):
if tablero[fila][columna] == "-":
tablero[fila][columna] = jugador
lleno = False
break
return(lleno)
def ganador(jugador):
for fila in range(6):
for columna in range(7):
if tablero[fila][columna] == jugador:
if columna < 4:
if tablero[fila][columna + 1] == jugador and tablero[fila][columna + 2] == jugador and tablero[fila][columna + 3] == jugador:
return True
if fila < 3:
if tablero[fila + 1][columna] == jugador and tablero[fila + 2][columna] == jugador and tablero[fila + 3][columna] == jugador:
return True
if fila < 3 and columna < 4:
if tablero[fila + 1][columna + 1] == jugador and tablero[fila + 2][columna + 2] == jugador and tablero[fila + 3][columna + 3] == jugador:
return True
if fila < 3 and columna > 2:
if tablero[fila + 1][columna - 1] == jugador and tablero[fila + 2][columna - 2] == jugador and tablero[fila + 3][columna - 3] == jugador:
return True
return False
def main():
print_tablero(tablero)
turno = 0
fin = False
while (not fin):
for turno in range(44):
print(f"Turno {turno}")
if turno % 2 == 0 and turno < 42:
jugador = "X"
while True:
try:
ok=jugada(jugador, int(input("Jugador X, elige columna: ")))
break
except KeyboardInterrupt:
print('interrupted!')
break
except:
print("Elige un número entre 0 y 6")
if ok:
print("Columna llena, prueba otra")
continue
else:
print_tablero(tablero)
fin=ganador("X")
if fin:
print("Gana jugador X")
break
elif turno % 2 != 0 and turno < 42:
jugador = "O"
while True:
try:
ok=jugada(jugador, int(input("Jugador O, elige columna: ")))
break
except KeyboardInterrupt:
print('interrupted!')
break
except:
print("Elige un número entre 0 y 6")
if ok:
print("Columna llena, prueba otra")
continue
else:
print_tablero(tablero)
fin=ganador("O")
if fin:
print("Gana jugador O")
break
else:
print("Empate")
fin=True
break
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment