예제 #1
0
파일: dungeon.py 프로젝트: skdls-/Python
def main():
    map = Dungeon("dungeon_map")
    goshko = Hero("Hero", 100, "Hero")
    Orko = Orc("Orko", 100, 1.5)
    Orko2 = Orc("Orko2", 100, 1.4)
    Orko3 = Orc("Orko3", 100, 1.4)
    map.spawn("Goshko", goshko)
    map.spawn("Orko", Orko)
    map.spawn("Orko2", Orko2)
    map.spawn("Orko3", Orko3)
    map.move("Goshko", "right")
    map.move("Goshko", "down")
    map.move("Goshko", "down")
    map.move("Goshko", "down")
    map.move("Goshko", "right")
    map.move("Goshko", "right")
    map.move("Goshko", "right")
    map.move("Goshko", "right")
    map.move("Goshko", "up")
    map.move("Goshko", "up")
    map.move("Goshko", "up")
    map.move("Goshko", "up")
    map.move("Goshko", "right")
    map.move("Goshko", "right")
    map.move("Goshko", "right")
    map.move("Goshko", "right")
    map.move("Goshko", "down")
    map.move("Goshko", "down")
    map.move("Goshko", "down")
    map.print_map()
    print(map.players["Goshko"].i_coord, map.players["Goshko"].j_coord)
    map.move("Orko", "up")
    map.print_map()
예제 #2
0
 def setUp(self):
     self.hero = Hero('Stoyan', 200, 'DeathBringer')
     self.hero.equip_weapon(Weapon('Sword', 20, 0.5))
     self.orc = Orc('Beginner Orc', 100, 1.5)
     self.orc.equip_weapon(Weapon('Stick', 10, 0.1))
     self.legendary_orc = Orc('Broksiguar', 200, 2)
     self.legendary_orc.equip_weapon(Weapon('Frostmourne', 80, 0.9))
     self.fight_hero_vs_orc = Fight(self.hero, self.orc)
     self.fight_hero_vs_legendary_orc = Fight(self.hero, self.legendary_orc)
예제 #3
0
 def test_simulate_fight_hero_win(self):
     orc_l = Orc("Loser", 300, 2)
     hero_w = Hero("Winner", 300, "TheWinner")
     wep = Weapon("Ubiec", 15, 0.5)
     hero_w.equip_weapon(wep)
     hero_fight = Fight(hero_w, orc_l)
     self.assertEqual(hero_fight.simulate_fight(), hero_fight._HERO_WINNER)
예제 #4
0
 def test_simulate_fight_orc_win(self):
     orc_w = Orc("Winner", 300, 2)
     hero_l = Hero("Loser", 300, "TheLoser")
     wep = Weapon("Ubiec", 15, 0.5)
     orc_w.equip_weapon(wep)
     orc_fight = Fight(hero_l, orc_w)
     self.assertEqual(orc_fight.simulate_fight(), orc_fight._ORC_WINNER)
예제 #5
0
 def setUp(self):
     self.orc = Orc("PeshoOrc", 100, 1.2)
     self.hero = Hero("PeshoHero", 100, "peshooo")
     self.weapon1 = Weapon("axe", 50, 0.5)
     self.weapon2 = Weapon("axe2", 70, 0.3)
     self.fighting = Fight(self.hero, self.orc)
     self.orc.weapon = self.weapon1
예제 #6
0
 def setUp(self):
     weapon = Weapon('Dagger', 10, 0.0)
     hero = Hero('Asd', 100, 'Hero')
     hero.equip_weapon(weapon)
     orc = Orc('Dsa', 1, 1.4)
     orc.equip_weapon(weapon)
     self.fight = fight.Fight(hero, orc)
예제 #7
0
 def setUp(self):
     self.orc = Orc("Berserk", 1000, 2)
     self.hero = Hero("Bron", 1000, "DragonSlayer")
     self.weapon = Weapon("Mighty Axe", 25, 0.3)
     self.orc.equip_weapon(self.weapon)
     self.hero.equip_weapon(self.weapon)
     self.fight = Fight(self.hero, self.orc)
