import random import pygame from Constants import SQUARE_SIZE, GREEN, RIGHT, LEFT, UP, DOWN, COLS, ROWS, DECOY, ATOMIC_BOMB, CHEMICAL_BOMB, \ CLAYMORE, LAND_MINE from Engine.Board import Board from Engine.Agent import Agent from Engine.BombFactory import BombFactory from Engine.Point import Point from Engine.Stone import Stone class Game: def __init__(self, win): self._init(win) self.win = win self.randomizeObject() pygame.display.update() def _init(self, win): self.board = Board(win) self.agent = Agent(Point(0, 0)) self.turn = GREEN self.goingDown = True def update(self): self.board.drawSquares(self.win) self.board.drawBombs() self.board.drawAgent(self.win, self.agent) pygame.display.update() def move(self): point = self.agent.getPoint() if self.goingDown: if point.getY() + 1 < ROWS: point.y += 1 elif point.getX() + 1 < COLS: point.x += 1 self.goingDown = not self.goingDown else: if point.getY() - 1 >= 0: point.y -= 1 elif point.getX() + 1 < COLS: point.x += 1 self.goingDown = not self.goingDown self.agent.point = point def randomizeObject(self): for x in range(10): point = Point(random.randint(0, 7), random.randint(0, 7)) if point not in self.board.bombMap: object = self.pickObject(random.randint(0, 4)) self.board.bombMap[point] = object def pickObject(self, rand): if rand == 0: return BombFactory.create(DECOY) elif rand == 1: return BombFactory.create(CHEMICAL_BOMB) elif rand == 2: return BombFactory.create(ATOMIC_BOMB) elif rand == 3: return BombFactory.create(CLAYMORE) elif rand == 4: return BombFactory.create(LAND_MINE) # elif(rand == 5): # return Stone()