示例#1
0
class HorseTestCase(unittest.TestCase):
    def setUp(self):
        self.horse = Horse(n=300, x=1, y=1)

    def test_shortest_path(self):
        print self.horse.shortest_path_bfs()
        
#        
#    def test_create_graph(self):
#        self.horse.create_graph()
#        print self.horse.graph
    
    def test_possibile_moves(self):
        horse10 = Horse(n=10, x=1, y=1)
        possible_moves = horse10.possible_moves(7, 7)
        self.assertEqual(possible_moves, 
                         [{'y': 9, 'x': 8}, {'y': 8, 'x': 9}, 
                          {'y': 6, 'x': 9}, {'y': 5, 'x': 8}, 
                          {'y': 5, 'x': 6}, {'y': 6, 'x': 5}, 
                          {'y': 8, 'x': 5}, {'y': 9, 'x': 6}])
        
        
        possible_moves = horse10.possible_moves(10, 10)
        self.assertEqual(possible_moves, [{'y': 8, 'x': 9}, {'y': 9, 'x': 8}])
        
        # test the 1 off case that it also is able to move to a position on the 10th row
        possible_moves = horse10.possible_moves(9, 10)
        self.assertEqual(possible_moves, [{'y': 8, 'x': 10}, {'y': 8, 'x': 8}, {'y': 9, 'x': 7}])
        
        possible_moves = horse10.possible_moves(1, 1)
        self.assertEqual(possible_moves, [{'y': 3, 'x': 2}, {'y': 2, 'x': 3}])
示例#2
0
 def test_possibile_moves(self):
     horse10 = Horse(n=10, x=1, y=1)
     possible_moves = horse10.possible_moves(7, 7)
     self.assertEqual(possible_moves, 
                      [{'y': 9, 'x': 8}, {'y': 8, 'x': 9}, 
                       {'y': 6, 'x': 9}, {'y': 5, 'x': 8}, 
                       {'y': 5, 'x': 6}, {'y': 6, 'x': 5}, 
                       {'y': 8, 'x': 5}, {'y': 9, 'x': 6}])
     
     
     possible_moves = horse10.possible_moves(10, 10)
     self.assertEqual(possible_moves, [{'y': 8, 'x': 9}, {'y': 9, 'x': 8}])
     
     # test the 1 off case that it also is able to move to a position on the 10th row
     possible_moves = horse10.possible_moves(9, 10)
     self.assertEqual(possible_moves, [{'y': 8, 'x': 10}, {'y': 8, 'x': 8}, {'y': 9, 'x': 7}])
     
     possible_moves = horse10.possible_moves(1, 1)
     self.assertEqual(possible_moves, [{'y': 3, 'x': 2}, {'y': 2, 'x': 3}])
示例#3
0
colours = [
    "red",
    "blue",
    "yellow",
    "pink",
    "orange",
]


def race_horses(horses):
    return random.choice(horses)


while money > 0:
    print(f"Welcome to the race! You have £{money:.2f}. Your horses are: ")
    horses = [Horse.random(colour) for colour in colours]

    for number, horse in enumerate(horses):
        print(f"{number} - {horse} - {horse.info()}")

    which_horse = int(input("What horse do you want to gamble on?"))
    which_howmuch = float(input("How much do you want to throw away?"))

    money = round(money - which_howmuch, 2)

    winner = race_horses(horses)

    os.system('clear')

    print(
        f"You bet on {horses[which_horse].name}, the winner is {winner.name}")
示例#4
0
__author__ = 'Andrew'
from horse import Horse

horse1 = Horse()
horse2 = Horse()
horse3 = Horse()

horse1.reset()
horse2.reset()
horse3.reset()
horse1.advance()
horse1.advance()
horse2.advance()
horse1.slow_down()

result1 = horse1.getValue()
print("Steps for horse1:", result1)

result2 = horse2.getValue()
print("Steps for horse1:", result2)

result3 = horse3.getValue()
print("Steps for horse1:", result3)
示例#5
0
from animal import Animal
from horse import Horse
from pig import Pig

