Update selfchess.py
Browse files- selfchess.py +6 -3
selfchess.py
CHANGED
|
@@ -5,7 +5,6 @@ import chess
|
|
| 5 |
import os
|
| 6 |
import chess.engine as eng
|
| 7 |
import torch.multiprocessing as mp
|
| 8 |
-
import random
|
| 9 |
|
| 10 |
# CONFIGURATION
|
| 11 |
CONFIG = {
|
|
@@ -149,13 +148,17 @@ def game_gen(engine_side):
|
|
| 149 |
evaling = {}
|
| 150 |
for move in board.legal_moves:
|
| 151 |
board.push(move)
|
| 152 |
-
evaling[move] = -search(board, depth=CONFIG["search_depth"], alpha=float('-inf'), beta=float('inf'))
|
| 153 |
board.pop()
|
| 154 |
|
| 155 |
if not evaling:
|
| 156 |
break
|
| 157 |
|
| 158 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
| 159 |
else:
|
| 160 |
result = engine.play(board, lim)
|
| 161 |
move = result.move
|
|
|
|
| 5 |
import os
|
| 6 |
import chess.engine as eng
|
| 7 |
import torch.multiprocessing as mp
|
|
|
|
| 8 |
|
| 9 |
# CONFIGURATION
|
| 10 |
CONFIG = {
|
|
|
|
| 148 |
evaling = {}
|
| 149 |
for move in board.legal_moves:
|
| 150 |
board.push(move)
|
| 151 |
+
evaling[move] = -search(board, depth=CONFIG["search_depth"], alpha=float('-inf'), beta=float('inf'))
|
| 152 |
board.pop()
|
| 153 |
|
| 154 |
if not evaling:
|
| 155 |
break
|
| 156 |
|
| 157 |
+
keys = list(evaling.keys())
|
| 158 |
+
logits = torch.tensor(list(evaling.values())).to(device)
|
| 159 |
+
probs = torch.softmax(logits,dim=0)
|
| 160 |
+
idx = torch.multinomial(probs,num_samples=1)
|
| 161 |
+
move = keys[idx]
|
| 162 |
else:
|
| 163 |
result = engine.play(board, lim)
|
| 164 |
move = result.move
|