예제 #8
0
 def test_battle(self):
     orc = Orc("Bron", 100, 1.3)
     hero = Hero("Bron", 100, "DragonSlayer")
     axe = Weapon("Mighty Axe", 25, 0.2)
     orc.weapon = axe
     self.my_map.spawn("player_1", orc)
     self.my_map.spawn("player_2", hero)
     self.my_map.move("player_1", "right")
     self.my_map.move("player_1", "left")
     self.my_map.move("player_1", "right")
     self.my_map.move("player_2", "up")
     self.my_map.move("player_1", "down")
     self.my_map.move("player_1", "down")
     self.my_map.move("player_1", "down")
     for i in range(0, 4):
         self.my_map.move("player_2", "up")
     for i in range(0, 4):
         self.my_map.move("player_2", "left")
     self.my_map.move("player_2", "down")
     self.my_map.move("player_2", "down")
     self.my_map.move("player_2", "down")
     self.my_map.move("player_1", "right")
     self.my_map.move("player_2", "left")
     self.my_map.move("player_2", "left")
     self.my_map.move("player_1", "right")
     self.assertEqual(
         self.my_map.print_map(),
         "..##......\n#.##..###.\n#.###.###.\n#..O..###.\n###.#####.\n")
예제 #9
0
 def test_move_down_no_where_to_go(self):
     boromir = Hero("Boromir", 100, "OneDoesNotSimply")
     gollum = Orc("Gollum", 100, 1.5)
     self.dungeon.spawn("player_1", boromir)
     self.dungeon.spawn("player_2", gollum)
     move_entity = self.dungeon.move("player_2", "down")
     self.assertFalse(move_entity)
예제 #10
0
 def test_move_right(self):
     orc = Orc("Bron", 100, 1.3)
     self.my_map.spawn("player_1", orc)
     self.my_map.move("player_1", "right")
     self.assertEqual(
         self.my_map.print_map(),
         ".O##......\n#.##..###.\n#.###.###.\n#.....###.\n###.#####S\n")
예제 #11
0
 def setUp(self):
     self.orc_goshe = Orc("Georgi", 100, 1.2)
     self.hero_slayer = Hero("DragonSlayer", 100, "Killer")
     self.axe = Weapon("Axe", 10, 0.2)
     self.sword = Weapon("Sword", 12, 0.5)
     self.orc_goshe.weapon = self.axe
     self.hero_slayer.weapon = self.sword
     self.battle_one = Fight(self.orc_goshe, self.hero_slayer)
예제 #12
0
 def test_fight1(self):
     new_hero = Hero("Jack", 100, "Ripper")
     new_orc = Orc("Gruumsh", 40, 1.2)
     hero_weapon = Weapon("The Sting", 8, 0.33)
     orc_weapon = Weapon("The Pacifier", 12, 1)
     new_hero.equip_weapon(hero_weapon)
     new_orc.equip_weapon(orc_weapon)
     Fight(new_hero, new_orc)
예제 #13
0
 def setUp(self):
     self.bron_hero = Hero("Bron", 100, "DragonSlayer")
     self.axe = Weapon("Mighty Axe", 25, 0.2)
     self.sword = Weapon("Mighty Sword", 12, 0.7)
     self.bron_orc = Orc("Bron", 100, 1.3)
     self.my_fight = Fight(self.bron_hero, self.bron_orc)
     self.bron_hero.weapon = self.sword
     self.bron_orc.weapon = self.axe
예제 #14
0
 def setUp(self):
     self.hero = Hero("Don Quixote", 9.99, "The Common Sense")
     self.orc = Orc("Oplik", 10, 0.3)
     self.fight = Fight(self.hero, self.orc)
     self.spoon = Weapon("Rounded Spoon", 2, 0.7)
     self.knife = Weapon("Rusty Knife", 6, 0.3)
     self.orc.weapon = self.knife
     self.hero.weapon = self.spoon
