From bea6f828fedc565439e9556ccae538aef4e57032 Mon Sep 17 00:00:00 2001 From: Sara Kowalska Date: Sun, 5 Apr 2020 13:50:07 +0200 Subject: [PATCH] Dodanie losowego ruchu (metoda moveRandomly) --- Restaurant/main.py | 52 +++++++++++++++++++++++++++++++++++++++------- 1 file changed, 44 insertions(+), 8 deletions(-) diff --git a/Restaurant/main.py b/Restaurant/main.py index e0ed2bf..bc6df88 100644 --- a/Restaurant/main.py +++ b/Restaurant/main.py @@ -1,5 +1,8 @@ import pygame +import random +import time +pygame.init() class Table(object): def __init__(self, pos): @@ -22,11 +25,41 @@ class Table(object): class Waiter(object): def __init__(self, color, pos): self.color = color - self.pos = pos - self.dirnx = 0 + self.pos = pos #pozycja agenta, zapisana w formie dwuelementowej listy + 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.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(): if event.type == pygame.QUIT: pygame.quit() @@ -101,7 +134,7 @@ def main(): width = 600 rows = 15 - sizeBetween = width // rows + sizeBetween = width // rows #wielkość pojedynczej kratki window = pygame.display.set_mode((width, width)) bot = Waiter((255, 0, 0), [7, 7]) table1 = Table([5, 5]) @@ -109,10 +142,13 @@ def main(): clock = pygame.time.Clock() while flag: - pygame.time.delay(50) - clock.tick(10) - bot.move() - redrawWindow(window) + pygame.time.delay(100) + clock.tick(60) + for i in range(40): #bot testowo ma wykonać 40 kroków + bot.moveRandomly() + redrawWindow(window) + time.sleep(0.5) #opóźnienie każdego kolejnego kroku o pół sekundy + flag = False main()