def __init__(self,score,lives,level): """ Constructor Function: called automatically when an instance of the class is created """ """Creating Player """ self.player = Player.Player() """ Creating a List for Donkey and Fireballs""" self.fireball_sprites = pygame.sprite.Group() """ Declaring Current Level """ self.current_level = Board.Board(self.player) """ Creating various Sprite Groups """ self.moving_sprites = pygame.sprite.Group() self.donkey_sprites = pygame.sprite.Group() self.player.level = self.current_level """ Player's initial Location """ self.player.rect.x = 30 self.player.rect.y = HEIGHT - self.player.rect.height-30 """Adding Player in moving_sprites to make updates easy""" self.moving_sprites.add(self.player) """ List that contains random numbers for turning Donkey """ self.donkeyturn = [] """ Creating Donkey and adding it to lists """ for i in range(0,level): donkey = Donkey.Donkey() """Donkey's initial Location""" donkey.rect.x = 30+30*i donkey.rect.y = 120 """Adding Donkey in various lists""" self.donkey_sprites.add(donkey) self.donkeyturn.append(random.randint(100,200)) self.moving_sprites.add(donkey) """ For restarting and respawing """ self.game_over = False self.game_win = False """ Score Lives Level """ self.level = level self.score = score self.lives = lives """ Flag to check when 'a' or 's' is pressed """ self.flag = 0 """ Counter to randomize things """ self.counter = 0
def main(): life=3 move=0 side=0 level=1 while(1): screen=Board() p1=Player(24,2) screen.printP(24,2,'P') d1=Donkey(4,5) screen.printD(4,5,'D') os.system("clear") #clears the terminal screen! screen.coingen() screen.screenout() while(1): print "Let's Save The Queen!!" print "Enter your move :" PX=p1.getX() PY=p1.getY() ch=getchar() if(ch=='q'): break if(ch=='a' or ch=='A'): side=1 if(screen.checkCHAR(PX,PY-1,'Q')): screen.saved('1') level+=1 break elif(ch=='D' or ch=='d'): side=0 prevPX=p1.getX() prevPY=p1.getY() prevDX=d1.getX() prevDY=d1.getY() d1.move(screen,d1) DX=d1.getX() DY=d1.getY() p1.move(ch,screen,side) PX=p1.getX() PY=p1.getY() if(((((ch=='a' or ch=='A') or(ch=='d' or ch=='D') )and ((prevDX==PX and prevDY==PY) and (prevPX==DX and prevPY==DY))) or (DX==PX and DY==PY) )and (life>0)): life-=1 break print "" os.system("clear") screen.screenout() print "Level :", print level print "Score :", print screen.getscore() print "Life :", print life if(DX==PX and DY==PY): screen.printD(PX,PY,'D') if(life>0): continue else: break if(ch=='q'): break if(life==0): print "Sorry U can't make it!!" break elif(life>0): continue elif(screen.checkSAVED()==1): print "Queen Saved!!", continue elif(screen.checkSAVED()==0): print "Let's Try Again!!", print "" print "Final Score :", print screen.getscore() print "Life :", print life print "Level Reached :", print level
def main(): # print while(1): global lives global score if(lives==0): break screen=Screen(score) screen.generatecoin() screen.printscreen() pl=Player(24,1) dn=Donkey(4,1) # dn.donkeyposition(screen) while(1): global cnt global firefl cnt+=1 ch=getchar() if(ch=='q'): lives=0 break if(cnt==10): fb=Fireball(dn.getx(),dn.gety()) fb.move(screen) firefl=1 cnt=-10000 if(firefl==1): fb.move(screen) if(fb.getx()==pl.getx() and fb.gety()==pl.gety()): lives-=1 score=screen.getscore() score-=50 os.system("clear") break if(dn.getx()==pl.getx() and dn.gety()==pl.gety()): lives-=1 os.system("clear") score=screen.getscore() score-=50 break dn.move(screen) if(firefl==1): # fb.move(screen) if(fb.getx()==pl.getx() and fb.gety()==pl.gety()): lives-=1 score=screen.getscore() score-=50 os.system("clear") break if(dn.getx()==pl.getx() and dn.gety()==pl.gety()): lives-=1 os.system("clear") score=screen.getscore() score-=25 break pl.move(ch,screen) if(firefl==1): # fb.move(screen) if(fb.getx()==pl.getx() and fb.gety()==pl.gety()): lives-=1 score=screen.getscore() score-=50 os.system("clear") break if(dn.getx()==pl.getx() and dn.gety()==pl.gety()): lives-=1 os.system("clear") score=screen.getscore() score-=50 break if(pl.gety()==28 and pl.getx()==1): score=screen.getscore() score+=50 os.system("clear") print "Bravo!!! You saved your Queen" print 'You get 50 bonus points' lives=3 break print "Your Score:" print screen.getscore() print "Ooops!!! Game Over: Your Final Score was:", print screen.getscore()
def __init__(self): #Important to begin and initialize everything pygame.init() #Determine the dimension self.display_Width = 1200 self.display_Height = 600 self.image_Width = 30 self.image_Height = 30 #Setup the Display self.DISPLAYSURF = pygame.display.set_mode((self.display_Width , self.display_Height)) pygame.display.set_caption('DonkeyPy') #Define the colors self.white = (255,255,255) self.black = (0,0,0) self.blue = (0,0,128) self.red = (255,0,0) #Set up the self.clock for the game and decide Frame Rate self.clock = pygame.time.Clock() self.FPS = 30 #Introduce self.fonts self.font = pygame.font.SysFont(None, 25) # self.font Size 25 #Alias Directions self.UP = 'up' self.DOWN = 'down' self.LEFT = 'left' self.RIGHT = 'right' self.big_list = pygame.sprite.Group() #Introduce our players self.donkey = Donkey() self.big_list.add(self.donkey) #Introduce the Queen self.queen = Queen(150,68) self.queen_list = pygame.sprite.Group() self.queen_list.add(self.queen) #Introduce the Boards self.board = Board(0,0) self.block_list = pygame.sprite.Group() #Introduce the Ladders self.ladder_list = pygame.sprite.Group() self.ladder_1 = Ladder() self.ladder_list.add(self.ladder_1) self.ladder_2 = Ladder() self.ladder_list.add(self.ladder_2) self.ladder_3 = Ladder() self.ladder_list.add(self.ladder_3) self.ladder_4 = Ladder() self.ladder_list.add(self.ladder_4) self.ladder_5 = Ladder() self.ladder_list.add(self.ladder_5) #Introduce the Bananas self.banana_list = pygame.sprite.Group() #Bring Home the Fire ! self.fire_list = pygame.sprite.Group() #Introduce the Villian self.man = Human() self.great_list = pygame.sprite.Group()
class App(): def __init__(self): #Important to begin and initialize everything pygame.init() #Determine the dimension self.display_Width = 1200 self.display_Height = 600 self.image_Width = 30 self.image_Height = 30 #Setup the Display self.DISPLAYSURF = pygame.display.set_mode((self.display_Width , self.display_Height)) pygame.display.set_caption('DonkeyPy') #Define the colors self.white = (255,255,255) self.black = (0,0,0) self.blue = (0,0,128) self.red = (255,0,0) #Set up the self.clock for the game and decide Frame Rate self.clock = pygame.time.Clock() self.FPS = 30 #Introduce self.fonts self.font = pygame.font.SysFont(None, 25) # self.font Size 25 #Alias Directions self.UP = 'up' self.DOWN = 'down' self.LEFT = 'left' self.RIGHT = 'right' self.big_list = pygame.sprite.Group() #Introduce our players self.donkey = Donkey() self.big_list.add(self.donkey) #Introduce the Queen self.queen = Queen(150,68) self.queen_list = pygame.sprite.Group() self.queen_list.add(self.queen) #Introduce the Boards self.board = Board(0,0) self.block_list = pygame.sprite.Group() #Introduce the Ladders self.ladder_list = pygame.sprite.Group() self.ladder_1 = Ladder() self.ladder_list.add(self.ladder_1) self.ladder_2 = Ladder() self.ladder_list.add(self.ladder_2) self.ladder_3 = Ladder() self.ladder_list.add(self.ladder_3) self.ladder_4 = Ladder() self.ladder_list.add(self.ladder_4) self.ladder_5 = Ladder() self.ladder_list.add(self.ladder_5) #Introduce the Bananas self.banana_list = pygame.sprite.Group() #Bring Home the Fire ! self.fire_list = pygame.sprite.Group() #Introduce the Villian self.man = Human() self.great_list = pygame.sprite.Group() def makeFire(self): self.fireball = Fire(0,0) self.fireball.x = self.man.x self.fireball.y = 104 self.fireball.rect.x = self.fireball.x self.fireball.rect.y = self.fireball.y self.fire_list.add(self.fireball) def makeBananas(self,quantity,check): if check == 0 : for bananas in self.banana_list: self.banana_list.remove(bananas) for i in range(quantity/4): self.banana = Banana(0,0) self.banana.x = random.randrange(0,self.display_Width-40,30) self.banana.y = 538 self.banana.rect.x = self.banana.x self.banana.rect.y = self.banana.y self.banana_list.add(self.banana) self.big_list.add(self.banana) for i in range(quantity/4): self.banana = Banana(0,0) self.banana.x = random.randrange(100,1000,30) self.banana.y = 438 self.banana.rect.x = self.banana.x self.banana.rect.y = self.banana.y self.banana_list.add(self.banana) self.big_list.add(self.banana) for i in range(quantity/4): self.banana = Banana(0,0) self.banana.x = random.randrange(300,self.display_Width-40,30) self.banana.y = 288 self.banana.rect.x = self.banana.x self.banana.rect.y = self.banana.y self.banana_list.add(self.banana) self.big_list.add(self.banana) for i in range(quantity/4): self.banana = Banana(0,0) self.banana.x = random.randrange(0,900,30) self.banana.y = 188 self.banana.rect.x = self.banana.x self.banana.rect.y = self.banana.y self.banana_list.add(self.banana) self.big_list.add(self.banana) def changePosition(self, ladder, x, y): """ Function modifies the postion of the ladder """ ladder.x = x ladder.y = y def makeLadders(self): self.changePosition(self.ladder_1,200,150) self.renderImage(self.ladder_1.body, self.ladder_1.x, self.ladder_1.y) self.changePosition(self.ladder_2,400,250) self.renderImage(self.ladder_2.body, self.ladder_2.x, self.ladder_2.y) self.changePosition(self.ladder_3,800,350) self.renderImage(self.ladder_3.body, self.ladder_3.x, self.ladder_3.y) self.changePosition(self.ladder_4,800,395) self.renderImage(self.ladder_4.body, self.ladder_4.x, self.ladder_4.y) self.changePosition(self.ladder_5,546,500) self.renderImage(self.ladder_5.body, self.ladder_5.x, self.ladder_5.y) def generateBoard(self,check): if check == 0: for i in range(0,45): self.new_block = Board(i*30,570) self.block_list.add(self.new_block) self.DISPLAYSURF.blit(self.board.image,(i*30,570)) for i in range(0,30): self.new_block = Board(100+i*30,470) self.block_list.add(self.new_block) self.DISPLAYSURF.blit(self.board.image,(100+i*30,470)) for i in range(0,30): self.new_block = Board(300+i*30,320) self.block_list.add(self.new_block) self.DISPLAYSURF.blit(self.board.image,(300+i*30,320)) for i in range(0,30): self.new_block = Board(i*30,220) self.block_list.add(self.new_block) self.DISPLAYSURF.blit(self.board.image,(i*30,220)) for i in range(0,15): self.new_block = Board(150+i*30,120) self.block_list.add(self.new_block) self.DISPLAYSURF.blit(self.board.image,(150+i*30,120)) else: for baba in self.block_list: self.DISPLAYSURF.blit(baba.image,(baba.x,baba.y)) def gravity(self): self.gravity_list = pygame.sprite.Group() self.gravity_list = pygame.sprite.spritecollide(self.donkey, self.block_list, False) if len(self.gravity_list) == 0 and self.donkey.canClimbUp == False: self.donkey.y = self.donkey.y + 1.5 def printMessage(self,msg, color, x, y): self.show_text = self.font.render(msg, True, color) self.DISPLAYSURF.blit(self.show_text,[x,y]) def boundaryCheck(self): if self.donkey.x > self.display_Width - self.image_Width or self.donkey.x < 0 or self.donkey.canMoveSide == False: self.donkey.x_Stop() if self.donkey.y > 538: self.donkey.y_Stop() def canClimb(self): self.m = self.donkey.x self.y = self.donkey.y if self.m > self.ladder_1.x-15 and self.m <self.ladder_1.x+15: if self.y <= self.ladder_1.y+42 and self.y >= self.ladder_1.y-62: self.donkey.canClimbUp = True else: self.donkey.canClimbUp = False elif self.m > self.ladder_2.x-15 and self.m <self.ladder_2.x+15: if self.y <= self.ladder_2.y+42 and self.y >= self.ladder_2.y-62: self.donkey.canClimbUp = True else: self.donkey.canClimbUp = False elif self.m > self.ladder_3.x-15 and self.m <self.ladder_3.x+15: if self.y <= self.ladder_3.y+50 and self.y >= self.ladder_3.y-62: self.donkey.canClimbUp = True elif self.y <= self.ladder_4.y+44 and self.y >= self.ladder_4.y-62: self.donkey.canClimbUp = True else: self.donkey.canClimbUp = False elif self.m > self.ladder_5.x-15 and self.m <self.ladder_5.x+15: if self.y <= self.ladder_5.y+70 and self.y >= self.ladder_5.y-62: self.donkey.canClimbUp = True else: self.donkey.canClimbUp = False def canHorizontal(self): self.m = self.donkey.x self.y = self.donkey.y if self.m > self.ladder_1.x-30 and self.m <self.ladder_1.x+30: if self.y <= self.ladder_1.y+37 and self.y >= self.ladder_1.y-57: self.donkey.canMoveSide = False else: self.donkey.canMoveSide = True elif self.m > self.ladder_2.x-30 and self.m <self.ladder_2.x+30: if self.y <= self.ladder_2.y+37 and self.y >= self.ladder_2.y-57: self.donkey.canMoveSide = False else: self.donkey.canMoveSide = True elif self.m > self.ladder_3.x-30 and self.m <self.ladder_3.x+30: if self.y <= self.ladder_3.y+50 and self.y >= self.ladder_3.y-57: self.donkey.canMoveSide = False elif self.y <= self.ladder_4.y and self.y >= self.ladder_4.y-62: self.donkey.canMoveSide = False else: self.donkey.canMoveSide = True elif self.m > self.ladder_5.x-30 and self.m <self.ladder_5.x+30: if self.y <= self.ladder_5.y+37 and self.y >= self.ladder_5.y-57: self.donkey.canMoveSide = False else: self.donkey.canMoveSide = True else: self.donkey.canMoveSide = True def canFallDown(self): for fires in self.fire_list: self.m = fires.x self.y = fires.y if self.m > self.ladder_1.x-15 and self.m <self.ladder_1.x+15: if self.y <= self.ladder_1.y+50 and self.y >= self.ladder_1.y-62: fires.canFallDown = True else: fires.canFallDown = False elif self.m > self.ladder_2.x-15 and self.m <self.ladder_2.x+15: if self.y <= self.ladder_2.y+50 and self.y >= self.ladder_2.y-62: fires.canFallDown = True else: fires.canFallDown = False elif self.m > self.ladder_3.x-15 and self.m <self.ladder_3.x+15: if self.y <= self.ladder_3.y+50 and self.y >= self.ladder_3.y-62: fires.canFallDown = True elif self.y <= self.ladder_4.y+50 and self.y >= self.ladder_4.y-62: fires.canFallDown = True else: fires.canFallDown = False elif self.m > self.ladder_5.x-15 and self.m <self.ladder_5.x+15: if self.y <= self.ladder_5.y+50 and self.y >= self.ladder_5.y-62: fires.canFallDown = True else: fires.canFallDown = False else: fires.canFallDown = False def getPosition(self,body): self.pos = [body.x , body.y] return self.pos def checkWall_Up(self): self.canClimb() if self.donkey.canClimbUp == False: self.donkey.y_Stop() def checkWall_Down(self): self.canClimb() if self.donkey.canClimbUp == False: self.donkey.y_Stop() def Jump(self): if self.donkey.canJump == True: for i in range(210): self.donkey.Jump() self.renderImage(self.donkey.body, self.donkey.x, self.donkey.y) self.platform_hit_list = pygame.sprite.spritecollide(self.donkey, self.block_list, False) if len(self.platform_hit_list) == 0: self.donkey.canJump = False else: self.donkey.canJump = True def handleFire(self): self.canFallDown() for fires in self.fire_list: if fires.canFallDown == True : fires.moveDown() self.DISPLAYSURF.blit(fires.image,(fires.x,fires.y)) def collectCoin(self): self.block_hit_list = pygame.sprite.spritecollide(self.donkey,self.banana_list,True) if len(self.block_hit_list)>0: self.donkey.score += len(self.block_hit_list)*5 def checkCollision(self): for fires in self.fire_list: self.handleFire() self.fire_hit_list = pygame.sprite.spritecollide(fires, self.block_list, False) fires.find_Level() fires.moveWeird() self.player_fire_hit_list = pygame.sprite.spritecollide(self.donkey, self.fire_list, True) if len(self.player_fire_hit_list) > 0: self.donkey.lives -= 1 self.donkey.resetPos() def checkGameStatus(self): self.win_list = pygame.sprite.spritecollide(self.donkey, self.queen_list, False) if len(self.win_list) > 0: self.donkey.score += 50 self.donkey.win = True return True else: return False def renderImage(self,body,x,y): self.DISPLAYSURF.blit(body,(x,y)) def main(self): self.gameOver = False self.gameOverDone = False self.check = 0 self.counter = 0 while not self.gameOverDone: if self.donkey.lives <= 0: self.donkey.Penalize() self.donkey.win = False self.gameOver = True self.gameOverDone = False while self.gameOver == True: self.DISPLAYSURF.fill(self.black) self.message = "Final Score : "+str(self.donkey.score) self.message2 = "Game Over " self.message3 = "Thanks For Playing!" self.message4 = "Press 'q' to : Quit" self.message5 = "Press 'r' to : Reset" self.printMessage(self.message, self.white, 490, 350) self.printMessage(self.message4, self.white, 485, 370) self.printMessage(self.message5, self.white, 482, 390) self.printMessage(self.message2, self.red, 510, 250) self.printMessage(self.message3, self.red, 470, 280) pygame.display.update() for event in pygame.event.get(): if event.type == pygame.QUIT: self.gameOverDone = False pygame.quit() quit() if event.type == pygame.KEYDOWN: if event.key == pygame.K_r: self.donkey.newGame() for fires in self.fire_list: self.fire_list.remove(fires) self.gameOver = False self.check = 0 if event.key == pygame.K_q: self.gameOverDone = False pygame.quit() quit() for event in pygame.event.get(): if event.type == pygame.QUIT: self.gameOverDone = False pygame.quit() quit() if event.type == pygame.KEYDOWN: if event.key == pygame.K_a: self.donkey.moveLeft() self.canHorizontal() elif event.key == pygame.K_d: self.donkey.moveRight() self.canHorizontal() elif event.key == pygame.K_w: self.donkey.moveUp() self.checkWall_Up() elif event.key == pygame.K_s: self.donkey.moveDown() self.checkWall_Down() elif event.key == pygame.K_SPACE: self.Jump() if event.type == pygame.KEYUP: self.donkey.reset() #Increment Counter self.counter += 1 #The very first and bottom most layer self.DISPLAYSURF.fill(self.black) #Once the background has been generated we make the board self.generateBoard(self.check) #MoveHuman self.man.Update(220,600) #MakeBananas self.makeBananas(20,self.check) #MakeFire if self.counter % 120 == 0 : self.makeFire() self.check = 1 #Implement Gravity self.gravity() #Make the ladders self.makeLadders() #Function Call the check if over flow occurs self.boundaryCheck() self.donkey.canClimbUp = False self.donkey.update() #self.fire_list.draw(self.DISPLAYSURF) self.checkCollision() self.banana_list.draw(self.DISPLAYSURF) self.collectCoin() #Change the Display location of the self.donkey self.renderImage(self.donkey.body, self.donkey.x, self.donkey.y) self.renderImage(self.man.player, self.man.x, self.man.y) self.renderImage(self.queen.image, self.queen.rect.x, self.queen.rect.y) #Constantly Check if the Game is over self.gameOver = self.checkGameStatus() #Showing the message self.message = "Score : "+str(self.donkey.score) self.printMessage(self.message, self.white, 1100, 10) self.message = " Lives : "+str(self.donkey.lives) self.printMessage(self.message, self.white, 1100, 40) #Update the screen to show the latest changes pygame.display.update() self.clock.tick(60)
def main(): # print while (1): global lives global score if (lives == 0): break screen = Screen(score) screen.generatecoin() screen.printscreen() pl = Player(24, 1) dn = Donkey(4, 1) # dn.donkeyposition(screen) while (1): global cnt global firefl cnt += 1 ch = getchar() if (ch == 'q'): lives = 0 break if (cnt == 10): fb = Fireball(dn.getx(), dn.gety()) fb.move(screen) firefl = 1 cnt = -10000 if (firefl == 1): fb.move(screen) if (fb.getx() == pl.getx() and fb.gety() == pl.gety()): lives -= 1 score = screen.getscore() score -= 50 os.system("clear") break if (dn.getx() == pl.getx() and dn.gety() == pl.gety()): lives -= 1 os.system("clear") score = screen.getscore() score -= 50 break dn.move(screen) if (firefl == 1): # fb.move(screen) if (fb.getx() == pl.getx() and fb.gety() == pl.gety()): lives -= 1 score = screen.getscore() score -= 50 os.system("clear") break if (dn.getx() == pl.getx() and dn.gety() == pl.gety()): lives -= 1 os.system("clear") score = screen.getscore() score -= 25 break pl.move(ch, screen) if (firefl == 1): # fb.move(screen) if (fb.getx() == pl.getx() and fb.gety() == pl.gety()): lives -= 1 score = screen.getscore() score -= 50 os.system("clear") break if (dn.getx() == pl.getx() and dn.gety() == pl.gety()): lives -= 1 os.system("clear") score = screen.getscore() score -= 50 break if (pl.gety() == 28 and pl.getx() == 1): score = screen.getscore() score += 50 os.system("clear") print "Bravo!!! You saved your Queen" print 'You get 50 bonus points' lives = 3 break print "Your Score:" print screen.getscore() print "Ooops!!! Game Over: Your Final Score was:", print screen.getscore()
print("\n\n\n\n") print "\033[1;42mPlay it on full screen\033[1;m", print "\t\t\033[1;42mPress any key to Continue...\033[1;m" input = getchar() score = 0 while True: draw_layout = Board(30,90) draw_layout.create_board(); coins = Coins(random.randint(6,8)) coins.create_coins(draw_layout.get_Matrix()) queen = Queen() queen.locate_queen(draw_layout.get_Matrix()) player = Player(28,2,score) donkey = Donkey(4,6) donkey.locate_donkey(draw_layout.get_Matrix()) track_time = 0 fbList = [] fb = FireBalls(donkey.getPosition(),draw_layout.get_Matrix()) fbList.append(fb) player.print_player(draw_layout.get_Matrix()) count = 1 it = 0 if (life == -1): os.system('clear') print("\n\n\n\n\n\n\n\n\n")