if __name__ == "__main__":
    cow = Animal()
    cow.speak()
    horse = Horse("Bill")
    horse.speak()
    horse2 = Horse("Joe")
    horse.get_name()
    horse2.get_name()
    pig = Pig("Rob")
    pig.speak()
    pig.get_name()
示例#6
0
 def setUp(self):
     self.horse = Horse(n=300, x=1, y=1)
示例#7
0
 def spawnHorse(self, box):
     horse = Horse(box, self.global_horse_number)
     self.global_horse_number += 1
     logger.info(f'spawn horse {horse.number}')
     self.horses = np.append(self.horses, horse)
     return horse
示例#8
0
文件: 01.py 项目: flyanger/pytest
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import pygame
from horse import Horse

pygame.init()
screen = pygame.display.set_mode([800, 600])
img_bg = pygame.image.load("d:/test1/bk.jpg")
h1 = [
    Horse("小兔", 5, "d:/test1/u33.jpg", 100),
    Horse("laotu", 5, "d:/test1/u33.jpg", 200),
    Horse("lao", 5, "d:/test1/u33.jpg", 300)
]
while True:
    screen.blit(img_bg, (0, 0))
    for h in h1:
        screen.blit(h.get_image(), h.get_location())
        h.run()
    pygame.display.update()
    pygame.time.delay(500)
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            pygame.quit()
示例#9
0
import sys

from horse import Horse

for i in range(0, int(sys.argv[1])):
    h = Horse()
    print(h.name)
示例#10
0
class Game:
    def __init__(self):
        self.width = 1400
        self.height = 800
        self.game_display = None
        self.background = (255, 230, 220)
        self.ground = 7 * self.height / 8
        self.clock = pygame.time.Clock()
        self.FPS = 60
        self.font_size = 20
        self.font = None
        self.points = 0
        self.g = 0.96
        self.player = Horse(self)
        self.obstacles = list()
        self.time_obs = 0
        self.time = 0

    def draw_obj(self, obj):
        self.game_display.blit(obj.img, (obj.x, obj.y))
        rect = obj.img.get_rect()
        rect.topleft = (obj.x, obj.y)
        pygame.draw.rect(self.game_display, (0, 0, 0), rect, 2)

    def draw_menu(self):
        num_obs = len([ob for ob in self.obstacles])
        obs = self.font.render('Obstacles: {}'.format(num_obs), True,
                               (0, 0, 0))
        rect = obs.get_rect()
        rect.topleft = (0, 0)
        self.game_display.blit(obs, rect)
        obs = self.font.render('Points: {}'.format(self.time / 10), True,
                               (0, 0, 0))
        rect = obs.get_rect()
        rect.topleft = (0, self.font_size)
        self.game_display.blit(obs, rect)

    def start_game(self):
        pygame.init()
        self.game_display = pygame.display.set_mode((self.width, self.height))
        self.font = pygame.font.Font('TypewriterScribbled.ttf', self.font_size)
        quit_game = False

        while not quit_game:
            self.time += 1
            self.game_display.fill(self.background)
            pygame.draw.line(self.game_display, (0, 0, 0), (0, self.ground),
                             (self.width, self.ground), 10)
            self.draw_menu()
            self.draw_obj(self.player)
            self.player.move()
            self.time_obs += 1 if self.time_obs > 0 else 0
            self.time_obs = 0 if self.time_obs == 40 else self.time_obs
            if random.random() < 0.008 and self.time_obs == 0:
                self.obstacles.append(Obstacle(self))
                self.time_obs += 1
            self.obstacles = [
                ob for ob in self.obstacles if ob.x > -110 and not ob.remove
            ]
            keys = pygame.key.get_pressed()
            if keys[pygame.K_DOWN]:
                self.player.crouch()
            for event in pygame.event.get():
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_SPACE or event.key == pygame.K_UP:
                        self.player.jump()
                if event.type == pygame.KEYUP:
                    if event.key == pygame.K_DOWN:
                        self.player.erect()
                if event.type == pygame.QUIT:
                    quit_game = True
                    pygame.quit()
                    quit()
            pygame.display.flip()
            for ob in self.obstacles:
                self.draw_obj(ob)
                ob.move()
                if i.closed(ob.x, ob.x + ob.width).overlaps(i.closed(self.player.x, self.player.x + self.player.width)) \
                        and i.closed(ob.y, ob.y + ob.height).overlaps(
                        i.closed(self.player.y, self.player.y + self.player.height)):
                    quit_game = True
                    pygame.quit()
                    quit()
            pygame.display.flip()
            self.clock.tick(self.FPS)
