Advertisement
max2201111

proc se 983 ale nepouzila v te smycce while True 2?

Sep 7th, 2024
412
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.60 KB | Science | 0 0
  1.     if "7Q/8/8/5k2/8/8/8/K7 w - -" in AR:
  2.         print(f"{AR['7Q/8/8/5k2/8/8/8/K7 w - -']}")
  3.     if "" in AR:
  4.         print("G2")
  5.     if "" in AR:
  6.         print("G3")
  7.     if "" in AR:
  8.         print("G4")
  9.     if "" in AR:
  10.         print("G5")
  11.     if "" in AR:
  12.         print("G6")
  13.  
  14.    
  15.     current_fen = start_fen
  16.     simplified_current_fen = simplify_fen(current_fen)
  17.     simplified_current_fen1 = simplified_current_fen
  18.     optimal_moves = [start_fen]
  19.    
  20.     while True:
  21.         board = CustomBoard(current_fen)
  22.         if board.is_checkmate():
  23.             print("Mat detekován!2")
  24.             break
  25.        
  26.         # Opravená část
  27.         half_move_clock = current_fen.split()[-2]
  28.         if board.is_insufficient_material() or (half_move_clock != '-' and int(half_move_clock) >= 100):
  29.             if board.is_insufficient_material():
  30.                 print("Nedostatečný materiál detekován!")
  31.             else:
  32.                 print("Remíza pravidlem 50 tahů detekována!")
  33.             AR[simplified_current_fen] = (0, 'drawing')  # Aktualizujeme AR pro tuto pozici
  34.             break
  35.        
  36.         if simplified_current_fen not in AR:
  37.             print(f"Pozice {simplified_current_fen} není v AR.")
  38.             break
  39.        
  40.         current_value = AR[simplified_current_fen][0]
  41.        
  42.         if current_value == 0:
  43.             print("Remíza dosažena!")
  44.             break
  45.        
  46.         hod = -2000 if current_value > 0 else 2000
  47.         best_fen = None
  48.         for move in board.legal_moves:
  49.             board.push(move)
  50.             POZ2 = board.fen()
  51.             simplified_POZ2 = simplify_fen(POZ2)
  52.             if simplified_POZ2 in AR:
  53.                 hod2 = -AR[simplified_POZ2][0]
  54.                 if current_value > 0:  # Silnější hráč
  55.                     if hod2 > hod:
  56.                         hod = hod2
  57.                         best_fen = simplified_POZ2
  58.                 else:  # Slabší hráč
  59.                     if hod2 < hod:
  60.                         hod = hod2
  61.                         best_fen = simplified_POZ2
  62.             board.pop()
  63.        
  64.         if best_fen is None:
  65.             print("Žádný další tah nebyl nalezen.")
  66.             break
  67.         optimal_moves.append(best_fen)
  68.         current_fen = best_fen
  69.         simplified_current_fen = simplify_fen(current_fen)
  70.            
  71.    
  72.     print("\nOptimální tahy1:")
  73.     for fen in reversed(optimal_moves):
  74.         print_board(fen)
  75.         hodnota, typ_pozice = AR[simplify_fen(fen)]
  76.         print(f"Hodnota: {hodnota}, Typ: {typ_pozice}")
  77.         print(fen)
  78.         print("\n")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement