A kód létrehoz egy sakkjátszmát, amelyben a gép (Stockfish) véletlenszerűen vagy a motor logikája szerint lép.A sakk automatizálásához (például lépések elemzéséhez, tábla leolvasásához vagy motorok vezérléséhez) a Python tökéletes választás. Az alábbi alapvető példa egy terminálban futtatható sakk-készletet és a népszerű Stockfish sakkmotorral való kommunikációt mutatja be a python-chess könyvtár segítségével
-------------------
import chess
import random
def jatek_inditasa():
# Új sakkjátszma indítása
tabla = chess.Board()
print("Sakkjátszma elindult!")
print(tabla)
print("-" * 20)
# Játék ciklus
while not tabla.is_game_over():
if tabla.turn: # Fehér játékos (a felhasználó) lépése
print(f"Elérhető lépések: {[tabla.san(lep) for lep in tabla.legal_moves]}")
lep_szoveg = input("Add meg a lépésed (pl. e2e4): ")
try:
lep = chess.Move.from_uci(lep_szoveg)
if lep in tabla.legal_moves:
tabla.push(lep)
else:
print("Érvénytelen lépés! Próbáld újra.")
continue
except:
print("Hibás formátum!")
continue
else: # Fekete játékos (a gép) lépése
# Itt lehet Stockfish motort is használni a "random.choice" helyett
lehetseges_lepesek = list(tabla.legal_moves)
if lehetseges_lepesek:
gep_lepese = random.choice(lehetseges_lepesek)
print(f"Gép lépése: {tabla.san(gep_lepese)}")
tabla.push(gep_lepese)
print("-" * 20)
print(tabla)
print("-" * 20)
print("A játéknak vége!")
print(f"Eredmény: {tabla.outcome()}")
if __name__ == "__main__":
jatek_inditasa()
-------------------
Sakkjátszma elindult!
r n b q k b n r
p p p p p p p p
. . . . . . . .
. . . . . . . .
. . . . . . . .
. . . . . . . .
P P P P P P P P
R N B Q K B N R
--------------------
Elérhető lépések: ['Nh3', 'Nf3', 'Nc3', 'Na3', 'h3', 'g3', 'f3', 'e3', 'd3',
'c3', 'b3', 'a3', 'h4', 'g4', 'f4', 'e4', 'd4', 'c4', 'b4', 'a4']
Add meg a lépésed (pl. e2e4):
KeyboardInterrupt: Execution stopped by user.
** Process exited - Return Code: 130 **
-------------------
Nincsenek megjegyzések:
Megjegyzés küldése