예제 #15
0
 def setUp(self):
     self.test_hero = Hero("Bron", 100, "DragonSlayer")
     self.test_ork = Orc("Vilasteros", 100, 1.34)
     self.bow = Weapon("Mighty Bow", 13, 0.17)
     self.axe = Weapon("Thunder Axe", 19, 0.25)
     self.test_ork.equip_weapon(self.bow)
     self.test_hero.equip_weapon(self.axe)
     self.battle = Fight(self.test_hero, self.test_ork)
예제 #16
0
 def test_Orc_attack_with_weapon(self):
     my_weapon = Weapon("Axe", 31, 0.2)
     my_Orc = Orc("Ivan", 100, 1.5)
     my_Orc.equip_weapon(my_weapon)
     attack = my_weapon.damage * (
         1 + my_weapon.critical_strike_percent) * my_Orc.berserk_factor
     true_attack = my_Orc.attack()
     self.assertEqual(attack, true_attack)
예제 #17
0
    def setUp(self):
        self.varyan = Hero("Varyan Wrynn", 100, "King")
        self.garrosh = Orc("Garrosh Hellscream", 100, 7)

        self.weak_weapon = Weapon("Noob Weapon", 10, 0.1)
        self.strong_weapon = Weapon("Woo Weapon", 20, 0.7)

        self.fight = Fight(self.varyan, self.garrosh)
예제 #18
0
 def setUp(self):
     self.hero = Hero("Bron", 100, "DragonSlayer")
     self.orc = Orc("Shapeshifter", 100, 1.5)
     sword = Weapon("Sword", 10, 0.2)
     axe = Weapon("Axe", 10, 0.2)
     self.hero.equip_weapon(sword)
     self.orc.equip_weapon(axe)
     self.battle = Fight(self.hero, self.orc)
예제 #19
0
 def test_spawn(self):
     hero = Hero('p1', 100, 'first')
     orc = Orc('p2', 100, 2)
     self.test_map.spawn('player1', hero)
     self.assertEqual('H', self.test_map.print_map()[36])
     self.assertEqual('S', self.test_map.print_map()[38])
     self.test_map.spawn('player2', orc)
     self.assertEqual('O', self.test_map.print_map()[38])
     self.assertEqual(False, self.test_map.spawn('player3', orc))
예제 #20
0
 def test_move_up(self):
     orc = Orc("Bron", 100, 1.3)
     hero = Hero("Bron", 100, "DragonSlayer")
     self.my_map.spawn("player_1", orc)
     self.my_map.spawn("player_2", hero)
     self.my_map.move("player_2", "up")
     self.assertEqual(
         self.my_map.print_map(),
         "O.##......\n#.##..###.\n#.###.###.\n#.....###H\n###.#####.\n")
예제 #21
0
    def test_spawn(self):
        boromir = Hero("Boromir", 100, "OneDoesNotSimply")
        gollum = Orc("Gollum", 100, 1.5)

        spawns = set()
        spawns.add(self.dungeon.spawn("player_1", boromir))
        spawns.add(self.dungeon.spawn("player_2", gollum))
        self.assertDictEqual({"player_1": [boromir, 0], "player_2": [gollum, 53]}, self.dungeon.spawned)
        self.assertIn(True, spawns)
예제 #22
0
    def setUp(self):
        file = open("test_file.txt", "w")
        content = ["S...S", "", "Spoon 4 0.2", "RustyFork 6 0.7"]
        file.write("\n".join(content))
        file.close()

        self.dungeon = Dungeon("test_file.txt")

        self.hero = Hero("Don Quixote", 20, "The Common Sense")
        self.orc = Orc("Oplik", 20, 1.5)
예제 #23
0
 def test_fight(self):
     my_Hero = Hero("Ivan", 100, "bad ass")
     my_Orc = Orc("Boko", 100, 1.5)
     my_weapon1 = Weapon("Axe1", 31, 0.2)
     my_weapon2 = Weapon("Axe2", 31, 0.2)
     my_Hero.equip_weapon(my_weapon1)
     my_Orc.equip_weapon(my_weapon2)
     fight1 = Fight(my_Hero, my_Orc)
     fight1.simulate_fight()
     self.assertFalse(my_Orc.is_alive() and my_Hero.is_alive())
