Dodanie losowego ruchu (metoda moveRandomly)
This commit is contained in:
parent
302e195f50
commit
bea6f828fe
@ -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()
|
||||
|
Loading…
Reference in New Issue
Block a user