sigmoidneuron123 commited on
Commit
272f597
·
verified ·
1 Parent(s): eefb74e

Update selfchess.py

Browse files
Files changed (1) hide show
  1. 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')) * random.uniform(1-CONFIG["epsilon"],1+CONFIG["epsilon"])
153
  board.pop()
154
 
155
  if not evaling:
156
  break
157
 
158
- move = max(evaling, key=evaling.get)
 
 
 
 
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