def test_cant_move_pawn_two_sq__after_first_move(self): gm = GameMaster() gm.set_board() pawn = gm.piece_at_square("D2") self.assertEqual(pawn.name, Piece.PAWN) self.assertEqual(pawn.color, Piece.WHITE) gm.move_piece("Pd3", Piece.WHITE) pawn = gm.piece_at_square("D3") self.assertEqual(pawn.name, Piece.PAWN) self.assertEqual(pawn.color, Piece.WHITE) gm.move_piece("Pd5", Piece.WHITE)
def test_move_pawn_two_sq(self): gm = GameMaster() gm.set_board() pawn = gm.piece_at_square("D2") self.assertEqual(pawn.name, Piece.PAWN) self.assertEqual(pawn.color, Piece.WHITE) gm.move_piece("Pd4", Piece.WHITE) pawn = gm.piece_at_square("D4") self.assertEqual(pawn.name, Piece.PAWN) self.assertEqual(pawn.color, Piece.WHITE)
def test_capture_list(self): gm = GameMaster() gm.set_board() # NOTE: at time of test authorship, pieces are not yet restricted by # intervening pieces. Thus, white queen can just hop over the pawns # in the way. Following TDD, this test will need updating when that # functionality is implemented. gm.move_piece("qd8", Piece.WHITE) self.assertEqual(len(gm.white_captures), 1) self.assertEqual(gm.white_captures[0], 'bQ')
def main(): gm = GameMaster() player_turn = 1 while gm.checkGameState() <= 3: os.system('clear') print(gm.drawBoard(player=1)) if player_turn == 1: print("It is your turn to give a clue") print(f"Enter a clue (single word:") word = getStrInput("Please enter a single word", lambda x: len(x.split()) == 1) word = word.strip() print(f"How many words does this clue apply to?") count = getIntInput() guesses = gm.submitClue(word, count, player=1) print("The computer has guessed: {}".format(" ".join(guesses))) print("Press enter to contine...") input() player_turn = 2 else: print("It is the computer's turn to give a clue") print("Please wait while it thinks...") clue, target_count = gm.getClue() print("The clue is: {}".format(clue)) if target_count > 1: print("It is directed at {} target words".format(target_count)) else: print("It is directed at {} target word".format(target_count)) guess_count = 0 while guess_count < target_count: guess_count += 1 print("please enter a target word to guess") guess = getStrInput() result = gm.submitGuess([guess], player=2) print("You guessed a {} word".format(result)) print("Press enter to contine...") input() player_turn = 1
def __init__(self, *, test=False): self.load() self.testver = test self.gm = GameMaster(self)
def test_parse_input(self): result = GameMaster.parse_input('d2') self.assertEqual(result, ('d', 2))
def test_gm_can_report_piece_at_square(self): gm = GameMaster() gm.set_board() piece = gm.piece_at_square('d2') self.assertEqual(piece.name, Piece.PAWN)
def test_set_board__sets_board(self): gm = GameMaster() gm.chessboard = MagicMock() gm.set_board() assert gm.chessboard.set_board().called_once
def terminalfighter(screen): pygame.mixer.music.load("TerminalFighterPrototypeTheme.ogg") pygame.mixer.music.play(loops=-1) pygame.mixer.music.set_volume(1.1) print("volume is " + str(pygame.mixer.music.get_volume())) universe = Universe((GAME_WIDTH, GAME_HEIGHT)) score_counter = ScoreCounter(1) spawn_controller = SpawnController(universe, score_counter) gamemaster = GameMaster(universe, spawn_controller, score_counter) # pygame ticks, one tick is 1/1000 second # 15 pygame ticks per update is approximately 30 updates per second FRAME_LENGTH_TICKS = 33 prev_frame_start_time = 0 while 1: frame_start_time = pygame.time.get_ticks() # print("Elapsed time since last update : " + str(frame_start_time - prev_frame_start_time)) prev_frame_start_time = frame_start_time update_start_time = pygame.time.get_ticks() events = pygame.event.get() for event in events: if event.type == pygame.QUIT: sys.exit() gamemaster.update(events) # print("update time : " + str(pygame.time.get_ticks() - update_start_time)) draw_start_time = pygame.time.get_ticks() gamemaster.draw(screen) # print("draw time : " + str(pygame.time.get_ticks() - draw_start_time)) flip_start_time = pygame.time.get_ticks() pygame.display.flip() # print("flip time : " + str(pygame.time.get_ticks() - flip_start_time)) if gamemaster.universe_.main_character().health_ <= 0: pygame.mixer.music.stop() gameover_font = pygame.font.SysFont("monospace", 120) gameover_label = gameover_font.render("GAME OVER", 1, WHITE) screen.blit( gameover_label, (screen.get_width() / 2 - gameover_label.get_width() / 2, screen.get_height() / 2 - gameover_label.get_height() / 2)) highscore_font = pygame.font.SysFont("monospace", 30) highscore_text = "Highscore : " if not highscore_service.get_highscore() or \ highscore_service.get_highscore() < gamemaster.score_counter_.score_: highscore_service.update_highscore( gamemaster.score_counter_.score_) highscore_text += str( highscore_service.get_highscore()) + " NEW HIGHSCORE" else: highscore_text += str(highscore_service.get_highscore()) highscore_label = highscore_font.render(highscore_text, 1, WHITE) screen.blit( highscore_label, (screen.get_width() / 2 - highscore_label.get_width() / 2, screen.get_height() / 2 + gameover_label.get_height() / 2 + highscore_label.get_height() / 2)) press_any_key_font = pygame.font.SysFont("monospace", 30) press_any_key_label = press_any_key_font.render( "Press any key...", 1, WHITE) screen.blit( press_any_key_label, (screen.get_width() / 2 - press_any_key_label.get_width() / 2, screen.get_height() / 2 + gameover_label.get_height() / 2 + highscore_label.get_height() + press_any_key_label.get_height() / 2)) pygame.display.flip() pygame.time.delay(1000) pygame.event.clear() while 1: for event in pygame.event.get(): if event.type == pygame.QUIT: sys.exit() elif event.type == pygame.KEYDOWN: return "MENU" frame_end_time = pygame.time.get_ticks() frame_time_elapsed = frame_end_time - frame_start_time if frame_time_elapsed < FRAME_LENGTH_TICKS: pygame.time.wait(FRAME_LENGTH_TICKS - frame_time_elapsed) else: print("WARNING: Cannot keep up with 30FPS update time!")
from gamemaster import GameMaster import os from piece import Piece gm = GameMaster() os.system('cls' if os.name == 'nt' else 'clear') turn = Piece.WHITE gm.set_board() gm.set_turn(turn) gm.print_board(Piece.WHITE) movement = input() while movement != 'quit': if movement == "setboard": gm.set_board() os.system('cls' if os.name == 'nt' else 'clear') gm.print_board(Piece.WHITE) movement = input() gm.move_piece(movement, turn) os.system('cls' if os.name == 'nt' else 'clear') turn = gm.switch_turn() gm.print_board(Piece.WHITE) movement = input()
from tornado import ioloop, web, websocket import json from gamemaster import GameMaster gamemaster = GameMaster() connections = [] class GameWebSocket(websocket.WebSocketHandler): def check_origin(self, origin): return True def open(self): print('socket opened') connections.append(self) self.send_open_games() def on_message(self, message): data = json.loads(message) print(message) type = data.get("type", "") if type == "new-game": game_id = gamemaster.create_game(self) self.send_message(type='new-game', game_id=game_id) self.send_open_games() elif type == "join_game": game_id = data.get('game_id') game_to_join = gamemaster.join_game(game_id, self) if game_to_join: