From 18d27c63c3a4d1f4cc7881802050abeaea23bdbb Mon Sep 17 00:00:00 2001 From: Weranda Date: Tue, 13 Jun 2023 15:50:03 +0200 Subject: [PATCH] =?UTF-8?q?agent=20sam=20uka=C5=84cza=20plansze=20(predict?= =?UTF-8?q?ions=20do=20poprawy)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- __pycache__/agent.cpython-310.pyc | Bin 5695 -> 5561 bytes __pycache__/astar.cpython-310.pyc | Bin 1968 -> 2003 bytes __pycache__/bfs.cpython-310.pyc | Bin 3310 -> 3324 bytes __pycache__/mobs.cpython-310.pyc | Bin 1879 -> 2165 bytes __pycache__/nn.cpython-310.pyc | Bin 2642 -> 2642 bytes agent.py | 48 ++++-------------- astar.py | 9 ++-- bfs.py | 4 +- main.py | 78 ++++++++++++++++++++---------- mobs.py | 44 ++++------------- nn.py | 2 +- 11 files changed, 81 insertions(+), 104 deletions(-) diff --git a/__pycache__/agent.cpython-310.pyc b/__pycache__/agent.cpython-310.pyc index cb9891405111648ab8012fb6e7a27896b4ad9089..a04bc5b0d26ba8a722a0ec4a43abf40f7c04f1af 100644 GIT binary patch delta 1486 zcmZuxO>7fK6!xrl*Msd{Y{vmp6}O-yWyueJ4F!tYh7eR*8c`Cd#TA&vJGK`#UUznr zlnN2`)*hp&da5{7y+oCekfpZtP%a#()LUtNHw9=bQK5yzk9E zoOm#9hnAI1!S6!nTW`F&ZimEMzr*x}lv7!Mx{rL-E0S|0le?X&k9aw8Rohd{-%j1w zUrxar$Fl$r_Exk!u{Ixrm(8O9i_UmYq<p|GK87a4XH>_+BK8e(+EjWaHbGhreF?$>A2pv$3lH?H+nR`>i$bKE6g0L5% zitq-)afEFSdzAi2tP}Y5B!E-kIdOkSwS-=z(dB+8<~woqlz6gZ=-pRS=LKBBGN^nV zP30@~o9tG!JqQwxh(p;=#opWpmvcDH14t`^05R*IUsYCSnnAeAc*NgA+899JZ7tXK z`0g;kBN&khP$eVqd|jAn zu}(bIX5#tK57jG3b6*0qU;}M@>)3cj%5SbI0g`+2*@x#B=Xf0{>V~Lq#5I^orRTw(dcam#ke+vJu`oQk zW&@4CgK!Gr2m;;*j%}xOheXgl$ok9{6eDX#gEYQ~{tVnx>PqNb__LHR1m_ t%}_IMD3)U+BAAVtu+#Kg$^EikI{82ElAc})z2$(thuW&rLkLpQUI6n)A*%oY delta 1667 zcmZWp&2Jl35Z||7UOV>2b{!O&(w5dvyNMeLxua+i5)w#&Kq40|mXP4me*h#9Tv#D-L4w>kaN&T;%v&cU&OW`LX5Y-4nK$!$ z@0-yFMcqxM5(0i#58g4q&hP6kbM|+wq&c`Jly&pbMZq|~|HtF3)`_!eb}4yZsN~HQ zV&T59md9Bb67X->zlM0d^RAd=8T)T02=<>6LJ=jy=zJ)B&V~#*ls(I-fr{avpCFBJ zAi!v_rc4x)_!GnFy@;TS36^CE!~|21hb{#_D#N%K{HuJXMlOOc)R&j9;Fic`4y90E zbsfhxt;&kyuC9AL4h*2?fWZivjvhmi?A6T;v+7&VpzJ+@potpeLkwnOUyYq3>+=Mp zgdu_p1dkEWu9FTsdF>;XD$(k52u2#>!T0ftcgahrY=GVJAw}Aov=E!EEZlx+W+{|s zD{s68rw;-;*-@2v_J+u_59M`h$2%F4490@l#OrOWw;Gq-?Sm~#)OLJV<{kxdqer{P1`?nK+JGuKs@2q4rRxx`H-Q1auh0H z*Bd@BcqsYq24qP^O$gN$*Z19~Aw?|W9hDn{m}GBuPoudP{F*GYxz5eh`;6s-@APj= zhBn_#R3WFwBsruE4~hN8z?tNO2mPfRS5a41&1$n+w|I?^1-9daQp?(om_JS)Iagi? zE~g7|m>_pDj0CTyOZn4`hbK_Chtpd?$cZ_Y6XitkW%~JSg30mhKUwT14UNfS@K@To zPHj2p@=vWc-A!b1kIyAE`61ZL?2eFe)Xh62owf@Tb<3|btg7QTehG@%pW0c8j+1`dz-RY?nJcS0ob7cjJ-UB=M{dse4?Z5a@E_6SOJ)E7 diff --git a/__pycache__/astar.cpython-310.pyc b/__pycache__/astar.cpython-310.pyc index f96716a4282e3e6f09a0dcd4715b1414bd133d22..711082795dd77357698a5dfa8ba3c46d4befb145 100644 GIT binary patch delta 612 zcmYLGOKTKC5bo;fdF&*UtcwsQ1QiiU1ceA*#7jsn9+W`vBFZxCPWF*uXVTLFjWw*0 zOTc6Qft{l_#XsTQ;9;)*0xzDenni7>uE$qZ{dLvn_3!IZ9z~&`vzJ{Ce}9R70(|=V z3w{6`*l*5$jLwnJ5#c*t6Bc?hGyNhlV}0Eos#~f@fIU~c^O%fHk}{wxkUh8uN}hN3 zN|We^|H}rF;J=5vdL;WKDWJaiB)ByhGe{vtp% zggH9LvZmlfR4zJ0m_WseV$tFBT9WUh(jTcHL{-CUSp`*xnsqJ!1a=Tkq<%*EE9fGi ztR12vkBGox6+1N?h&NBFu%#1WID}Zlg0y5^t)M+~d(SgmMGwPRoCtkMEnN(sie;?T zOeSP98v=dCmh9Q)X3GzpzCcy(8qZ$2+w(Qe^J&~fhBV2{r1MC6lc7*f=tA%h zWGP7V4-^+}+!ox6F0ys&#+Bg8bCZP^?swj=?_2Lf&r3beW%NG(eH)EGdOrdDPru;@ zz<%}BcyeBtk%7h=4h)S0=8Js=l&mDd>K4J{Rg|6v%Ou{od>1D1<(FBqv*BBfo2g`3 zjIyAZsvEk(BxsDIao+SMaWM+x`FyloEskQPuIZ3$3w)t$Z8>4Eh(}{py%hHztdnO* zKi7-e{5sqR7X+O3_wpi8+y5tpqN>IE`7cVFuu>H40#HPNFy=K~kg!rBM36vfA|Siq zgcKp$LZLFsH&E1Y$V9}YUt>tcyR2JQ>$*v|@X13I`LM97?{f2% z)5vKYWG9WSMYhVPs!xYDR%@o2(ln_x4K3GhOL3UyMXqj>*Y`SVr6#Rt#3T*o>J9~} n%$(iaB1J%-Xtg!+t6=l$kNKjnXLMcL{+rdIwFh^r_tv9-sM3;- diff --git a/__pycache__/bfs.cpython-310.pyc b/__pycache__/bfs.cpython-310.pyc index b4cdcb1208ffb8f86585c5a741ea1a88b90f4c3d..6060d9a3a252c54b943c03b5d01687d39f86d465 100644 GIT binary patch delta 626 zcmYjOO=}ZD7@nD(nVoDlNjGX0HzIHYOo8q)WT3>vVa@axQi`C9&Kk35(rS4M^e`k`{8E=S&P(!i|%9h7Twu z9g+yUD-KBigO2g_hT^I2Y{y#Iwuj=; zlW030aviP1Pv?hwib|^JNqEoS$#HAY6VMWMTKjxgv?!f~mvWIdVPF2LHLSYlXoaRG zUR7C-HaFY4_Z)7h6Y$OLlrH~ofeUKNJ7-VsV8uK+g=TN?aFo7@*f4mRX zi%72`Oj>A)Q9q|)uQ*5Ra8P_OeFnuELgqb-4BOBx1Pn5&zmBX9-~B4Q_7~`J`0CI8 E15o0Oz5oCK delta 558 zcmY*UK}#D!6rQ)UJ3HCUMj;7td(cvBW7Lb-uSAs{A#It@L|;vrbP zDZD?h3qtW!N)PR^v|tZC#iKtWm-g6$^Rg;93*Ub4ec!zI&Hr!^=JtcYW9EGR^Re}J z^h@rob@b1aUDg84+R(Pzyk*@oyJrLIIz1LyT@kwpi@0X7yz||;5-YMbk2Bg%0N5^z z98-A-d*3yG-`o<~inCgfs)dG*rJ80R@0ogsMS*LYc89Aq?ZyEDFRm^VOUG%q#mr|P z^N_7Gvpz?IR@ml9B(>Dm2T=RNC6I*M(mSA{)iP!`|hSK6` Lwhkryovq#g4_JG- diff --git a/__pycache__/mobs.cpython-310.pyc b/__pycache__/mobs.cpython-310.pyc index efa87826307aadee19f6865d2943afbdc3e4debe..fe46d7225ae23a877efa719cd20008f160bf4be0 100644 GIT binary patch delta 934 zcmd5)&ubGw7~Pru>1KDcO*ba3F;ZJ?)UoN{N*6%S@S)KXqXWy`TvFOE8N8qM24EQ(O$`Y><*D(w&SM?S|cU@H&ip;yrz{nrOXt*pGWNB~eE0eurn^uG~Y&1I#48 zEbz=@sVF z)6dc~L`|t|sc0MT%ng7OiWNSE69(XyekWx?o!HT!6AohjHW>1q5qF>`u4!B1NNJXD z0GUgmf)rC(!@?JJwN$xvUXsR@>Z-7?f{U97RqG_<0c`1#AgH49 z2|7eKc8RAdUxBqt$8Jd3%EpW;Rh@XA0})!5`gA`(Z-4uLx?k?OskNxj< z-IruxYT!Lpb|4OkBIXok5o zNs~~48gu1WZ7quuQTQ80`A4gpA_mp6DPPA*&kY=iBNBj1hS3C|Jac2khInK*gGN2* zh!Y-){kB{&U&)JDZD;)PBFgZGXit;?AG7QCG*!-6(e=IJ6 z=q(DBMa;^kaN#vFK7>J|xhK-t^$^M&o=GgdK#o1!9eEUAJq-Qs!R{J`i8fw+oW$WW KGkKQJJ-!AcMU3bG diff --git a/__pycache__/nn.cpython-310.pyc b/__pycache__/nn.cpython-310.pyc index c334d291ded0f617adca5ea2bff3f4586bca481e..ae981ea867e1e5c4f560241f16d6617d9ae84da2 100644 GIT binary patch delta 89 zcmca4a!G_YpO=@50SKWGqoyz*EDxkg=A(hJS%_3J-`?!jZ+9rIMw( pK&^&YHOC?Kn pfm#jY=3wS-7SY5xH5AS(^KOM5=$~RS908B1ORkt8j1h_ diff --git a/agent.py b/agent.py index 37414d0..93cc93d 100644 --- a/agent.py +++ b/agent.py @@ -9,7 +9,7 @@ class Agent(pygame.sprite.Sprite): self.game = game self.groups = self.game.all_sprites pygame.sprite.Sprite.__init__(self, self.groups) - # direction =['right','down','left','up'] 0 1 2 3 kierunek w ktory po kliknieciu do przodu pojdzie + self.AGENT_IMAGES =['gandalf-prawo','gandalf-dol','gandalf-lewo','gandalf-gora'] self.x = x * TILE_SIZE self.y = y * TILE_SIZE @@ -19,7 +19,6 @@ class Agent(pygame.sprite.Sprite): self.x_change = 0 self.y_change = 0 - #self.AGENT_IMG = pygame.image.load("./zdjecia/"+self.AGENT_IMAGES[self.direction]+".png") self.AGENT_IMG_RIGHT = pygame.image.load("./pozostale_zdjecia/gandalf-prawo.png") self.AGENT_RIGHT = pygame.transform.scale(self.AGENT_IMG_RIGHT,(64,64)) self.AGENT_IMG_DOWN = pygame.image.load("./pozostale_zdjecia/gandalf-dol.png") @@ -41,12 +40,14 @@ class Agent(pygame.sprite.Sprite): self.level = 1 - self.current_health = 500 - self.max_health = 1000 - self.health_bar_length = 300 + self.current_health = 200 + self.max_health = 200 + self.health_bar_length = 200 self.health_ratio = self.max_health/self.health_bar_length self._layer = AGENT_LAYER - + self.damage = 50*self.level + + self.artifact = True def update(self): @@ -54,7 +55,6 @@ class Agent(pygame.sprite.Sprite): self.movement() self.collide_mob() self.collide_flower() - #self.end_game() gra sie konczy gdy wie gdzie sa wszyscy self.disp_level() self.rect.x += self.x_change @@ -102,9 +102,6 @@ class Agent(pygame.sprite.Sprite): if self.direction==3 and self.rect.y > 0: self.y_change -= TILE_SIZE - def end_game(self): - if (-1 in self.game.state)==False: - pygame.quit() def collide_flower(self): hits_flower = pygame.sprite.spritecollide(self, self.game.flowers, False) @@ -133,14 +130,8 @@ class Agent(pygame.sprite.Sprite): hits_archer_ork = pygame.sprite.spritecollide(self, self.game.archer_orks, False) hits_infantry_ork = pygame.sprite.spritecollide(self, self.game.infantry_orks, False) - #hits_infantry_ork2 = pygame.sprite.spritecollide(self, self.game.infantry_orks2, False) hits_sauron = pygame.sprite.spritecollide(self, self.game.sauronL, False) - #hits_unknown_mob = pygame.sprite.spritecollide(self, self.game.unknown_mobs, False) #unknown mob - #if hits_unknown_mob: - # self.game.unknown_mob.kill() - # self.game.archer_orks = pygame.sprite.LayeredUpdates() - # self.game.archer_ork = Archer_ork(self,3,2) - + @@ -186,23 +177,7 @@ class Agent(pygame.sprite.Sprite): self.level=self.level+1 pygame.quit() - ''' - if hits_infantry_ork2: - if self.game.infantry_ork2.level > self.level or self.game.infantry_ork2.damage > self.current_health: - self.game.state[4]=self.game.infantry_ork2.x - self.game.state[5]=self.game.infantry_ork2.y - print(self.game.state) - self.kill() - self.game.new() - else: - self.game.state[4]=self.game.infantry_ork2.x - self.game.state[5]=self.game.infantry_ork2.y - print(self.game.state) - self.game.infantry_ork2.kill() - self.get_damage(self.game.infantry_ork2.damage) - self.level=self.level+1 - ''' - + def get_damage(self,amount): @@ -210,9 +185,7 @@ class Agent(pygame.sprite.Sprite): self.current_health -= amount if self.current_health <= 0: self.current_health = 0 - - #zmienic potem na smierc oraz później trzeba będzie tutaj ująć wszystkie statystyki - #i ze statystyk obliczyć ile dmg dostanie agent + def get_health(self, amount): if self.current_health < self.max_health: @@ -228,7 +201,6 @@ class Agent(pygame.sprite.Sprite): def disp_level(self): font = pygame.font.SysFont(None, 40) lvlDisplay = font.render(str(self.level)+" "+str(self.direction), 1, WHITE) - #lvlDisplay = font.render(str(self.level), 1, WHITE) pygame.draw.rect(self.game.SCREEN, BLACK, (370, 780, 40, 40)) self.game.SCREEN.blit(lvlDisplay, (370,780)) diff --git a/astar.py b/astar.py index 8892695..5e95810 100644 --- a/astar.py +++ b/astar.py @@ -28,10 +28,13 @@ class Astar(): if current in came_from: path = self.print_path(came_from, came_from[current],path) path.append(self.g.bfs.get_cell_number(current[0]*TILE_SIZE,current[1]*TILE_SIZE)) - print("Budowanie ścieżki: ",path) + #print("Budowanie ścieżki: ",path) return path - def a_star(self,start, goal,path): + def a_star(self, goal): + path = [] + start = (self.g.agent.rect.x//TILE_SIZE, self.g.agent.rect.y//TILE_SIZE) + print(start,goal) open_set = [] heapq.heappush(open_set, (0, start)) # Priority queue with the start position came_from = {} @@ -40,7 +43,7 @@ class Astar(): while open_set: _, current = heapq.heappop(open_set) - + if current == goal: # Goal reached, print the path path = self.print_path(came_from, goal,path) diff --git a/bfs.py b/bfs.py index 160cdc5..e78f03a 100644 --- a/bfs.py +++ b/bfs.py @@ -10,10 +10,10 @@ class Bfs(): def heuristic(a,b): return abs(a[0]-b[0])+abs(a[1]-b[1]) def bfs(self,goal_cell): - print("x: ", self.game.agent.x, "y: ", self.game.agent.y) + print("x: ", self.game.agent.rect.x, "y: ", self.game.agent.rect.y) visited = set() q = queue.Queue() - start_position = self.get_cell_number(self.game.agent.x,self.game.agent.y) + start_position = self.get_cell_number(self.game.agent.rect.x,self.game.agent.rect.y) q.put(start_position) parent = {} diff --git a/main.py b/main.py index 61bc9a7..d3c5f7c 100644 --- a/main.py +++ b/main.py @@ -83,10 +83,8 @@ class Game: pygame.quit() if event.type == pygame.KEYDOWN: if event.key == pygame.K_SPACE: - self.start_pos = (self.agent.x//TILE_SIZE, self.agent.y//TILE_SIZE) self.goal_pos = (self.flower.x//TILE_SIZE, self.flower.y//TILE_SIZE) - self.path = [] - self.move_agent(self.astar.a_star(self.start_pos, self.goal_pos,self.path)) + self.move_agent(self.astar.a_star(self.goal_pos)) @@ -96,35 +94,63 @@ class Game: x = self.sauron.x y = self.sauron.y - mob_image = self.sauron.SAURON_IMG + goal = x//TILE_SIZE,y//TILE_SIZE + mob_image = self.sauron.image_path + prediction = self.prediction_road(x,y,mob_image) + prediction = "SAURON" while True: #do poprawienia poprawne rozpoznawanie póki co nie będzie działać dobrze, program się będzie zawieszać - prediction = self.prediction_road(x,y,mob_image) - if prediction == "SAURON": - x = self.infantry_ork.x - y = self.infantry_ork.y - mob_image = self.infantry_ork.INFANTRY_ORK_IMG - prediction = self.prediction_road(x,y,mob_image) - if prediction == "ORK_INFANTRY": - self.move_agent(self.bfs.bfs(self.bfs.get_cell_number(x,y))) + if prediction == "SAURON" and self.agent.level < 3: x = self.archer_ork.x y = self.archer_ork.y - mob_image = self.archer_ork.ARCHER_ORK_IMG + goal = x//TILE_SIZE,y//TILE_SIZE + mob_image = self.archer_ork.image_path prediction = self.prediction_road(x,y,mob_image) - if prediction == "ORK_ARCHER": - self.move_agent(self.bfs.bfs(self.bfs.get_cell_number(x,y))) + prediction = "ORK_ARCHER" + elif prediction == "SAURON" and self.agent.level >= 3: + self.obstacles[1][10] = False + self.move_agent(self.astar.a_star(goal)) + + elif prediction == "ORK_INFANTRY": + self.obstacles[10][4] = False + self.move_agent(self.astar.a_star(goal)) + if self.agent.current_health < self.agent.max_health: + goal = (self.flower.x//TILE_SIZE, self.flower.y//TILE_SIZE) + self.move_agent(self.astar.a_star(goal)) x = self.sauron.x y = self.sauron.y - mob_image = self.sauron.SAURON_IMG + goal = x//TILE_SIZE,y//TILE_SIZE + mob_image = self.sauron.image_path + prediction = self.prediction_road(x,y,mob_image) + prediction = "SAURON" + elif prediction == "ORK_ARCHER": + self.obstacles[10][10] = False + self.move_agent(self.astar.a_star(goal)) + if self.agent.current_health < self.agent.max_health: + goal = (self.flower.x//TILE_SIZE, self.flower.y//TILE_SIZE) + self.move_agent(self.astar.a_star(goal)) + x = self.infantry_ork.x + y = self.infantry_ork.y + goal = x//TILE_SIZE,y//TILE_SIZE + mob_image = self.infantry_ork.image_path + prediction = self.prediction_road(x,y,mob_image) + prediction = "ORK_INFANTRY" + def prediction_road(self,x,y,mob_image): - mob_goal = (self.bfs.get_cell_number(x,y)) - if self.bfs.get_up_cell(mob_goal) == None: - goal = self.bfs.get_down_cell(mob_goal) + mob_goal_cell = (self.bfs.get_cell_number(x,y)) + if self.bfs.get_up_cell(mob_goal_cell) == None: + goal_cell = self.bfs.get_down_cell(mob_goal_cell) + x,y = self.bfs.get_coordinates(goal_cell) + goal = x//TILE_SIZE,y//TILE_SIZE + self.move_agent(self.astar.a_star(goal)) + prediction = self.nn.predict(mob_image) else: - goal = self.bfs.get_up_cell(mob_goal) - self.move_agent(self.bfs.bfs(goal)) + goal_cell = self.bfs.get_up_cell(mob_goal_cell) + x,y = self.bfs.get_coordinates(goal_cell) + goal = x//TILE_SIZE,y//TILE_SIZE + self.move_agent(self.astar.a_star(goal)) prediction = self.nn.predict(mob_image) return prediction @@ -133,7 +159,7 @@ class Game: for cell_to_move in path: x, y = self.bfs.get_coordinates(cell_to_move) print("Ruch do kratki : ", cell_to_move, " z x: ", x, ", y: ", y, ", agent.x: ", self.agent.rect.x, ", agent.y: ", self.agent.rect.y) - if(self.bfs.get_cell_number(self.agent.x,self.agent.y)!=cell_to_move): + if(self.bfs.get_cell_number(self.agent.rect.x,self.agent.rect.y)!=cell_to_move): if x > self.agent.rect.x: self.agent.direction = 0 elif y > self.agent.rect.y: @@ -143,16 +169,16 @@ class Game: elif y < self.agent.rect.y: self.agent.direction = 3 if self.agent.direction==0: - print("DIRECTION: "+self.agent.AGENT_IMAGES[self.agent.direction]) + #print("DIRECTION: "+self.agent.AGENT_IMAGES[self.agent.direction]) self.agent.x_change += TILE_SIZE elif self.agent.direction==1: - print("DIRECTION: "+self.agent.AGENT_IMAGES[self.agent.direction]) + #print("DIRECTION: "+self.agent.AGENT_IMAGES[self.agent.direction]) self.agent.y_change += TILE_SIZE elif self.agent.direction==2: - print("DIRECTION: "+self.agent.AGENT_IMAGES[self.agent.direction]) + #print("DIRECTION: "+self.agent.AGENT_IMAGES[self.agent.direction]) self.agent.x_change -= TILE_SIZE elif self.agent.direction==3: - print("DIRECTION: "+self.agent.AGENT_IMAGES[self.agent.direction]) + #print("DIRECTION: "+self.agent.AGENT_IMAGES[self.agent.direction]) self.agent.y_change -= TILE_SIZE self.agent.rotate() diff --git a/mobs.py b/mobs.py index f6ef837..334b71b 100644 --- a/mobs.py +++ b/mobs.py @@ -14,7 +14,8 @@ class Archer_ork(pygame.sprite.Sprite): self.width = TILE_SIZE self.height = TILE_SIZE - self.ARCHER_ORK_IMG = pygame.image.load("./pozostale_zdjecia/ork_lucznik.png") + self.image_path = "./pozostale_zdjecia/ork_lucznik.png" + self.ARCHER_ORK_IMG = pygame.image.load(self.image_path) self.ARCHER_ORK = pygame.transform.scale(self.ARCHER_ORK_IMG,(64,64)) self.image = pygame.Surface([self.width, self.height]) @@ -27,6 +28,7 @@ class Archer_ork(pygame.sprite.Sprite): self.level = 1 self.damage = 50*self.level + self.health = 50 class Infantry_ork(pygame.sprite.Sprite): @@ -41,7 +43,8 @@ class Infantry_ork(pygame.sprite.Sprite): self.width = TILE_SIZE self.height = TILE_SIZE - self.INFANTRY_ORK_IMG = pygame.image.load("./pozostale_zdjecia/ork-piechota.png") + self.image_path = "./pozostale_zdjecia/ork-piechota.png" + self.INFANTRY_ORK_IMG = pygame.image.load(self.image_path) self.INFANTRY_ORK = pygame.transform.scale(self.INFANTRY_ORK_IMG,(64,64)) self.image = pygame.Surface([self.width, self.height]) @@ -54,37 +57,9 @@ class Infantry_ork(pygame.sprite.Sprite): self.level = 2 self.damage = 50*self.level - -''' - -class Infantry_ork2(pygame.sprite.Sprite): + self.health = 100 - def __init__(self, game, x, y): - self.game = game - self.groups = self.game.all_sprites, self.game.infantry_orks2 - pygame.sprite.Sprite.__init__(self, self.groups) - - self.x = x * TILE_SIZE - self.y = y * TILE_SIZE - self.width = TILE_SIZE - self.height = TILE_SIZE - - self.INFANTRY_ORK2_IMG = pygame.image.load("./zdjecia/ork-piechota2.png") - self.INFANTRY_ORK2 = pygame.transform.scale(self.INFANTRY_ORK2_IMG,(64,64)) - - self.image = pygame.Surface([self.width, self.height]) - self.image.blit(self.INFANTRY_ORK2, (0,0)) - self.image.set_colorkey((0, 0, 0)) - - self.rect = self.image.get_rect() - self.rect.x = self.x - self.rect.y = self.y - - self.level = 3 - self.damage = 50*self.level - -''' class Sauron(pygame.sprite.Sprite): @@ -98,7 +73,8 @@ class Sauron(pygame.sprite.Sprite): self.width = TILE_SIZE self.height = TILE_SIZE - self.SAURON_IMG = pygame.image.load("./pozostale_zdjecia/sauron.png") + self.image_path = "./pozostale_zdjecia/sauron.png" + self.SAURON_IMG = pygame.image.load(self.image_path) self.SAURON = pygame.transform.scale(self.SAURON_IMG,(64,64)) self.image = pygame.Surface([self.width, self.height]) @@ -109,6 +85,6 @@ class Sauron(pygame.sprite.Sprite): self.rect.x = self.x self.rect.y = self.y - self.level = 4 + self.level = 3 self.damage = 50*self.level - \ No newline at end of file + self.health = 150 \ No newline at end of file diff --git a/nn.py b/nn.py index 7edd8a1..b27deb6 100644 --- a/nn.py +++ b/nn.py @@ -12,7 +12,7 @@ import pathlib class NeuralN: # @staticmethod - def predict(self,image): + def predict(self,image_path): data_dir = pathlib.Path('zdjecia') saved_model_path = pathlib.Path('trained_model.h5') class_names_path = pathlib.Path("class_names.pkl")