Krok 5: wygrana

Duchy w zamku - Gry w Pythonie - przykłady (Python)

Można wygrać: 10 kluczy zmienia stan na `"win"` i pokazuje `Wygrana!`. Gra ma teraz trzy stany: gra, przegrana i wygrana.

import random

class Game(Sprite):
  def __init__(self):
    self.size = 12
    self.color = (99, 102, 241)
    self.position = (0, 88)
    self.keys = 0
    self.lives = 3
    self.state = "play"

  def update(self):
    if self.state == "play":
      self.position = (0, 88)
      self.text = f"Klucze: {self.keys}  Życia: {self.lives}"
      if self.lives <= 0:
        self.state = "over"
      if self.keys >= 10:
        self.state = "win"
    if self.state == "over":
      self.position = (0, 0)
      self.text = f"Koniec gry! Klucze: {self.keys}"
    if self.state == "win":
      self.position = (0, 0)
      self.text = f"Wygrana! Klucze: {self.keys}"

class Wizard(Sprite):
  def __init__(self):
    self.image = 0
    self.color = (124, 58, 237)
    self.size = 22
    self.rotate = False

  def update(self):
    if game.state != "play":
      return
    if world.key('right'):
      self.x = self.x + 3
    if world.key('left'):
      self.x = self.x - 3
    if world.key('up'):
      self.y = self.y + 3
    if world.key('down'):
      self.y = self.y - 3

class Key(Sprite):
  def __init__(self):
    self.image = 42
    self.color = (202, 138, 4)
    self.size = 16
    self.jump()

  def jump(self):
    self.position = (random.randint(-90, 90), random.randint(-90, 70))

  def update(self):
    if game.state != "play":
      return
    if self.touches(wizard):
      game.keys = game.keys + 1
      self.jump()

class Ghost(Sprite):
  def __init__(self):
    self.image = 17
    self.color = (100, 116, 139)
    self.size = 22
    self.rotate = False
    self.corner()

  def corner(self):
    self.position = random.choice([(-90, -90), (90, -90), (-90, 70), (90, 70)])

  def update(self):
    if game.state != "play":
      return
    self.point_towards(wizard)
    self.move(1)
    if self.touches(wizard):
      game.lives = game.lives - 1
      wizard.position = (0, 0)
      self.corner()

game = Game()
wizard = Wizard()
key = Key()
ghost = Ghost()
world.add(game)
world.add(key)
world.add(wizard)
world.add(ghost)
world.start()

Ładowanie interaktywnego edytora... Jeśli się nie pojawi, włącz JavaScript.

Wszystkie lekcje kursu Gry w Pythonie - przykłady·Zaloguj się, aby zapisać postęp na koncie.