Dodanie losowego ruchu (metoda moveRandomly)

This commit is contained in:
Sara Kowalska 2020-04-05 13:50:07 +02:00
parent 302e195f50
commit bea6f828fe

View File

@ -1,5 +1,8 @@
import pygame import pygame
import random
import time
pygame.init()
class Table(object): class Table(object):
def __init__(self, pos): def __init__(self, pos):
@ -22,11 +25,41 @@ class Table(object):
class Waiter(object): class Waiter(object):
def __init__(self, color, pos): def __init__(self, color, pos):
self.color = color self.color = color
self.pos = pos self.pos = pos #pozycja agenta, zapisana w formie dwuelementowej listy
self.dirnx = 0 self.dirnx = 0 #zmienne dirnx i dirny używane są do ruchu bota i ustalania, w którą stronę jest zwrócony
self.dirny = 1 self.dirny = 1
self.plates = {} #lista niesionych przez agenta talerzy
def move(self): def moveRandomly(self):
rand = random.randrange(1, 5, 1) #losuje w zakresie 1-4
print(rand)
if rand == 1:
self.dirnx = -1
self.dirny = 0
if self.pos[0] == 0: #zabezpieczenie przed wyjściem bota poza obszar okna w ruchu losowym
self.dirnx *= (-1)
self.pos = (self.pos[0] + self.dirnx, self.pos[1] + self.dirny)
elif rand == 2:
self.dirnx = 1
self.dirny = 0
if self.pos[0] == 15:
self.dirnx *= (-1)
self.pos = (self.pos[0] + self.dirnx, self.pos[1] + self.dirny)
elif rand == 3:
self.dirnx = 0
self.dirny = -1
if self.pos[1] == 0:
self.dirny *= (-1)
self.pos = (self.pos[0] + self.dirnx, self.pos[1] + self.dirny)
elif rand == 4:
self.dirnx = 0
self.dirny = 1
if self.pos[1] == 15:
self.dirny *= (-1)
self.pos = (self.pos[0] + self.dirnx, self.pos[1] + self.dirny)
def moveWithKeyboard(self): #funkcja testowa - bot sterowany z klawiatury
for event in pygame.event.get(): for event in pygame.event.get():
if event.type == pygame.QUIT: if event.type == pygame.QUIT:
pygame.quit() pygame.quit()
@ -101,7 +134,7 @@ def main():
width = 600 width = 600
rows = 15 rows = 15
sizeBetween = width // rows sizeBetween = width // rows #wielkość pojedynczej kratki
window = pygame.display.set_mode((width, width)) window = pygame.display.set_mode((width, width))
bot = Waiter((255, 0, 0), [7, 7]) bot = Waiter((255, 0, 0), [7, 7])
table1 = Table([5, 5]) table1 = Table([5, 5])
@ -109,10 +142,13 @@ def main():
clock = pygame.time.Clock() clock = pygame.time.Clock()
while flag: while flag:
pygame.time.delay(50) pygame.time.delay(100)
clock.tick(10) clock.tick(60)
bot.move() for i in range(40): #bot testowo ma wykonać 40 kroków
redrawWindow(window) bot.moveRandomly()
redrawWindow(window)
time.sleep(0.5) #opóźnienie każdego kolejnego kroku o pół sekundy
flag = False
main() main()