generowanie nastepnikow
This commit is contained in:
parent
f6d9fa609e
commit
ac6a8771e6
@ -36,12 +36,3 @@ class Tile(pygame.sprite.Sprite):
|
|||||||
else:
|
else:
|
||||||
self.image = pygame.image.load("images/grass.png").convert()
|
self.image = pygame.image.load("images/grass.png").convert()
|
||||||
self.image = pygame.transform.scale(self.image, (TILE_SIZE, TILE_SIZE))
|
self.image = pygame.transform.scale(self.image, (TILE_SIZE, TILE_SIZE))
|
||||||
|
|
||||||
'''
|
|
||||||
def set_type(self, type):
|
|
||||||
self.type = type
|
|
||||||
# if self.type == 'grass':
|
|
||||||
# self.image = pygame.image.load("images/grass.png").convert()
|
|
||||||
self.image = pygame.image.load("images/grass.png").convert()
|
|
||||||
self.image = pygame.transform.scale(self.image, (TILE_SIZE, TILE_SIZE))
|
|
||||||
'''
|
|
@ -3,6 +3,7 @@ import os
|
|||||||
from kb import ile_podlac, multi_sasiedzi
|
from kb import ile_podlac, multi_sasiedzi
|
||||||
from tile import Tile
|
from tile import Tile
|
||||||
from config import TILE_SIZE
|
from config import TILE_SIZE
|
||||||
|
from collections import deque
|
||||||
|
|
||||||
class Tractor(pygame.sprite.Sprite):
|
class Tractor(pygame.sprite.Sprite):
|
||||||
def __init__(self, field):
|
def __init__(self, field):
|
||||||
@ -74,6 +75,8 @@ class Tractor(pygame.sprite.Sprite):
|
|||||||
modifier = multi_sasiedzi(current_tile.type, neighbors)[0]['Mul']
|
modifier = multi_sasiedzi(current_tile.type, neighbors)[0]['Mul']
|
||||||
print(f"🌱 the growth modifier for {current_tile.type} on this tile is ~{modifier:.2f} based on its neighbors: {', '.join(neighbors)}")
|
print(f"🌱 the growth modifier for {current_tile.type} on this tile is ~{modifier:.2f} based on its neighbors: {', '.join(neighbors)}")
|
||||||
|
|
||||||
|
self.BFS((14,14))
|
||||||
|
|
||||||
print() # empty line at end of log statement
|
print() # empty line at end of log statement
|
||||||
|
|
||||||
|
|
||||||
@ -136,3 +139,71 @@ class Tractor(pygame.sprite.Sprite):
|
|||||||
self.image = pygame.image.load('images/tractor/north.png').convert_alpha()
|
self.image = pygame.image.load('images/tractor/north.png').convert_alpha()
|
||||||
self.image = pygame.transform.scale(self.image, (TILE_SIZE, TILE_SIZE))
|
self.image = pygame.transform.scale(self.image, (TILE_SIZE, TILE_SIZE))
|
||||||
self.direction = 'north'
|
self.direction = 'north'
|
||||||
|
|
||||||
|
def turn_right(self, direction):
|
||||||
|
directions = ["east", "south", "west", "north"]
|
||||||
|
current_index = directions.index(direction)
|
||||||
|
new_index = (current_index + 1) % 4
|
||||||
|
return directions[new_index]
|
||||||
|
|
||||||
|
def turn_left(self, direction):
|
||||||
|
directions = ["east", "south", "west", "north"]
|
||||||
|
current_index = directions.index(direction)
|
||||||
|
new_index = (current_index - 1) % 4
|
||||||
|
return directions[new_index]
|
||||||
|
|
||||||
|
def generate_succesors(self, state):
|
||||||
|
x, y, direction = state
|
||||||
|
successors = []
|
||||||
|
|
||||||
|
if direction == "east" and x < 15:
|
||||||
|
successors.append(((x + 1, y, direction), "forward"))
|
||||||
|
elif direction == "west" and x > 0:
|
||||||
|
successors.append(((x - 1, y, direction), "forward"))
|
||||||
|
elif direction == "north" and y > 0:
|
||||||
|
successors.append(((x, y - 1, direction), "forward"))
|
||||||
|
elif direction == "south" and y < 15:
|
||||||
|
successors.append(((x, y + 1, direction), "forward"))
|
||||||
|
|
||||||
|
if direction == "east" and y > 0:
|
||||||
|
successors.append(((x, y, self.turn_left(direction)), "left"))
|
||||||
|
elif direction == "west" and y < 15:
|
||||||
|
successors.append(((x, y, self.turn_left(direction)), "left"))
|
||||||
|
elif direction == "north" and x > 0:
|
||||||
|
successors.append(((x, y, self.turn_left(direction)), "left"))
|
||||||
|
elif direction == "south" and x < 15:
|
||||||
|
successors.append(((x, y, self.turn_left(direction)), "left"))
|
||||||
|
|
||||||
|
if direction == "east" and y < 15:
|
||||||
|
successors.append(((x, y, self.turn_right(direction)), "right"))
|
||||||
|
elif direction == "west" and y > 0:
|
||||||
|
successors.append(((x, y, self.turn_right(direction)), "right"))
|
||||||
|
elif direction == "north" and x < 15:
|
||||||
|
successors.append(((x, y, self.turn_right(direction)), "right"))
|
||||||
|
elif direction == "south" and x > 0:
|
||||||
|
successors.append(((x, y, self.turn_right(direction)), "right"))
|
||||||
|
|
||||||
|
return successors
|
||||||
|
|
||||||
|
|
||||||
|
def BFS(self, end):
|
||||||
|
x = self.rect.x // TILE_SIZE
|
||||||
|
y = self.rect.y // TILE_SIZE
|
||||||
|
start = (x, y, self.direction)
|
||||||
|
|
||||||
|
fringe = deque()
|
||||||
|
path = []
|
||||||
|
fringe.append(start)
|
||||||
|
while fringe:
|
||||||
|
if (fringe[0])[0] == end[0] and (fringe[0])[1] == end[1]:
|
||||||
|
return path
|
||||||
|
successors = self.generate_succesors(fringe[0])
|
||||||
|
print(fringe[0])
|
||||||
|
print(successors, '<-----tutaj następniki')
|
||||||
|
break
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user