diff --git a/.idea/misc.xml b/.idea/misc.xml
index d56657a..009ceba 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,4 +1,7 @@
+
+
+
\ No newline at end of file
diff --git a/src/__pycache__/init.cpython-38.pyc b/src/__pycache__/init.cpython-38.pyc
new file mode 100644
index 0000000..31fce2a
Binary files /dev/null and b/src/__pycache__/init.cpython-38.pyc differ
diff --git a/src/__pycache__/start_game.cpython-38.pyc b/src/__pycache__/start_game.cpython-38.pyc
new file mode 100644
index 0000000..cebb297
Binary files /dev/null and b/src/__pycache__/start_game.cpython-38.pyc differ
diff --git a/src/images/capture-hint.png b/src/images/capture-hint.png
new file mode 100644
index 0000000..6763c6e
Binary files /dev/null and b/src/images/capture-hint.png differ
diff --git a/src/images/hint.png b/src/images/hint.png
new file mode 100644
index 0000000..0e3b6f7
Binary files /dev/null and b/src/images/hint.png differ
diff --git a/src/init.py b/src/init.py
index 95acdfa..37b3bb9 100644
--- a/src/init.py
+++ b/src/init.py
@@ -170,3 +170,21 @@ def clac_MAP1():
x, y = calc(719, 604)
MAP[x][y] = 20
return MAP
+
+def refresh():
+ l_elephant = pygame.Rect(281, 10, CHESSSIZE_Y, CHESSSIZE_Y)
+ l_eagle = pygame.Rect(157, 120, CHESSSIZE_Y, CHESSSIZE_Y)
+ l_wolf = pygame.Rect(284, 229, CHESSSIZE_Y, CHESSSIZE_Y)
+ l_lion = pygame.Rect(292, 343, CHESSSIZE_Y, CHESSSIZE_Y)
+ l_leopard = pygame.Rect(285, 450, CHESSSIZE_Y, CHESSSIZE_Y)
+ l_mouse = pygame.Rect(285, 665, CHESSSIZE_Y, CHESSSIZE_Y)
+ l_fox = pygame.Rect(157, 557, CHESSSIZE_Y, CHESSSIZE_Y)
+
+ r_elephant = pygame.Rect(795, 673, CHESSSIZE_Y, CHESSSIZE_Y)
+ r_eagle = pygame.Rect(925, 570, CHESSSIZE_Y, CHESSSIZE_Y)
+ r_wolf = pygame.Rect(803, 458, CHESSSIZE_Y, CHESSSIZE_Y)
+ r_lion = pygame.Rect(802, 347, CHESSSIZE_Y, CHESSSIZE_Y)
+ r_leopard = pygame.Rect(796, 232, CHESSSIZE_Y, CHESSSIZE_Y)
+ r_fox = pygame.Rect(920, 123, CHESSSIZE_Y, CHESSSIZE_Y)
+ r_mouse = pygame.Rect(793, 16, CHESSSIZE_Y, CHESSSIZE_Y)
+ return l_elephant,l_eagle,l_wolf, l_lion,l_leopard, l_mouse,l_fox,r_elephant,r_eagle,r_wolf,r_lion,r_leopard,r_fox,r_mouse
\ No newline at end of file
diff --git a/src/main.py b/src/main.py
index 9ab9f34..01ebf17 100644
--- a/src/main.py
+++ b/src/main.py
@@ -3,6 +3,7 @@ import init
import start_game
import time
import os
+#import path.path
WIDTH , HEIGHT = 1200 , 800
@@ -115,9 +116,6 @@ def draw_window(l_elephant,l_eagle,l_wolf,l_lion,l_leopard,l_mouse,l_fox,r_eleph
draw_right_animals(r_elephant,r_eagle,r_wolf,r_lion,r_leopard,r_mouse,r_fox)
#WIN.blit(L_fox,(fox.x,fox.y))
pygame.display.update()
-#TODO:传入动物编号id,动物现在的位置(x,y),将点击的动物圈起来,并显示可以移动的地方
-def path():
- pass
#animals rect
l_elephant = pygame.Rect(int(2/9 * WIDTH),int(0 / 7 * HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y)
@@ -751,196 +749,810 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1):
return 1
if MAP1[x][y] == 17 and 1<=MAP[x][y]<=7:
ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ return 1
+ else :
+ return 0
+ elif id == 13:
+ if MAP[x][y] == 18:
+ return 0
+ if MAP[x][y] == 20:
+ return 0
+ if abs(x - old_x) ==1 and old_y == y and (MAP[x][y] == 0 or MAP[x][y] == 17 or MAP[x][y] == 15 or MAP[x][y] == 16 or MAP1[x][y] == 17 or 1<=MAP[x][y]<=6):
+ if 1 <= MAP[x][y] <= 6:
+ if MAP[x][y] == 1:
+ if MAP1[x][y] != 20:
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ else:
+ return 0
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ if MAP1[x][y] == 17 and 1<=MAP[x][y]<=7:
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ return 1
+ elif old_x == x and abs(y - old_y) == 1 and (MAP[x][y] == 0 or MAP[x][y] == 17 or MAP[x][y] == 15 or MAP[x][y] == 16 or MAP1[x][y] == 17 or 1<=MAP[x][y]<=6):
+ if 1 <= MAP[x][y] <= 6:
+ if MAP[x][y] == 1:
+ if MAP1[x][y] != 20:
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ else:
+ return 0
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ if MAP1[x][y] == 17 and 1<=MAP[x][y]<=7:
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ return 1
+ elif old_x == x and (MAP[x][y] == 0 or MAP[x][y] == 17 or MAP[x][y] == 15 or MAP[x][y] == 16 or MAP1[x][y] == 17 or 1<=MAP[x][y]<=6):
+ if y > old_y:
+ for i in range(old_y+1,y):
+ if MAP[x][i] != 20 and MAP[x][i] != 8 :
+ return 0
+ if 1 <= MAP[x][y] <= 6:
+ if MAP[x][y] == 1:
+ if MAP1[x][y] != 20:
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ else:
+ return 0
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ if MAP1[x][y] == 17 and 1<=MAP[x][y]<=7:
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ return 1
+ else:
+ for i in range(y+1,old_y):
+ if MAP[x][i] != 20 and MAP[x][i] != 1 :
+ return 0
+ if 1 <= MAP[x][y] <= 6:
+ if MAP[x][y] == 1:
+ if MAP1[x][y] != 20:
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ else:
+ return 0
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ if MAP1[x][y] == 17 and 1<=MAP[x][y]<=7:
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ return 1
+ elif old_y == y and (MAP[x][y] == 0 or MAP[x][y] == 17 or MAP[x][y] == 15 or MAP[x][y] == 16 or MAP1[x][y] == 17 or 1<=MAP[x][y]<=6):
+ if x > old_x:
+ for i in range(old_x+1,x):
+ if MAP[i][y] != 20 and MAP[i][y] != 1 :
+ return 0
+ if 1 <= MAP[x][y] <= 6:
+ if MAP[x][y] == 1:
+ if MAP1[x][y] != 20:
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ else:
+ return 0
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ if MAP1[x][y] == 17 and 1<=MAP[x][y]<=7:
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ return 1
+ else:
+ for i in range(x+1,old_x):
+ if MAP[i][y] != 20 and MAP[i][y] != 1 :
+ return 0
+ if 1 <= MAP[x][y] <= 6:
+ if MAP[x][y] == 1:
+ if MAP1[x][y] != 20:
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ else:
+ return 0
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ if MAP1[x][y] == 17 and 1<=MAP[x][y]<=7:
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ return 1
+ else:
+ return 0
+ elif id == 14:
+ if MAP[x][y] == 18:
+ return 0
+ if(MAP[x][y] == 20):
+ return 0
+ if abs(x - old_x) == 1 and old_y == y and (MAP[x][y] == 0 or MAP[x][y] == 17 or MAP[x][y] == 15 or MAP[x][y] == 16 or MAP1[x][y] == 17 or 2<=MAP[x][y]<=7):
+ if 2 <= MAP[x][y] <= 7:
+ if MAP[x][y] == 1:
+ if MAP1[x][y] != 20:
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ else:
+ return 0
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ if MAP1[x][y] == 17 and 1<=MAP[x][y]<=7:
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ return 1
+ elif old_x == x and abs(y - old_y) == 1 and (MAP[x][y] == 0 or MAP[x][y] == 17 or MAP[x][y] == 15 or MAP[x][y] == 16 or MAP1[x][y] == 17 or 2<=MAP[x][y]<=7):
+ if 2 <= MAP[x][y] <= 7:
+ if MAP[x][y] == 1:
+ if MAP1[x][y] != 20:
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ else:
+ return 0
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ if MAP1[x][y] == 17 and 1<=MAP[x][y]<=7:
+ ID[MAP[x][y]] = 0
+ l_animals -= 1
+ return 1
+ return 1
+ else :
+ return 0
+
+#TODO:Judge who win
+def left_win(x,y,MAP,MAP1):
+ global r_animals
+ if r_animals == 0:
+ return 1
+ if MAP1[x][y] == 18 and 1<=MAP[x][y]<=7:
+ return 1
+ isWin = 0
+ for i in range(8,15):
+ if ID[i] == 1:
+ isWin = left_Wall(i,MAP,MAP1)
+ if isWin == 0:
+ return 0
+ if isWin == 1:
+ return 1
+ return 0
+
+def left_move(old_x,old_y,x,y,id,MAP,MAP1):
+ if id == 8:
+ if MAP[x][y] == 18:
+ return 0
+ if abs(x - old_x) == 1 and old_y == y and (MAP[x][y] == 0 or MAP[x][y] == 20 or MAP[x][y] == 17 or MAP[x][y] == 15 or MAP[x][y] == 16 or MAP[x][y] == 7 or MAP1[x][y] == 17):
+ if MAP[x][y] == 7:
+ if MAP1[old_x][old_y] != 20:
+ return 1
+ else:
+ return 0
+ if MAP[x][y] == 1:
+ return 1
+ if MAP1[x][y] == 17 and 1<=MAP[x][y]<=7:
+ return 1
+ return 1
+ elif old_x == x and abs(y - old_y) == 1 and (MAP[x][y] == 0 or MAP[x][y] == 20 or MAP[x][y] == 17 or MAP[x][y] == 15 or MAP[x][y] == 16 or MAP[x][y] == 7 or MAP1[x][y] == 17):
+ if MAP[x][y] == 7:
+ if MAP1[old_x][old_y] != 20:
+ return 1
+ else:
+ return 0
+ if MAP[x][y] == 1:
+ return 1
+ if MAP1[x][y] == 17 and 1 <= MAP[x][y] <= 7:
+ return 1
+ return 1
+ else :
+ return 0
+ elif id == 9:
+ if MAP[x][y] == 18 and MAP[x][y] != 0 and MAP[x][y] != 15 and MAP[x][y] != 17 and MAP[x][y] != 16 and MAP1[x][y] != 17 and (2