From 214ea8a70dc468a60bad9adae1b9ba164db4f06f Mon Sep 17 00:00:00 2001 From: huangjielun <2872405629@qq.com> Date: Sat, 3 Sep 2022 09:02:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=8D=95=E6=9C=BA=E7=89=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/init.py | 58 +++++++--- src/main.py | 75 ++++++------ src/main_an.py | 303 +++++++++++++++++++++++++++++++------------------ src/test.py | 6 + 4 files changed, 272 insertions(+), 170 deletions(-) create mode 100644 src/test.py diff --git a/src/init.py b/src/init.py index 4029131..0ea417c 100644 --- a/src/init.py +++ b/src/init.py @@ -12,7 +12,7 @@ CHESSSIZE_Y=100 #棋子大小 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_lion = pygame.Rect(282,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) @@ -29,8 +29,8 @@ r_mouse = pygame.Rect(793,16,CHESSSIZE_Y,CHESSSIZE_Y) def calc(x,y):#将像素转化为抽象坐标 - new_x = int(x / WIDTH * 9) - new_y = int(y / HEIGHT * 7) + new_x = int((x + 10) / WIDTH * 9) + new_y = int((y + 10) / HEIGHT * 7) return (new_x,new_y) def tran(x,y):#将抽象坐标转化为像素 new_x = int(x / 9 * WIDTH) @@ -172,19 +172,41 @@ def clac_MAP1(): return MAP def refresh(): - l_elephant = pygame.Rect(int(2 / 9 * WIDTH), int(0 / 7 * HEIGHT), CHESSSIZE_Y, CHESSSIZE_Y) - l_eagle = pygame.Rect(int(1 / 9 * WIDTH), int(1 / 7 * HEIGHT), CHESSSIZE_Y, CHESSSIZE_Y) - l_wolf = pygame.Rect(int(2 / 9 * WIDTH), int(2 / 7 * HEIGHT), CHESSSIZE_Y, CHESSSIZE_Y) - l_lion = pygame.Rect(int(2 / 9 * WIDTH), int(3 / 7 * HEIGHT), CHESSSIZE_Y, CHESSSIZE_Y) - l_leopard = pygame.Rect(int(2 / 9 * WIDTH), int(4 / 7 * HEIGHT), CHESSSIZE_Y, CHESSSIZE_Y) - l_mouse = pygame.Rect(int(2 / 9 * WIDTH), int(6 / 7 * HEIGHT), CHESSSIZE_Y, CHESSSIZE_Y) - l_fox = pygame.Rect(int(1 / 9 * WIDTH), int(5 / 7 * HEIGHT), CHESSSIZE_Y,CHESSSIZE_Y) + 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(282, 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(int(6 / 9 * WIDTH), int(6 / 7 * HEIGHT), CHESSSIZE_Y, CHESSSIZE_Y) - r_eagle = pygame.Rect(int(7 / 9 * WIDTH), int(5 / 7 * HEIGHT), CHESSSIZE_Y, CHESSSIZE_Y) - r_wolf = pygame.Rect(int(6 / 9 * WIDTH), int(4 / 7 * HEIGHT), CHESSSIZE_Y, CHESSSIZE_Y) - r_lion = pygame.Rect(int(6 / 9 * WIDTH), int(3 / 7 * HEIGHT), CHESSSIZE_Y, CHESSSIZE_Y) - r_leopard = pygame.Rect(int(6 / 9 * WIDTH), int(2 / 7 * HEIGHT), CHESSSIZE_Y, CHESSSIZE_Y) - r_fox = pygame.Rect(int(7 / 9 * WIDTH), int(1 / 7 * HEIGHT), CHESSSIZE_Y,CHESSSIZE_Y) - r_mouse = pygame.Rect(int(6 / 9 * WIDTH), int(0 / 7 * HEIGHT), 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 + 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 + +def getAnimalsname(): + animalsName=[0,l_mouse,l_eagle,l_fox,l_wolf,l_leopard,l_lion,l_elephant,r_mouse,r_eagle,r_fox,r_wolf,r_leopard,r_lion,r_elephant] + return animalsName + +def update(animalsName): + l_mouse = animalsName[1] + l_eagle = animalsName[2] + l_fox = animalsName[3] + l_wolf = animalsName[4] + l_leopard = animalsName[5] + l_lion = animalsName[6] + l_elephant = animalsName[7] + + r_mouse = animalsName[8] + r_eagle = animalsName[9] + r_fox = animalsName[10] + r_wolf = animalsName[11] + r_leopard = animalsName[12] + r_lion = animalsName[13] + r_elephant = animalsName[14] + 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 7cb8019..7c613e2 100644 --- a/src/main.py +++ b/src/main.py @@ -126,21 +126,22 @@ def draw_window(l_elephant,l_eagle,l_wolf,l_lion,l_leopard,l_mouse,l_fox,r_eleph pygame.display.update() #animals rect -l_elephant = pygame.Rect(int(2/9 * WIDTH),int(0 / 7 * HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -l_eagle = pygame.Rect(int(1 / 9 *WIDTH),int(1 / 7 * HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -l_wolf = pygame.Rect(int(2/9 * WIDTH),int(2/7 * HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -l_lion = pygame.Rect(int(2/9 * WIDTH),int(3/7 * HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -l_leopard = pygame.Rect(int(2/9 * WIDTH),int(4/7 * HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -l_mouse = pygame.Rect(int(2/9 * WIDTH),int(6/7 * HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -l_fox = pygame.Rect(int(1/9 * WIDTH),int(5/7 * HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) +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(282,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) -r_elephant = pygame.Rect(int(6/9*WIDTH),int(6/7*HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -r_eagle = pygame.Rect(int(7/9*WIDTH),int(5/7*HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -r_wolf = pygame.Rect(int(6/9*WIDTH),int(4/7*HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -r_lion = pygame.Rect(int(6/9*WIDTH),int(3/7*HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -r_leopard = pygame.Rect(int(6/9*WIDTH),int(2/7*HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -r_fox = pygame.Rect(int(7/9*WIDTH),int(1/7*HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -r_mouse = pygame.Rect(int(6/9*WIDTH),int(0/7*HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) ############################################# l_animals =r_animals = 7 def ismove(old_x,old_y,x,y,id,MAP,MAP1): @@ -1255,11 +1256,13 @@ def left_Wall(id,MAP,MAP1): old_x, old_y = init.calc(r_lion.x, r_lion.y) elif id == 14: old_x, old_y = init.calc(r_elephant.x, r_elephant.y) - for x in range(0,9): - for y in range(0,7): - if left_move(old_x,old_y,x,y,id,MAP,MAP1): - return 0 - return 1 + for x in range(0,9): + for y in range(0,7): + if left_move(old_x,old_y,x,y,id,MAP,MAP1): + return 0 + return 1 + else: + return 0 def right_win(x,y,MAP,MAP1): isWin = 0 global l_animals @@ -1274,7 +1277,6 @@ def right_win(x,y,MAP,MAP1): return 0 if isWin == 1: return 1 - #print(isWin) return 0 def right_move(old_x,old_y,x,y,id,MAP,MAP1): @@ -1573,11 +1575,13 @@ def right_Wall(id,MAP,MAP1): old_x, old_y = init.calc(l_lion.x, l_lion.y) elif id == 7: old_x, old_y = init.calc(l_elephant.x, l_elephant.y) - for x in range(0,9): - for y in range(0,7): - if right_move(old_x,old_y,x,y,id,MAP,MAP1): - return 0 - return 1 + for x in range(0,9): + for y in range(0,7): + if right_move(old_x,old_y,x,y,id,MAP,MAP1): + return 0 + return 1 + else: + return 0 def main(): global l_animals,r_animals BGM.play(-1) @@ -1607,8 +1611,8 @@ def main(): mouse_x , mouse_y = event.pos old_x = x old_y = y - x = int(mouse_x / WIDTH * 9) - y = int(mouse_y / HEIGHT * 7) + x = int((mouse_x+10) / WIDTH * 9) + y = int((mouse_y+10) / HEIGHT * 7) if status == 0: id = MAP[x][y] if 0 < id < 8 and turn == 0: @@ -1645,18 +1649,11 @@ def main(): status = 2 #TODO: Cirlce the elective animal else: - if left_win(x, y, MAP, MAP1): - run = False - break - if right_win(x, y, MAP, MAP1): - run = False - break if id == 1 and turn == 0 and status == 1: if MAP[x][y] == id: status = 1 else: if(ismove(old_x,old_y,x,y,id,MAP,MAP1)): - #print(MAP1[old_x][old_y]) l_mouse.x,l_mouse.y = init.tran(x,y) MAP[old_x][old_y] = MAP1[old_x][old_y] MAP[x][y] = id @@ -1820,13 +1817,11 @@ def main(): turn = 0 else : status = 0 - if left_win(x,y,MAP,MAP1): - run = False - if right_win(x,y,MAP,MAP1): - run = False - print(ID) + if left_win(x, y, MAP, MAP1): + run = False + if right_win(x, y, MAP, MAP1): + run = False draw_window(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_mouse,r_fox,id, x, y, status, MAP, MAP1,turn) - if left_win(x, y, MAP, MAP1): print_text(WIN, font, 500, 400, "Left Win!", RED) pygame.display.update() diff --git a/src/main_an.py b/src/main_an.py index 12ba0e4..4073155 100644 --- a/src/main_an.py +++ b/src/main_an.py @@ -3,7 +3,6 @@ import init import start_game import time import os -#import path.path WIDTH , HEIGHT = 1200 , 800 @@ -26,13 +25,16 @@ Mouse = pygame.mixer.Sound('audio/Mouse.mp3') #Start = pygame.mixer.Sound('audio/start.mp3') Tiger = pygame.mixer.Sound('audio/Tiger.mp3') Wolf = pygame.mixer.Sound('audio/Wolf.mp3') -Fox = pygame.mixer.Sound('audio/Fox..mp3') +Fox = pygame.mixer.Sound('audio/Fox.mp3') Eagle = pygame.mixer.Sound('audio/Eagle.mp3') pygame.mixer.music.set_volume(0.5) #################################################### -#animals img +#mark hint = pygame.transform.scale(pygame.image.load("images/hint.png"),(CHESSSIZE_X,CHESSSIZE_Y)) capture_hint = pygame.transform.scale(pygame.image.load("images/capture-hint.png"),(CHESSSIZE_X,CHESSSIZE_Y)) +left_turn = pygame.transform.scale(pygame.image.load("images/left_turn.png"),(CHESSSIZE_X,CHESSSIZE_Y)) +right_turn = pygame.transform.scale(pygame.image.load("images/right_turn.png"),(CHESSSIZE_X,CHESSSIZE_Y)) +#animals img #Left L_mouse = pygame.transform.scale(pygame.image.load('images/animals/left/1MouseLeft.png'),(CHESSSIZE_X,CHESSSIZE_Y)) L_eagle = pygame.transform.scale(pygame.image.load('images/animals/left/2EagleLeft.png'),(CHESSSIZE_X,CHESSSIZE_Y)) @@ -114,29 +116,32 @@ def draw_right_animals(r_elephant,r_eagle,r_wolf,r_lion,r_leopard,r_mouse,r_fox) def draw_window(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_mouse,r_fox,id, x, y, status, MAP, MAP1,turn): WIN.blit(SPACE,(0,0)) - + if turn == 0: + WIN.blit(left_turn,init.tran(0,3)) + elif turn == 1: + WIN.blit(right_turn,init.tran(8,3)) draw_left_animals(l_elephant,l_eagle,l_wolf,l_lion,l_leopard,l_mouse,l_fox) draw_right_animals(r_elephant,r_eagle,r_wolf,r_lion,r_leopard,r_mouse,r_fox) path(id, x, y, status, MAP, MAP1, turn) - #WIN.blit(L_fox,(fox.x,fox.y)) pygame.display.update() #animals rect -l_elephant = pygame.Rect(int(2/9 * WIDTH),int(0 / 7 * HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -l_eagle = pygame.Rect(int(1 / 9 *WIDTH),int(1 / 7 * HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -l_wolf = pygame.Rect(int(2/9 * WIDTH),int(2/7 * HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -l_lion = pygame.Rect(int(2/9 * WIDTH),int(3/7 * HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -l_leopard = pygame.Rect(int(2/9 * WIDTH),int(4/7 * HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -l_mouse = pygame.Rect(int(2/9 * WIDTH),int(6/7 * HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -l_fox = pygame.Rect(int(1/9 * WIDTH),int(5/7 * HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) +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) -r_elephant = pygame.Rect(int(6/9*WIDTH),int(6/7*HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -r_eagle = pygame.Rect(int(7/9*WIDTH),int(5/7*HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -r_wolf = pygame.Rect(int(6/9*WIDTH),int(4/7*HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -r_lion = pygame.Rect(int(6/9*WIDTH),int(3/7*HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -r_leopard = pygame.Rect(int(6/9*WIDTH),int(2/7*HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -r_fox = pygame.Rect(int(7/9*WIDTH),int(1/7*HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) -r_mouse = pygame.Rect(int(6/9*WIDTH),int(0/7*HEIGHT),CHESSSIZE_Y,CHESSSIZE_Y) ############################################# l_animals =r_animals = 7 def ismove(old_x,old_y,x,y,id,MAP,MAP1): @@ -145,7 +150,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): if id == 1: if MAP[x][y] == 16: 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] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP[x][y] == 14 or MAP1[x][y] == 15): + if abs(x - old_x) == 1 and old_y == y and (MAP[x][y] == 0 or MAP[x][y] == 20 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP[x][y] == 14 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14) or MAP[x][y] == 8): if MAP[x][y] == 14 and MAP1[old_x][old_y] == 20: return 0 if MAP[x][y] == 14 and MAP1[old_x][old_y] != 20: @@ -160,8 +165,10 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): ID[MAP[x][y]] = 0 r_animals -= 1 return 1 + if MAP1[x][y] == 15 and not (8 <= MAP[x][y] <= 14): + return 0 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] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP[x][y] == 14 or MAP1[x][y] == 15): + elif old_x == x and abs(y - old_y) == 1 and (MAP[x][y] == 0 or MAP[x][y] == 20 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP[x][y] == 14 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14) or MAP[x][y] == 8): if MAP[x][y] == 14 and MAP1[old_x][old_y] == 20: return 0 if MAP[x][y] == 14 and MAP1[old_x][old_y] != 20: @@ -182,10 +189,10 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): elif id == 2: if MAP[x][y] == 16 and MAP[x][y] != 0 and MAP[x][y] != 15 and MAP[x][y] != 17 and MAP[x][y] != 18 and MAP1[x][y] != 15 and (9 < MAP[x][y] <= 14): return 0 - if x == old_x and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 8<=MAP[x][y]<=9): + if x == old_x and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14) or 8<=MAP[x][y]<=9): if y > old_y: for i in range(old_y+1,y): - if (MAP[x][i] != 0 and MAP[x][i] != 20 and MAP[x][i] != 15 and MAP[x][i] != 17 and MAP[x][i] != 16 and MAP[x][i] != 18): + if (MAP[x][i] != 0 and MAP[x][i] != 20 and MAP[x][i] != 15 and MAP[x][i] != 16 and MAP[x][i] != 18): return 0 if 8<=MAP[x][y]<=9: if MAP[x][y] == 8: @@ -205,7 +212,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): return 1 else: for i in range(y+1,old_y): - if (MAP[x][i] != 0 and MAP[x][i] != 20 and MAP[x][i] != 15 and MAP[x][i] != 17 and MAP[x][i] != 16 and MAP[x][i] != 18 ): + if (MAP[x][i] != 0 and MAP[x][i] != 20 and MAP[x][i] != 15 and MAP[x][i] != 16 and MAP[x][i] != 18 ): return 0 if 8<=MAP[x][y]<=9: if MAP[x][y] == 8: @@ -223,10 +230,10 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): r_animals -= 1 return 1 return 1 - elif y == old_y and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 8<=MAP[x][y]<=9): + elif y == old_y and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14) or 8<=MAP[x][y]<=9): if x > old_x: for i in range(old_x+1,x): - if (MAP[i][y] != 0 and MAP[i][y] != 20 and MAP[i][y] != 15 and MAP[i][y] != 17 and MAP[i][y] != 16 and MAP[i][y] != 18): + if (MAP[i][y] != 0 and MAP[i][y] != 20 and MAP[i][y] != 15 and MAP[i][y] != 16 and MAP[i][y] != 18): return 0 if 8<=MAP[x][y]<=9: if MAP[x][y] == 8: @@ -246,7 +253,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): return 1 else : for i in range(x+1,old_x): - if (MAP[i][y] != 0 and MAP[i][y] != 20 and MAP[i][y] != 15 and MAP[i][y] != 17 and MAP[i][y] != 16 and MAP[i][y] != 18): + if (MAP[i][y] != 0 and MAP[i][y] != 20 and MAP[i][y] != 15 and MAP[i][y] != 16 and MAP[i][y] != 18): return 0 if 8<=MAP[x][y]<=9: if MAP[x][y] == 8: @@ -267,7 +274,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): else : return 0 elif id == 3: - if abs(x - old_x) <= 1 and abs(y - old_y) <= 1 and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 8<=MAP[x][y]<=10): + if abs(x - old_x) <= 1 and abs(y - old_y) <= 1 and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14) or 8<=MAP[x][y]<=10): if 8 <= MAP[x][y] <= 10: if MAP[x][y] == 8: if MAP1[x][y] != 20: @@ -290,7 +297,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): 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] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 8<=MAP[x][y]<=11): + if abs(x - old_x) == 1 and old_y == y and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14) or 8<=MAP[x][y]<=11): if 8 <= MAP[x][y] <= 11: if MAP[x][y] == 8: if MAP1[x][y] != 20: @@ -307,7 +314,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): r_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] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 8<=MAP[x][y]<=11): + elif old_x == x and abs(y - old_y) == 1 and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14) or 8<=MAP[x][y]<=11): if 8 <= MAP[x][y] <= 11: if MAP[x][y] == 8: if MAP1[x][y] != 20: @@ -331,7 +338,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): 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] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 8<=MAP[x][y]<=12): + if abs(x - old_x) ==1 and old_y == y and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14) or 8<=MAP[x][y]<=12): if 8 <= MAP[x][y] <= 12: if MAP[x][y] == 8: if MAP1[x][y] != 20: @@ -348,7 +355,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): r_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] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 8<=MAP[x][y]<=12): + elif old_x == x and abs(y - old_y) == 1 and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14) or 8<=MAP[x][y]<=12): if 8 <= MAP[x][y] <= 12 : if MAP[x][y] == 8: if MAP1[x][y] != 20: @@ -372,7 +379,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): 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] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 8<=MAP[x][y]<=13): + if abs(x - old_x) == 1 and old_y == y and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14) or 8<=MAP[x][y]<=13): if 8 <= MAP[x][y] <= 13: if MAP[x][y] == 8: if MAP1[x][y] != 20: @@ -389,7 +396,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): r_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] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 8<=MAP[x][y]<=13): + elif old_x == x and abs(y - old_y) == 1 and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14) or 8<=MAP[x][y]<=13): if 8 <= MAP[x][y] <= 13: if MAP[x][y] == 8: if MAP1[x][y] != 20: @@ -406,7 +413,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): r_animals -= 1 return 1 return 1 - elif old_x == x and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 8<=MAP[x][y]<=13): + elif old_x == x and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14) or 8<=MAP[x][y]<=13): if y > old_y: for i in range(old_y+1,y): if MAP[x][i] != 20 and MAP[x][i] != 1 : @@ -447,7 +454,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): r_animals -= 1 return 1 return 1 - elif old_y == y and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 8<=MAP[x][y]<=13): + elif old_y == y and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14) or 8<=MAP[x][y]<=13): if x > old_x: for i in range(old_x+1,x): if MAP[i][y] != 20 and MAP[i][y] != 1 : @@ -495,7 +502,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): 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] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 9<=MAP[x][y]<=14): + if abs(x - old_x) == 1 and old_y == y and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14) or 9<=MAP[x][y]<=14): if 9 <= MAP[x][y] <= 14: if MAP[x][y] == 8: if MAP1[x][y] != 20: @@ -512,7 +519,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): r_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] == 15 or MAP[x][y] == 17 and MAP[x][y] == 18 or MAP1[x][y] == 15 or 9<=MAP[x][y]<=14): + elif old_x == x and abs(y - old_y) == 1 and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14) or 9<=MAP[x][y]<=14): if 9 <= MAP[x][y] <= 14: if MAP[x][y] == 8: if MAP1[x][y] != 20: @@ -534,7 +541,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): elif 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 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 and 1<=MAP[x][y]<=7) or MAP[x][y] == 1): if MAP[x][y] == 7: if MAP1[old_x][old_y] != 20: ID[7] = 0 @@ -551,7 +558,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): 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] == 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): + 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 and 1<=MAP[x][y]<=7) or MAP[x][y] == 1): if MAP[x][y] == 7: if MAP1[old_x][old_y] != 20: ID[7] = 0 @@ -573,10 +580,10 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): 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 old_y: for i in range(old_y + 1, y): - if (MAP[x][i] != 0 and MAP[x][i] != 20 and MAP[x][i] != 17 and MAP[i][y] != 15 and MAP[x][i] != 18): + if (MAP[x][i] != 0 and MAP[x][i] != 20 and MAP[x][i] != 17 and MAP[x][i] != 18): return 0 if 1 <= MAP[x][y] <= 2: if MAP[x][y] == 1: @@ -596,7 +603,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): return 1 else: for i in range(y + 1, old_y): - if (MAP[x][i] != 0 and MAP[x][i] != 20 and MAP[x][i] != 17 and MAP[i][y] != 15 and MAP[x][i] != 18): + if (MAP[x][i] != 0 and MAP[x][i] != 20 and MAP[x][i] != 17 and MAP[x][i] != 18): return 0 if 1 <= MAP[x][y] <= 2: if MAP[x][y] == 1: @@ -614,10 +621,10 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): l_animals -= 1 return 1 return 1 - elif y == old_y and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 16 or MAP1[x][y] == 17 or 1<=MAP[x][y]<=2): + elif y == old_y and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 16 or (MAP1[x][y] == 17 and 1<=MAP[x][y]<=7) or 1<=MAP[x][y]<=2): if x > old_x: for i in range(old_x + 1, x): - if (MAP[i][y] != 0 and MAP[i][y] != 20 and MAP[i][y] != 17 and MAP[i][y] != 15 and MAP[i][y] != 18): + if (MAP[i][y] != 0 and MAP[i][y] != 20 and MAP[i][y] != 17 and MAP[i][y] != 18): return 0 if 1 <= MAP[x][y] <= 2: if MAP[x][y] == 1: @@ -637,7 +644,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): return 1 else: for i in range(x + 1, old_x): - if (MAP[i][y] != 0 and MAP[i][y] != 20 and MAP[i][y] != 17 and MAP[i][y] != 15 and MAP[i][y] != 18): + if (MAP[i][y] != 0 and MAP[i][y] != 20 and MAP[i][y] != 17 and MAP[i][y] != 18): return 0 if 1 <= MAP[x][y] <= 2: if MAP[x][y] == 1: @@ -658,7 +665,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): else: return 0 elif id == 10: - if abs(x - old_x) <= 1 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]<=3): + if abs(x - old_x) <= 1 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 and 1<=MAP[x][y]<=7) or 1<=MAP[x][y]<=3): if 1 <= MAP[x][y] <= 3: if MAP[x][y] == 1: if MAP1[x][y] != 20: @@ -681,7 +688,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): 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]<=4): + 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 and 1<=MAP[x][y]<=7) or 1<=MAP[x][y]<=4): if 1 <= MAP[x][y] <= 4: if MAP[x][y] == 1: if MAP1[x][y] != 20: @@ -698,7 +705,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): 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]<=4): + 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 and 1<=MAP[x][y]<=7) or 1<=MAP[x][y]<=4): if 1 <= MAP[x][y] <= 4: if MAP[x][y] == 1: if MAP1[x][y] != 20: @@ -722,7 +729,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): 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]<=5): + 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 and 1<=MAP[x][y]<=7) or 1<=MAP[x][y]<=5): if 1 <= MAP[x][y] <= 5: if MAP[x][y] == 1: if MAP1[x][y] != 20: @@ -739,7 +746,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): 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]<=5): + 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 and 1<=MAP[x][y]<=7) or 1<=MAP[x][y]<=5): if 1 <= MAP[x][y] <= 5: if MAP[x][y] == 1: if MAP1[x][y] != 20: @@ -763,7 +770,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): 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 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 and 1<=MAP[x][y]<=7) or 1<=MAP[x][y]<=6): if 1 <= MAP[x][y] <= 6: if MAP[x][y] == 1: if MAP1[x][y] != 20: @@ -780,7 +787,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): 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): + 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 and 1<=MAP[x][y]<=7) or 1<=MAP[x][y]<=6): if 1 <= MAP[x][y] <= 6: if MAP[x][y] == 1: if MAP1[x][y] != 20: @@ -797,7 +804,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): 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): + 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 and 1<=MAP[x][y]<=7) 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 : @@ -838,7 +845,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): 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): + 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 and 1<=MAP[x][y]<=7) 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 : @@ -886,7 +893,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): 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 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 and 1<=MAP[x][y]<=7) or 2<=MAP[x][y]<=7): if 2 <= MAP[x][y] <= 7: if MAP[x][y] == 1: if MAP1[x][y] != 20: @@ -903,7 +910,7 @@ def ismove(old_x,old_y,x,y,id,MAP,MAP1): 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): + 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 and 1<=MAP[x][y]<=7) or 2<=MAP[x][y]<=7): if 2 <= MAP[x][y] <= 7: if MAP[x][y] == 1: if MAP1[x][y] != 20: @@ -958,7 +965,7 @@ 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 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 and 1<=MAP[x][y]<=7) or MAP[x][y] == 1): if MAP[x][y] == 7: if MAP1[old_x][old_y] != 20: return 1 @@ -969,7 +976,7 @@ def left_move(old_x,old_y,x,y,id,MAP,MAP1): 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): + 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 and 1<=MAP[x][y]<=7) or MAP[x][y] == 1): if MAP[x][y] == 7: if MAP1[old_x][old_y] != 20: return 1 @@ -985,10 +992,10 @@ def left_move(old_x,old_y,x,y,id,MAP,MAP1): 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 old_y: for i in range(old_y + 1, y): - if (MAP[x][i] != 0 and MAP[x][i] != 20 and MAP[x][i] != 17 and MAP[i][y] != 15 and MAP[x][i] != 18): + if (MAP[x][i] != 0 and MAP[x][i] != 20 and MAP[x][i] != 17 and MAP[x][i] != 18): return 0 if 1 <= MAP[x][y] <= 2: if MAP[x][y] == 1: @@ -1002,7 +1009,7 @@ def left_move(old_x,old_y,x,y,id,MAP,MAP1): return 1 else: for i in range(y + 1, old_y): - if (MAP[x][i] != 0 and MAP[x][i] != 20 and MAP[x][i] != 17 and MAP[i][y] != 15 and MAP[x][i] != 18): + if (MAP[x][i] != 0 and MAP[x][i] != 20 and MAP[x][i] != 17 and MAP[x][i] != 18): return 0 if 1 <= MAP[x][y] <= 2: if MAP[x][y] == 1: @@ -1014,10 +1021,10 @@ def left_move(old_x,old_y,x,y,id,MAP,MAP1): if MAP1[x][y] == 17 and 1<=MAP[x][y]<=7: return 1 return 1 - elif y == old_y and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 16 or MAP1[x][y] == 17 or 1<=MAP[x][y]<=2): + elif y == old_y and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 16 or (MAP1[x][y] == 17 and 1<=MAP[x][y]<=7) or 1<=MAP[x][y]<=2): if x > old_x: for i in range(old_x + 1, x): - if (MAP[i][y] != 0 and MAP[i][y] != 20 and MAP[i][y] != 17 and MAP[i][y] != 15 and MAP[i][y] != 18): + if (MAP[i][y] != 0 and MAP[i][y] != 20 and MAP[i][y] != 17 and MAP[i][y] != 18): return 0 if 1 <= MAP[x][y] <= 2: if MAP[x][y] == 1: @@ -1031,7 +1038,7 @@ def left_move(old_x,old_y,x,y,id,MAP,MAP1): return 1 else: for i in range(x + 1, old_x): - if (MAP[i][y] != 0 and MAP[i][y] != 20 and MAP[i][y] != 17 and MAP[i][y] != 15 and MAP[i][y] != 18): + if (MAP[i][y] != 0 and MAP[i][y] != 20 and MAP[i][y] != 17 and MAP[i][y] != 18): return 0 if 1 <= MAP[x][y] <= 2: if MAP[x][y] == 1: @@ -1046,7 +1053,7 @@ def left_move(old_x,old_y,x,y,id,MAP,MAP1): else: return 0 elif id == 10: - if abs(x - old_x) <= 1 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]<=3): + if abs(x - old_x) <= 1 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 and 1<=MAP[x][y]<=7) or 1<=MAP[x][y]<=3): if 1 <= MAP[x][y] <= 3: if MAP[x][y] == 1: if MAP1[x][y] != 20: @@ -1063,7 +1070,7 @@ def left_move(old_x,old_y,x,y,id,MAP,MAP1): 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]<=4): + 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 and 1<=MAP[x][y]<=7) or 1<=MAP[x][y]<=4): if 1 <= MAP[x][y] <= 4: if MAP[x][y] == 1: if MAP1[x][y] != 20: @@ -1074,7 +1081,7 @@ def left_move(old_x,old_y,x,y,id,MAP,MAP1): 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] == 17 or MAP[x][y] == 15 or MAP[x][y] == 16 or MAP1[x][y] == 17 or 1<=MAP[x][y]<=4): + 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 and 1<=MAP[x][y]<=7) or 1<=MAP[x][y]<=4): if 1 <= MAP[x][y] <= 4: if MAP[x][y] == 1: if MAP1[x][y] != 20: @@ -1092,7 +1099,7 @@ def left_move(old_x,old_y,x,y,id,MAP,MAP1): 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]<=5): + 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 and 1<=MAP[x][y]<=7) or 1<=MAP[x][y]<=5): if 1 <= MAP[x][y] <= 5: if MAP[x][y] == 1: if MAP1[x][y] != 20: @@ -1103,7 +1110,7 @@ def left_move(old_x,old_y,x,y,id,MAP,MAP1): 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] == 17 or MAP[x][y] == 15 or MAP[x][y] == 16 or MAP1[x][y] == 17 or 1<=MAP[x][y]<=5): + 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 and 1<=MAP[x][y]<=7) or 1<=MAP[x][y]<=5): if 1 <= MAP[x][y] <= 5: if MAP[x][y] == 1: if MAP1[x][y] != 20: @@ -1121,7 +1128,7 @@ def left_move(old_x,old_y,x,y,id,MAP,MAP1): 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 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 and 1<=MAP[x][y]<=7) or 1<=MAP[x][y]<=6): if 1 <= MAP[x][y] <= 6: if MAP[x][y] == 1: if MAP1[x][y] != 20: @@ -1132,7 +1139,7 @@ def left_move(old_x,old_y,x,y,id,MAP,MAP1): 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] == 17 or MAP[x][y] == 15 or MAP[x][y] == 16 or MAP1[x][y] == 17 or 1<=MAP[x][y]<=6): + 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 and 1<=MAP[x][y]<=7) or 1<=MAP[x][y]<=6): if 1 <= MAP[x][y] <= 6: if MAP[x][y] == 1: if MAP1[x][y] != 20: @@ -1143,7 +1150,7 @@ def left_move(old_x,old_y,x,y,id,MAP,MAP1): if MAP1[x][y] == 17 and 1<=MAP[x][y]<=7: 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): + 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 and 1<=MAP[x][y]<=7) 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 : @@ -1172,7 +1179,7 @@ def left_move(old_x,old_y,x,y,id,MAP,MAP1): if MAP1[x][y] == 17 and 1<=MAP[x][y]<=7: 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): + 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 and 1<=MAP[x][y]<=7) 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 : @@ -1208,7 +1215,7 @@ def left_move(old_x,old_y,x,y,id,MAP,MAP1): 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 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 and 1<=MAP[x][y]<=7) or 2<=MAP[x][y]<=7): if 2 <= MAP[x][y] <= 7: if MAP[x][y] == 1: if MAP1[x][y] != 20: @@ -1219,7 +1226,7 @@ def left_move(old_x,old_y,x,y,id,MAP,MAP1): 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] == 17 or MAP[x][y] == 15 or MAP[x][y] == 16 or MAP1[x][y] == 17 or 2<=MAP[x][y]<=7): + 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 and 1<=MAP[x][y]<=7) or 2<=MAP[x][y]<=7): if 2 <= MAP[x][y] <= 7: if MAP[x][y] == 1: if MAP1[x][y] != 20: @@ -1249,11 +1256,13 @@ def left_Wall(id,MAP,MAP1): old_x, old_y = init.calc(r_lion.x, r_lion.y) elif id == 14: old_x, old_y = init.calc(r_elephant.x, r_elephant.y) - for x in range(0,9): - for y in range(0,6): - if left_move(old_x,old_y,x,y,id,MAP,MAP1): - return 0 - return 1 + for x in range(0,9): + for y in range(0,7): + if left_move(old_x,old_y,x,y,id,MAP,MAP1): + return 0 + return 1 + else: + return 0 def right_win(x,y,MAP,MAP1): isWin = 0 global l_animals @@ -1268,6 +1277,7 @@ def right_win(x,y,MAP,MAP1): return 0 if isWin == 1: return 1 + #print(isWin) return 0 def right_move(old_x,old_y,x,y,id,MAP,MAP1): @@ -1275,7 +1285,7 @@ def right_move(old_x,old_y,x,y,id,MAP,MAP1): if MAP[x][y] == 16: 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] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP[x][y] == 14 or MAP1[x][y] == 15): + MAP[x][y] == 0 or MAP[x][y] == 20 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP[x][y] == 14 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14) or MAP[x][y] == 8): if MAP[x][y] == 14 and MAP1[old_x][old_y] == 20: return 0 if MAP[x][y] == 14 and MAP1[old_x][old_y] != 20: @@ -1286,7 +1296,7 @@ def right_move(old_x,old_y,x,y,id,MAP,MAP1): 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] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP[x][y] == 14 or MAP1[x][y] == 15): + MAP[x][y] == 0 or MAP[x][y] == 20 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP[x][y] == 14 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14)or MAP[x][y] == 8): if MAP[x][y] == 14 and MAP1[old_x][old_y] == 20: return 0 if MAP[x][y] == 14 and MAP1[old_x][old_y] != 20: @@ -1302,10 +1312,10 @@ def right_move(old_x,old_y,x,y,id,MAP,MAP1): if MAP[x][y] == 16 and MAP[x][y] != 0 and MAP[x][y] != 15 and MAP[x][y] != 17 and MAP[x][y] != 18 and MAP1[x][y] != 15 and (9 < MAP[x][y] <= 14): return 0 if x == old_x and ( - MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 8 <=MAP[x][y] <= 9): + MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14)or 8 <=MAP[x][y] <= 9): if y > old_y: for i in range(old_y + 1, y): - if (MAP[x][i] != 0 and MAP[x][i] != 20 and MAP[x][i] != 15 and MAP[x][i] != 17 and MAP[x][i] != 16 and MAP[x][i] != 18): + if (MAP[x][i] != 0 and MAP[x][i] != 20 and MAP[x][i] != 15 and MAP[x][i] != 16 and MAP[x][i] != 18): return 0 if 8 <= MAP[x][y] <= 9: if MAP[x][y] == 8: @@ -1319,7 +1329,7 @@ def right_move(old_x,old_y,x,y,id,MAP,MAP1): return 1 else: for i in range(y + 1, old_y): - if (MAP[x][i] != 0 and MAP[x][i] != 20 and MAP[x][i] != 15 and MAP[x][i] != 17 and MAP[x][i] != 16 and MAP[x][i] != 18): + if (MAP[x][i] != 0 and MAP[x][i] != 20 and MAP[x][i] != 15 and MAP[x][i] != 16 and MAP[x][i] != 18): return 0 if 8 <= MAP[x][y] <= 9: if MAP[x][y] == 8: @@ -1332,10 +1342,10 @@ def right_move(old_x,old_y,x,y,id,MAP,MAP1): return 1 return 1 elif y == old_y and ( - MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 8 <=MAP[x][y] <= 9): + MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14)or 8 <=MAP[x][y] <= 9): if x > old_x: for i in range(old_x + 1, x): - if (MAP[i][y] != 0 and MAP[i][y] != 20 and MAP[i][y] != 15 and MAP[i][y] != 17 and MAP[i][y] != 16 and MAP[i][y] != 18): + if (MAP[i][y] != 0 and MAP[i][y] != 20 and MAP[i][y] != 15 and MAP[i][y] != 16 and MAP[i][y] != 18): return 0 if 8 <= MAP[x][y] <= 9: if MAP[x][y] == 8: @@ -1349,7 +1359,7 @@ def right_move(old_x,old_y,x,y,id,MAP,MAP1): return 1 else: for i in range(x + 1, old_x): - if (MAP[i][y] != 0 and MAP[i][y] != 20 and MAP[i][y] != 15 and MAP[i][y] != 17 and MAP[i][y] != 16 and MAP[i][y] != 18): + if (MAP[i][y] != 0 and MAP[i][y] != 20 and MAP[i][y] != 15 and MAP[i][y] != 16 and MAP[i][y] != 18): return 0 if 8 <= MAP[x][y] <= 9: if MAP[x][y] == 8: @@ -1364,7 +1374,7 @@ def right_move(old_x,old_y,x,y,id,MAP,MAP1): else: return 0 elif id == 3: - if abs(x - old_x) <= 1 and abs(y - old_y) <= 1 and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 8 <=MAP[x][y] <= 10): + if abs(x - old_x) <= 1 and abs(y - old_y) <= 1 and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14)or 8 <=MAP[x][y] <= 10): if 8 <= MAP[x][y] <= 10: if MAP[x][y] == 8: if MAP1[x][y] != 20: @@ -1381,7 +1391,7 @@ def right_move(old_x,old_y,x,y,id,MAP,MAP1): 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] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 8 <=MAP[x][y] <= 11): + if abs(x - old_x) == 1 and old_y == y and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14)or 8 <=MAP[x][y] <= 11): if 8 <= MAP[x][y] <= 11: if MAP[x][y] == 8: if MAP1[x][y] != 20: @@ -1392,7 +1402,7 @@ def right_move(old_x,old_y,x,y,id,MAP,MAP1): if MAP1[x][y] == 15 and 8 <= MAP[x][y] <= 14: return 1 return 1 - elif old_x == x and abs(y - old_y) == 1 and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 8 <=MAP[x][y] <= 11): + elif old_x == x and abs(y - old_y) == 1 and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14)or 8 <=MAP[x][y] <= 11): if 8 <= MAP[x][y] <= 11: if MAP[x][y] == 8: if MAP1[x][y] != 20: @@ -1410,7 +1420,7 @@ def right_move(old_x,old_y,x,y,id,MAP,MAP1): 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] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 8 <=MAP[x][y] <= 12): + if abs(x - old_x) == 1 and old_y == y and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14)or 8 <=MAP[x][y] <= 12): if 8 <= MAP[x][y] <= 12: if MAP[x][y] == 8: if MAP1[x][y] != 20: @@ -1421,7 +1431,7 @@ def right_move(old_x,old_y,x,y,id,MAP,MAP1): if MAP1[x][y] == 15 and 8 <= MAP[x][y] <= 14: return 1 return 1 - elif old_x == x and abs(y - old_y) == 1 and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 8 <=MAP[x][y] <= 12): + elif old_x == x and abs(y - old_y) == 1 and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14)or 8 <=MAP[x][y] <= 12): if 8 <= MAP[x][y] <= 12: if MAP[x][y] == 8: if MAP1[x][y] != 20: @@ -1439,7 +1449,7 @@ def right_move(old_x,old_y,x,y,id,MAP,MAP1): 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] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 8 <=MAP[x][y] <= 13): + if abs(x - old_x) == 1 and old_y == y and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14)or 8 <=MAP[x][y] <= 13): if 8 <= MAP[x][y] <= 13: if MAP[x][y] == 8: if MAP1[x][y] != 20: @@ -1450,7 +1460,7 @@ def right_move(old_x,old_y,x,y,id,MAP,MAP1): if MAP1[x][y] == 15 and 8 <= MAP[x][y] <= 14: return 1 return 1 - elif old_x == x and abs(y - old_y) == 1 and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 8 <=MAP[x][y] <= 13): + elif old_x == x and abs(y - old_y) == 1 and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14)or 8 <=MAP[x][y] <= 13): if 8 <= MAP[x][y] <= 13: if MAP[x][y] == 8: if MAP1[x][y] != 20: @@ -1461,7 +1471,7 @@ def right_move(old_x,old_y,x,y,id,MAP,MAP1): if MAP1[x][y] == 15 and 8 <= MAP[x][y] <= 14: return 1 return 1 - elif old_x == x and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 8 <=MAP[x][y] <= 13): + elif old_x == x and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14)or 8 <=MAP[x][y] <= 13): if y > old_y: for i in range(old_y + 1, y): if MAP[x][i] != 20 and MAP[x][i] != 1: @@ -1490,7 +1500,7 @@ def right_move(old_x,old_y,x,y,id,MAP,MAP1): if MAP1[x][y] == 15 and 8 <= MAP[x][y] <= 14: return 1 return 1 - elif old_y == y and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 8 <=MAP[x][y] <= 13): + elif old_y == y and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14)or 8 <=MAP[x][y] <= 13): if x > old_x: for i in range(old_x + 1, x): if MAP[i][y] != 20 and MAP[i][y] != 1: @@ -1526,7 +1536,7 @@ def right_move(old_x,old_y,x,y,id,MAP,MAP1): 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] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or MAP1[x][y] == 15 or 9 <=MAP[x][y] <= 14): + if abs(x - old_x) == 1 and old_y == y and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14)or 9 <=MAP[x][y] <= 14): if 9 <= MAP[x][y] <= 14: if MAP[x][y] == 8: if MAP1[x][y] != 20: @@ -1537,7 +1547,7 @@ def right_move(old_x,old_y,x,y,id,MAP,MAP1): if MAP1[x][y] == 15 and 8 <= MAP[x][y] <= 14: return 1 return 1 - elif old_x == x and abs(y - old_y) == 1 and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 and MAP[x][y] == 18 or MAP1[x][y] == 15 or 9 <=MAP[x][y] <= 14): + elif old_x == x and abs(y - old_y) == 1 and (MAP[x][y] == 0 or MAP[x][y] == 15 or MAP[x][y] == 17 or MAP[x][y] == 18 or (MAP1[x][y] == 15 and 8<=MAP[x][y]<=14)or 9 <=MAP[x][y] <= 14): if 9 <= MAP[x][y] <= 14: if MAP[x][y] == 8: if MAP1[x][y] != 20: @@ -1566,11 +1576,33 @@ def right_Wall(id,MAP,MAP1): old_x, old_y = init.calc(l_lion.x, l_lion.y) elif id == 7: old_x, old_y = init.calc(l_elephant.x, l_elephant.y) - for x in range(0,9): - for y in range(0,6): - if right_move(old_x,old_y,x,y,id,MAP,MAP1): - return 0 - return 1 + for x in range(0,9): + for y in range(0,7): + if right_move(old_x,old_y,x,y,id,MAP,MAP1): + return 0 + return 1 + else: + return 0 + +def goBack(l_axis,r_axis,MAP,MAP1,turn,animalsName): + if turn: + id,old_x,old_y = l_axis.pop() + x, y = init.calc(animalsName[id].x,animalsName[id].y) + MAP[x][y] = MAP1[x][y] + MAP[old_x][old_y] = id + animalsName[id].x , animalsName[id].y = init.tran(old_x,old_y) + turn = 0 + else : + id, old_x, old_y = r_axis.pop() + x, y = init.calc(animalsName[id].x, animalsName[id].y) + MAP[x][y] = MAP1[x][y] + MAP[old_x][old_y] = id + animalsName[id].x, animalsName[id].y = init.tran(old_x, old_y) + turn = 1 + return l_axis,r_axis,MAP,MAP1,turn + +animalsName = init.getAnimalsname() +print(animalsName) def main(): global l_animals,r_animals BGM.play(-1) @@ -1578,12 +1610,22 @@ def main(): MAP1 = init.clac_MAP1() game_status = start_game.starting_screen() if not game_status: - return True + return False run = True + #print(animalsName[1].x) + l_axis=r_axis=[] clock = pygame.time.Clock() font = pygame.font.SysFont('kaiti',40) status = id = old_x = old_y = x = y = turn = 0 while run: + #print("left win:",left_win(x, y, MAP, MAP1)) + #print("right win:",right_win(x, y, MAP, MAP1)) + if left_win(x, y, MAP, MAP1): + run = False + break + if right_win(x, y, MAP, MAP1): + run = False + break clock.tick(FPS) for event in pygame.event.get(): if event.type == pygame.QUIT: @@ -1637,12 +1679,14 @@ def main(): status = 1 else: if(ismove(old_x,old_y,x,y,id,MAP,MAP1)): - print(MAP1[old_x][old_y]) + #print(MAP1[old_x][old_y]) l_mouse.x,l_mouse.y = init.tran(x,y) + animalsName[1]=l_mouse MAP[old_x][old_y] = MAP1[old_x][old_y] MAP[x][y] = id status = 0 turn = 1 + l_axis.append((id,old_x,old_y)) else: status = 0 elif id == 2 and turn == 0 and status == 1: @@ -1651,10 +1695,12 @@ def main(): else: if (ismove(old_x,old_y,x,y,id,MAP,MAP1)) : l_eagle.x , l_eagle.y = init.tran(x,y) + animalsName[2] = l_leopard MAP[old_x][old_y] = MAP1[old_x][old_y] MAP[x][y] = id status = 0 turn = 1 + l_axis.append((id, old_x, old_y)) else : status = 0 elif id == 3 and turn == 0 and status == 1: @@ -1663,10 +1709,12 @@ def main(): else: if (ismove(old_x,old_y,x,y,id,MAP,MAP1)) : l_fox.x , l_fox.y = init.tran(x,y) + animalsName[3] = l_fox MAP[old_x][old_y] = MAP1[old_x][old_y] MAP[x][y] = id status = 0 turn = 1 + l_axis.append((id, old_x, old_y)) else : status = 0 elif id == 4 and turn == 0 and status == 1: @@ -1675,10 +1723,12 @@ def main(): else: if (ismove(old_x,old_y,x,y,id,MAP,MAP1)) : l_wolf.x , l_wolf.y = init.tran(x,y) + animalsName[4] = l_wolf MAP[old_x][old_y] = MAP1[old_x][old_y] MAP[x][y] = id status = 0 turn = 1 + l_axis.append((id, old_x, old_y)) else : status = 0 elif id == 5 and turn == 0 and status == 1: @@ -1687,10 +1737,12 @@ def main(): else: if (ismove(old_x,old_y,x,y,id,MAP,MAP1)) : l_leopard.x , l_leopard.y = init.tran(x,y) + animalsName[5] = l_leopard MAP[old_x][old_y] = MAP1[old_x][old_y] MAP[x][y] = id status = 0 turn = 1 + l_axis.append((id, old_x, old_y)) else : status = 0 elif id == 6 and turn == 0 and status == 1: @@ -1699,10 +1751,12 @@ def main(): else: if (ismove(old_x,old_y,x,y,id,MAP,MAP1)) : l_lion.x , l_lion.y = init.tran(x,y) + animalsName[6] = l_lion MAP[old_x][old_y] = MAP1[old_x][old_y] MAP[x][y] = id status = 0 turn = 1 + l_axis.append((id, old_x, old_y)) else : status = 0 elif id == 7 and turn == 0 and status == 1: @@ -1711,10 +1765,12 @@ def main(): else: if (ismove(old_x,old_y,x,y,id,MAP,MAP1)) : l_elephant.x , l_elephant.y = init.tran(x,y) + animalsName[7] = l_elephant MAP[old_x][old_y] = MAP1[old_x][old_y] MAP[x][y] = id status = 0 turn = 1 + l_axis.append((id, old_x, old_y)) else : status = 0 elif id == 8 and turn == 1 and status == 2: @@ -1723,10 +1779,12 @@ def main(): else: if (ismove(old_x,old_y,x,y,id,MAP,MAP1)) : r_mouse.x , r_mouse.y = init.tran(x,y) + animalsName[8] = r_mouse MAP[old_x][old_y] = MAP1[old_x][old_y] MAP[x][y] = id status = 0 turn = 0 + r_axis.append((id, old_x, old_y)) else : status = 0 elif id == 9 and turn == 1 and status == 2: @@ -1735,10 +1793,12 @@ def main(): else: if (ismove(old_x,old_y,x,y,id,MAP,MAP1)) : r_eagle.x , r_eagle.y = init.tran(x,y) + animalsName[9] = r_eagle MAP[old_x][old_y] = MAP1[old_x][old_y] MAP[x][y] = id status = 0 turn = 0 + r_axis.append((id, old_x, old_y)) else : status = 0 elif id == 10 and turn == 1 and status == 2: @@ -1747,10 +1807,12 @@ def main(): else: if (ismove(old_x,old_y,x,y,id,MAP,MAP1)) : r_fox.x , r_fox.y = init.tran(x,y) + animalsName[10] = r_fox MAP[old_x][old_y] = MAP1[old_x][old_y] MAP[x][y] = id status = 0 turn = 0 + r_axis.append((id, old_x, old_y)) else : status = 0 elif id == 11 and turn == 1 and status == 2: @@ -1759,10 +1821,12 @@ def main(): else: if (ismove(old_x,old_y,x,y,id,MAP,MAP1)) : r_wolf.x , r_wolf.y = init.tran(x,y) + animalsName[11] = r_wolf MAP[old_x][old_y] = MAP1[old_x][old_y] MAP[x][y] = id status = 0 turn = 0 + r_axis.append((id, old_x, old_y)) else : status = 0 elif id == 12 and turn == 1 and status == 2: @@ -1771,10 +1835,12 @@ def main(): else: if (ismove(old_x,old_y,x,y,id,MAP,MAP1)) : r_leopard.x , r_leopard.y = init.tran(x,y) + animalsName[12] = r_leopard MAP[old_x][old_y] = MAP1[old_x][old_y] MAP[x][y] = id status = 0 turn = 0 + r_axis.append((id, old_x, old_y)) else : status = 0 elif id == 13 and turn == 1 and status == 2: @@ -1783,10 +1849,12 @@ def main(): else: if (ismove(old_x,old_y,x,y,id,MAP,MAP1)) : r_lion.x , r_lion.y = init.tran(x,y) + animalsName[13] = r_lion MAP[old_x][old_y] = MAP1[old_x][old_y] MAP[x][y] = id status = 0 turn = 0 + r_axis.append((id, old_x, old_y)) else : status = 0 elif id == 14 and turn == 1 and status == 2: @@ -1795,18 +1863,22 @@ def main(): else: if (ismove(old_x,old_y,x,y,id,MAP,MAP1)) : r_elephant.x , r_elephant.y = init.tran(x,y) + animalsName[14] = r_elephant MAP[old_x][old_y] = MAP1[old_x][old_y] MAP[x][y] = id status = 0 turn = 0 + r_axis.append((id, old_x, old_y)) else : status = 0 - if left_win(x,y,MAP,MAP1): - run = False - if right_win(x,y,MAP,MAP1): - run = False + if left_win(x, y, MAP, MAP1): + run = False + if right_win(x, y, MAP, MAP1): + run = False + 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 = init.update(animalsName) draw_window(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_mouse,r_fox,id, x, y, status, MAP, MAP1,turn) - + #print("left win:", left_win(x, y, MAP, MAP1)) + #print("right win:", right_win(x, y, MAP, MAP1)) if left_win(x, y, MAP, MAP1): print_text(WIN, font, 500, 400, "Left Win!", RED) pygame.display.update() @@ -1817,11 +1889,18 @@ def main(): #os.system("pause") return start_game.starting_screen() + if __name__ == "__main__": again = 1 while again == 1: 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=init.refresh() + #print(r_eagle) draw_window(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_mouse, r_fox,0,0,0,0,0,0,0) again = main() + l_animals = r_animals = 7 + ID = [1 for i in range(20)] + 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 = init.refresh() + animalsName = init.getAnimalsname() + print(animalsName) pygame.quit() diff --git a/src/test.py b/src/test.py new file mode 100644 index 0000000..98d5396 --- /dev/null +++ b/src/test.py @@ -0,0 +1,6 @@ +import init +for x in range(0,9): + for y in range(0,7): + new_x,new_y=init.tran(x,y) + new_x,new_y=init.calc(new_x,new_y) + print(x,y,new_x,new_y) \ No newline at end of file