예제 #24
0
    def setUp(self):
        self.existing_file = str(uuid4)
        self.test_map = \
            "S.##......\n#.##..###.\n#.###.###.\n#.....###.\n###.#####S"
        with open(self.existing_file, "w") as writeFile:
            writeFile.write(self.test_map)
        self.dungeon = Dungeon(self.existing_file)

        self.hero = Hero("Hero", 100, "Nick")
        self.orc = Orc("Orc", 100, 2)
예제 #25
0
 def test_start_fight_both_alive(self):
     fight_map = Dungeon("fight_map.txt")
     blademaster = Orc("Yurnero", 120, 1.2)
     fight_map.spawn("player_1", self.paladin)
     fight_map.spawn("player_2", blademaster)
     fight_map.move("player_1", "right")
     fight_map.move("player_2", "left")
     fight_map.move("player_1", "right")
     self.assertTrue(self.paladin.is_alive())
     self.assertTrue(blademaster.is_alive())
예제 #26
0
    def setUp(self):
        self.sniper = Weaphon("Gun", 85, 0.10)
        self.hammer = Weaphon("One-Hand", 30, 0)

        self.bron_orc = Orc("Pesho", 100, 1.50)
        self.bron_hero = Hero("Ivan", 100, "Magician")

        self.bron_orc.equip_weapon(self.hammer)
        self.bron_hero.equip_weapon(self.sniper)
        self.magura = Dungeon("/home/biser/TDD/simple_dungeon.txt")
예제 #27
0
    def test_spawn_no_more_space(self):
        boromir = Hero("Boromir", 100, "OneDoesNotSimply")
        gollum = Orc("Gollum", 100, 1.5)
        bilbo = Hero("Bilbo", 100, "Baggins")

        spawns = set()
        spawns.add(self.dungeon.spawn("player_1", boromir))
        spawns.add(self.dungeon.spawn("player_2", gollum))
        spawns.add(self.dungeon.spawn("player_3", bilbo))
        self.assertDictEqual({"player_1": [boromir, 0], "player_2": [gollum, 53]}, self.dungeon.spawned)
        self.assertIn(False, spawns)
예제 #28
0
 def setUp(self):
     test_dungeon = [
         "S.##......", "#.##..###.", "#.###.###.", "#.....###.",
         "###.#####S"
     ]
     self.test_dungeon_data = [list(i) for i in test_dungeon]
     self.map = Dungeon("basic_dungeon.txt")
     self.test_hero = Hero("Bron1", 100, "DragonSlayer")
     self.test_orc = Orc("Bron2", 100, 1.25)
     self.first_weapon = Weapon("BigAxe", 25, 0.2)
     self.second_weapon = Weapon("SmallAxe", 19, 0.7)
     self.line_map = Dungeon("line_map.txt")
예제 #29
0
 def test__fail_move_on_map(self):
     bron_orc = Orc("Bron", 100, 1.3)
     bron_hero = Hero("Bron", 100, "DragonSlayer")
     axe = Weapon("Mighty Axe", 25, 0.2)
     bron_orc.weapon = axe
     self.my_map.spawn("player_1", bron_orc)
     self.my_map.spawn("player_2", bron_hero)
     self.assertFalse(self.my_map.move("player_1", "left"))
     self.assertTrue(self.my_map.move("player_1", "right"))
     self.assertFalse(self.my_map.move("player_1", "up"))
     self.assertFalse(self.my_map.move("player_1", "right"))
     self.assertFalse(self.my_map.move("player_2", "down"))
예제 #30
0
    def test_fight(self):

        hero = Hero("LevskiHooligan", 650, "ChupimSkuli")
        orc = Orc("CskaSkinhead", 100, 3)
        fight = Fight(hero, orc)
        beer_bottle = Weapon("BeerBottle", 150, 0.8)
        metal_pipe = Weapon("MetalPipe", 180, 0.9)
        fight.hero.weapon = metal_pipe
        fight.orc.weapon = beer_bottle
        fight.simulate_fight()

        self.assertEqual(fight.orc.fight_health, 0)
        self.assertTrue(fight.hero.fight_health > 0)