示例#11
0
from animal import Animal
from dog import Dog
from horse import Horse

a = Animal()
d = Dog()
h = Horse()

a.speak()
a.sleep()

d.speak()
d.sleep()

h.speak()
h.sleep()
示例#12
0
from horse import Horse
from race import Race

name_horse1 = input("Nombre del primer caballo: ")
name_horse2 = input("Nombre del segundo caballo: ")

horse1 = Horse(name_horse1)
horse2 = Horse(name_horse2)

race = Race(horse1, horse2)

race.start()
示例#13
0
    def __init__(self):
        """
        This constructor instantiates a game board, instantiates and adds the game piece objects to the board,
        initializes the game state to "unfinished",  initializes the current turn as the red players,
        and initializes the in-check status of the players.
        """
        self._board = self._board = {
            "a1": None,
            "b1": None,
            "c1": None,
            "d1": None,
            "e1": None,
            "f1": None,
            "g1": None,
            "h1": None,
            "i1": None,
            # row 2
            "a2": None,
            "b2": None,
            "c2": None,
            "d2": None,
            "e2": None,
            "f2": None,
            "g2": None,
            "h2": None,
            "i2": None,
            # row 3
            "a3": None,
            "b3": None,
            "c3": None,
            "d3": None,
            "e3": None,
            "f3": None,
            "g3": None,
            "h3": None,
            "i3": None,
            # row 4
            "a4": None,
            "b4": None,
            "c4": None,
            "d4": None,
            "e4": None,
            "f4": None,
            "g4": None,
            "h4": None,
            "i4": None,
            # row 5
            "a5": None,
            "b5": None,
            "c5": None,
            "d5": None,
            "e5": None,
            "f5": None,
            "g5": None,
            "h5": None,
            "i5": None,
            # row 6
            "a6": None,
            "b6": None,
            "c6": None,
            "d6": None,
            "e6": None,
            "f6": None,
            "g6": None,
            "h6": None,
            "i6": None,
            # row 7
            "a7": None,
            "b7": None,
            "c7": None,
            "d7": None,
            "e7": None,
            "f7": None,
            "g7": None,
            "h7": None,
            "i7": None,
            # row 8
            "a8": None,
            "b8": None,
            "c8": None,
            "d8": None,
            "e8": None,
            "f8": None,
            "g8": None,
            "h8": None,
            "i8": None,
            # row 9
            "a9": None,
            "b9": None,
            "c9": None,
            "d9": None,
            "e9": None,
            "f9": None,
            "g9": None,
            "h9": None,
            "i9": None,
            # row 10
            "a10": None,
            "b10": None,
            "c10": None,
            "d10": None,
            "e10": None,
            "f10": None,
            "g10": None,
            "h10": None,
            "i10": None,
        }
        self._red_pieces = []
        self._black_pieces = []

        red_char_1 = Chariot("red", "a1")
        self.update_board("a1", red_char_1)
        self._red_pieces.append(red_char_1)

        black_char_1 = Chariot("Black", "a10")
        self.update_board("a10", black_char_1)
        self._black_pieces.append(black_char_1)

        red_horse_1 = Horse("red", "b1")
        self.update_board("b1", red_horse_1)
        self._red_pieces.append(red_horse_1)

        black_horse_1 = Horse("black", "b10")
        self.update_board("b10", black_horse_1)
        self._black_pieces.append(black_horse_1)

        red_ele_1 = Elephant("red", "c1")
        self.update_board("c1", red_ele_1)
        self._red_pieces.append(red_ele_1)

        black_ele_1 = Elephant("black", "c10")
        self.update_board("c10", black_ele_1)
        self._black_pieces.append(black_ele_1)

        red_adv_1 = Advisor("red", "d1")
        self.update_board("d1", red_adv_1)
        self._red_pieces.append(red_adv_1)

        black_adv_1 = Advisor("black", "d10")
        self.update_board("d10", black_adv_1)
        self._black_pieces.append(black_adv_1)

        red_gen = General("red", "e1")
        self.update_board("e1", red_gen)
        self._red_pieces.append(red_gen)

        black_gen = General("Black", "e10")
        self.update_board("e10", black_gen)
        self._black_pieces.append(black_gen)

        red_adv_2 = Advisor("Red", "f1")
        self.update_board("f1", red_adv_2)
        self._red_pieces.append(red_adv_2)

        black_adv_2 = Advisor("black", "f10")
        self.update_board("f10", black_adv_2)
        self._black_pieces.append(black_adv_2)

        red_ele_2 = Elephant("red", "g1")
        self.update_board("g1", red_ele_2)
        self._red_pieces.append(red_ele_2)

        black_ele_2 = Elephant("black", "g10")
        self.update_board("g10", black_ele_2)
        self._black_pieces.append(black_ele_2)

        red_horse_2 = Horse("red", "h1")
        self.update_board("h1", red_horse_2)
        self._red_pieces.append(red_horse_2)

        black_horse_2 = Horse("black", "h10")
        self.update_board("h10", black_horse_2)
        self._black_pieces.append(black_horse_2)

        red_char_2 = Chariot("red", "i1")
        self.update_board("i1", red_char_2)
        self._red_pieces.append(red_char_2)

        black_char_2 = Chariot("black", "i10")
        self.update_board("i10", black_char_2)
        self._black_pieces.append(black_char_2)

        red_can_1 = Cannon("red", "b3")
        self.update_board("b3", red_can_1)
        self._red_pieces.append(red_can_1)

        black_can_1 = Cannon("black", "b8")
        self.update_board("b8", black_can_1)
        self._black_pieces.append(black_can_1)

        red_can_2 = Cannon("red", "h3")
        self.update_board("h3", red_can_2)
        self._red_pieces.append(red_can_2)

        black_can_2 = Cannon("black", "h8")
        self.update_board("h8", black_can_2)
        self._black_pieces.append(black_can_2)

        red_sol_1 = Soldier("red", "a4")
        self.update_board("a4", red_sol_1)
        self._red_pieces.append(red_sol_1)

        red_sol_2 = Soldier("red", "c4")
        self.update_board("c4", red_sol_2)
        self._red_pieces.append(red_sol_2)

        red_sol_3 = Soldier("red", "e4")
        self.update_board("e4", red_sol_3)
        self._red_pieces.append(red_sol_3)

        red_sol_4 = Soldier("red", "g4")
        self.update_board("g4", red_sol_4)
        self._red_pieces.append(red_sol_4)

        red_sol_5 = Soldier("red", "i4")
        self.update_board("i4", red_sol_5)
        self._red_pieces.append(red_sol_5)

        black_sol_1 = Soldier("black", "a7")
        self.update_board("a7", black_sol_1)
        self._black_pieces.append(black_sol_1)

        black_sol_2 = Soldier("black", "c7")
        self.update_board("c7", black_sol_2)
        self._black_pieces.append(black_sol_2)

        black_sol_3 = Soldier("black", "e7")
        self.update_board("e7", black_sol_3)
        self._black_pieces.append(black_sol_3)

        black_sol_4 = Soldier("black", "g7")
        self.update_board("g7", black_sol_4)
        self._black_pieces.append(black_sol_4)

        black_sol_5 = Soldier("black", "i7")
        self.update_board("i7", black_sol_5)
        self._black_pieces.append(black_sol_5)

        self._game_state = "UNFINISHED"
        self._turn = True

        self.generate_moves()

        self._red_in_check = {"red": False}
        self._black_in_check = {"black": False}