OSDN Git Service

x y が逆になっていました
authoryamat0jp <yamat0jp@yahoo.co.jp>
Tue, 26 Dec 2017 08:55:22 +0000 (17:55 +0900)
committeryamat0jp <yamat0jp@yahoo.co.jp>
Tue, 26 Dec 2017 08:55:22 +0000 (17:55 +0900)
学習できました

network.py
reversi.py

index e6ab710..ad97e01 100644 (file)
@@ -47,21 +47,32 @@ class  Comp():
         X,Y = np.array(X_train),np.array(Y_train) 
         X = np.reshape(X,[1,64])
         Y = np.reshape(Y,[1,64])
-        self.model1.fit(X,Y)
+        j = np.argmax(Y)
+        for i in range(10):
+            self.model1.fit(X,Y)
+            res = self.model1.predict(X,1)
+            s = np.argmax(res)
+            if s == j:
+                break
+        else:
+            s = j
         hdf5_file = './sente-model.hdf5'
         self.model1.save_weights(hdf5_file)
-        res = self.model1.predict(X,1)
-        i = np.argmax(res)
-        print(res,i)
-        return [i % 8, i // 8]
+        return [s // 8, s % 8]
         
     def gote_stone(self,X_train,Y_train):
         X,Y=np.array(X_train),np.array(Y_train)
         X = np.reshape(X,[1,64])
         Y = np.reshape(Y,[1,64])
-        self.model2.fit(X,Y)
+        j = np.argmax(Y)
+        for i in range(10):
+            self.model2.fit(X,Y)
+            res = self.model2.predict(X,1)
+            s = np.argmax(res)
+            if j == s:
+                break
+        else:
+            s = j
         hdf5_file ='./gote-model.hdf5'
         self.model2.save_weights(hdf5_file)
-        res = self.model2.predict(X,1)
-        i = np.argmax(res)
-        return [i % 8, i // 8]
+        return [s // 8, s % 8]
index e627198..4c7bbf9 100755 (executable)
@@ -237,17 +237,15 @@ def CompStone():
             pre = comp.sente_stone(stone_grid.item.grid,stone_grid.arr.grid)
         elif index.stone == white:
             pre = comp.gote_stone(stone_grid.item.grid,stone_grid.arr.grid) 
-            print(pre,'hit!')
-        if stone_grid.CanSetStone(index.stone, pre[0], pre[1], True) == False:
-            print(pre,'=>',pos)                                 
-            stone_grid.CanSetStone(index.stone, pos[0], pos[1], True) 
+        stone_grid.CanSetStone(index.stone, pre[0], pre[1], True)
+        print(pre)
     stone_grid.active = True
                  
 player1 = Player()
 player2 = Player()
 index = player1
 player1.stone = black
-player1.auto = False
+player1.auto = True
 player2.auto = True
 player2.stone = white
 stone_grid = StoneGrid()
@@ -255,6 +253,7 @@ stone_grid.Start()
 pygame.event.get()
 temp = pygame.time.get_ticks()
 Paint()
+tt = (player1.auto == True)and(player2.auto == True)
 while True:    
     if pygame.time.get_ticks()-temp > 300:
         if (stone_grid.active == True)and(index.auto == True):        
@@ -266,8 +265,7 @@ while True:
         if x.type == QUIT:
             sys.exit()    
     t = pygame.mouse.get_pressed()[0]
-    tt = (player1.auto == True)and(player2.auto == True)
-    if (stone_grid.gameover == True)and(t == True)or(tt == True):
+    if (stone_grid.gameover == True)and((t == True)or(tt == True)):
         stone_grid.Start()
     if (index.auto == False)and(stone_grid.active == True)and(t == True):            
         stone_grid.active = False