def test_fight_simulation(self): hero = Hero("Natsu", 10000, "DragonSlayer") orc = Orc("BadOrc", 100, 2) fight = Fight(hero, orc) dragonpower = Weapon("Dragonpower", 200, 0.8) axe = Weapon("Axe", 120, 0.4) fight.hero.weapon = dragonpower fight.orc.weapon = axe fight.simulate_fight() self.assertEqual(fight.orc.battlehp, 0) self.assertTrue(fight.hero.battlehp > 0)
class TestFightClass(unittest.TestCase): def setUp(self): self.hero = Hero('Arthas', 3500, 'Lich King') self.orc = Orc('Garrosh', 3500, 1.2) self.frostmourne = Weapon('Sword', 250, 0.8) self.gorehowl = Weapon('Axe', 350, 0.2) self.hero.equip_weapon(self.frostmourne) self.orc.equip_weapon(self.gorehowl) self.fight = Fight(self.hero, self.orc) def test_initialing(self): self.assertIsInstance(self.fight.hero, Hero) self.assertIsInstance(self.fight.orc, Orc) def test_who_is_first(self): first = [] for i in range(10): self.fight = Fight(self.hero, self.orc) first.append(self.fight.first) flag = [False, False] for i in first: if isinstance(i, Hero): flag[0] = True elif isinstance(i, Orc): flag[1] = True self.assertEqual(flag, [True, True]) def test_simulate_fight_Hero_Wins(self): self.orc = Orc('Gul Dan', 500, 1) self.fight = Fight(self.hero, self.orc) self.assertEqual(self.fight.simulate_fight(), 'hero wins') def test_simulate_fight_Orc_Wins(self): self.hero = Hero('Tirion', 500, 'The AshBringer') self.fight = Fight(self.hero, self.orc) self.assertEqual(self.fight.simulate_fight(), 'orc wins') def test_simulate_first_wins(self): self.hero = Hero('Tirion', 1000, 'The AshBringer') self.orc = Orc('Gul Dan', 1000, 1) weapon = Weapon('Sword', 200, 0) self.hero.equip_weapon(weapon) self.orc.equip_weapon(weapon) self.fight = Fight(self.hero, self.orc) if isinstance(self.fight.first, Hero): winer = 'hero wins' else: winer = 'orc wins' self.assertEqual(self.fight.simulate_fight(), winer)
class Test_Fight(unittest.TestCase): def setUp(self): self.testOrc = Orc("TestOrc", 100, 1.4) self.testHero = Hero("TestHero", 100, "Tester") self.testOrc.weapon = Weapon("TestBrick", 30, 0.3) self.testHero.weapon = Weapon("TestOrcSlapper", 50, 0.6) self.testFight = Fight(self.testOrc, self.testHero) def test_simulate_fight(self): result = self.testFight.simulate_fight() self.assertIn(result, [self.testOrc, self.testHero]) def test_simulate_fight_with_no_weapons_equipped(self): self.testOrc.weapon = None self.testHero.weapon = None result = self.testFight.simulate_fight() self.assertEqual(result, "No winner")
class TestFight(unittest.TestCase): def setUp(self): self.hero = Hero("Gosho", 30, "Goshko") self.orc = Orc("Pesho", 100, 1.3) self.fight = Fight(self.hero, self.orc) self.weapon = Weapon("qax", 40, 0.3) self.hero.weapon = self.weapon self.orc.weapon = self.weapon def test_simulate_fight(self): self.fight.simulate_fight() self.assertFalse(self.orc.is_alive() and self.hero.is_alive()) def test_simulate_fight_orc_no_weapon(self): self.fight.simulate_fight() self.orc.weapon = None self.assertFalse(self.orc.is_alive() and self.hero.is_alive())
def fight(self, output, player1, player2, p1name, p2name, pos1, pos2, ind1, path): fight = Fight(player1, player2) winner = fight.simulate_fight() if winner == player1: output[pos1] = "." output[pos2] = ind1 del self.spawnlist[p2name] self.spawnedplayers.remove(p2name) elif winner == player2: output[pos1] = "." del self.spawnlist[p1name] self.spawnedplayers.remove(p1name) self.reinitialize_file(path, output)
def main(self): frostmourne = Weapon('Sword', 400, 0.8) gorehowl = Weapon('Axe', 400, 0.3) hero = Hero('Arthas', 10000, 'Lich King') orc = Orc('Hellscream', 12000, 1.5) hero.equip_weapon(frostmourne) orc.equip_weapon(gorehowl) self.set_player('player_1', hero) self.set_player('player_2', orc) self.set_player_position(self.player_1, [50, 50]) self.set_player_position(self.player_2, [350, 350]) winner = 'no one' myfont = pygame.font.SysFont("monospace", 20) clock = pygame.time.Clock() while True: self.screen.fill((100, 0, 0)) self.draw_players() pygame.display.update() for event in pygame.event.get(): if event.type == QUIT: pygame.quit() sys.exit() if event.type == KEYDOWN: self.move_players(event.key) if colide(self.player_1.position, self.player_2.position): fight = Fight(self.player_1.entity, self.player_2.entity) winner = fight.simulate_fight() break self.draw_players() pygame.display.update() clock.tick(30) while True: self.screen.fill((100, 0, 0)) pygame.display.update() print_text = myfont.render(winner, 1, (0, 100, 0)) self.screen.blit(print_text, (50, 50)) pygame.display.update() clock.tick(30)