Beispiel #1
0
    def reset(self):
        player_name = self.game.player_name
        self.game = Game(Constant.GRID_WIDTH, Constant.GRID_HEIGHT, self.audio_manager)
        self.game.player_name = player_name

        # Draw the state once before starting the game so that it is shown as the background of the start menu
        self.update_state()
Beispiel #2
0
    def __init__(self):
        self.offset = 0

        # setup stuff
        pygame.mixer.pre_init(44100, -16, 2, 512)
        pygame.init()
        self.window = pygame.display.set_mode((Constant.SCREEN_WIDTH, Constant.SCREEN_HEIGHT), 0, 32)
        pygame.font.init()
        self.font = pygame.font.SysFont("Arial", 20)
        self.audio_manager = AudioManager()
        self.game = Game(Constant.GRID_WIDTH, Constant.GRID_HEIGHT, self.audio_manager)

        self.pause_menu = PauseMenu(self.audio_manager, self.game)
        self.game_over_menu = GameOverMenu(self)
        self.game_start_menu = GameStartMenu(self)
        self.start_screen = StartScreen(self.window)

        self.audio_manager.play_song(song=Songs.ENERGIEK)
Beispiel #3
0
def movement(id):
    data = request.json
    try:
        resp = Game().play_human(id, data["player"], data["position"])
        return jsonify(resp)
    except GameDoesNotExist:
        response = {"msg": GAME_DOES_NOT_EXIST, "status_code": 404}
        return jsonify(response)
    except IncorrectPlayer:
        response = {"msg": INCORRECT_PLAYER, "status_code": 404}
        return jsonify(response)
Beispiel #4
0
def simulate(merge_param, monotonic_param, dup_param, occupation_param, vobose=False):
    """
    Simulates 2048 game.

    Returns True if win; otherwise, returns False.
    """
    game = Game()

    while True:
        movements = game.attempt_movement()
        if movements is None:
            # print("Lose")
            if vobose:
                game.print_tiles()
            return False
        if vobose:
            game.print_tiles()
        max_direction = decision_function(movements, game.get_tiles(), merge_param, monotonic_param, dup_param,
                                      occupation_param)
        if game.move(max_direction):
            if vobose:
                game.print_tiles()
            return True
Beispiel #5
0
import pygame

from main.game import Game

if __name__ == '__main__':
    Game().start()
    pygame.quit()
Beispiel #6
0
from main.game import Game

game = Game()

if __name__ == '__main__':
    game.game_start()
import sys

import pygame

from main import constants
from main.game import Game, SCREEN

pygame.init()
clock = pygame.time.Clock()

game = Game()

while True:
    for e in pygame.event.get():
        if e.type is pygame.QUIT:
            sys.exit()

    game.update()

    SCREEN.fill(constants.WHITE)

    game.draw()

    pygame.display.flip()

    clock.tick(60)

pygame.quit()
Beispiel #8
0
# This is a sample Python script.

from main.game import Game, DIFFICULTY

# Press the green button in the gutter to run the script.
if __name__ == '__main__':
    snake = Game(level=DIFFICULTY['easy'])
    snake.run()

# See PyCharm help at https://www.jetbrains.com/help/pycharm/
Beispiel #9
0
class Main:

    def __init__(self):
        self.offset = 0

        # setup stuff
        pygame.mixer.pre_init(44100, -16, 2, 512)
        pygame.init()
        self.window = pygame.display.set_mode((Constant.SCREEN_WIDTH, Constant.SCREEN_HEIGHT), 0, 32)
        pygame.font.init()
        self.font = pygame.font.SysFont("Arial", 20)
        self.audio_manager = AudioManager()
        self.game = Game(Constant.GRID_WIDTH, Constant.GRID_HEIGHT, self.audio_manager)

        self.pause_menu = PauseMenu(self.audio_manager, self.game)
        self.game_over_menu = GameOverMenu(self)
        self.game_start_menu = GameStartMenu(self)
        self.start_screen = StartScreen(self.window)

        self.audio_manager.play_song(song=Songs.ENERGIEK)

    # handle a pressed key event in the context of the game root
    def handle_key_press(self, event_key):
        self.pause_menu.handle_input(event_key)
        self.game_over_menu.handle_input(event_key)
        self.game_start_menu.handle_input(event_key)

        if event_key in [x for (x, y) in key_digit_events]:
            if not self.pause_menu.paused:
                for (x, y) in key_digit_events:
                    if x == event_key:
                        self.game.world.inventory.set_current_item(y)

    # Handle all pygame events
    def handle_events(self):
        for event in pygame.event.get():
            self.game.handle_input(event)
            if event.type == pygame.QUIT:
                self.game.world.emitter_handler.quit_thread()
                pygame.quit()
                sys.exit()
            if event.type == pygame.KEYDOWN:
                self.handle_key_press(event.key)
            if event.type == pygame.MOUSEBUTTONUP:
                pos = pygame.mouse.get_pos()
            if event.type == pygame.MOUSEWHEEL:
                if not self.pause_menu.paused:
                    if event.y == -1:
                        self.game.world.inventory.change_current_selected_item("right")
                    elif event.y == 1:
                        self.game.world.inventory.change_current_selected_item("left")
                    else:
                        print("What the frick kinda mousewheel action was that")

    # Do all updates to the game state in this function
    def update_state(self):
        self.window.fill((0, 0, 0))
        self.game.step()

        # call to the game controller drawing method
        self.game.draw(self.window)

    def run(self):
        # show a start screen
        self.start_screen.go()

        # Draw the state once before starting the game so that it is shown as the background of the start menu
        self.update_state()

        while True:
            start_time = time.time()

            # handle pygame events from the queue
            self.handle_events()

            if not self.pause_menu.draw(self.window) and not self.game_over_menu.draw(self.window) and not self.game_start_menu.draw(self.window):
                self.update_state()

            # possibly delay program execution to ensure steady frame rate
            running_time = time.time() - start_time
            if running_time < 1 / Constant.FRAME_RATE:
                time.sleep((1 / Constant.FRAME_RATE) - running_time)

            pygame.display.update()

    def reset(self):
        player_name = self.game.player_name
        self.game = Game(Constant.GRID_WIDTH, Constant.GRID_HEIGHT, self.audio_manager)
        self.game.player_name = player_name

        # Draw the state once before starting the game so that it is shown as the background of the start menu
        self.update_state()
Beispiel #10
0
#! /usr/bin/python3
# -*- coding: utf-8 -*-
# Simple SuDoKu version, by BLDR 2018
import argparse

from main.game import Game

if __name__ == '__main__':
    parser = argparse.ArgumentParser(description='SuDoKu by BLDR.')
    parser.add_argument('--solve',
                        help='Solve the SuDoKu in sudoku_data.csv',
                        action='store_true')
    parser.add_argument('--generate',
                        help='Generate a new SuDoKu',
                        action='store_true')
    args = parser.parse_args()

    if not args.generate and not args.solve:
        print('See --help.')

    game = Game(generate=args.generate, solve=args.solve)
    game.run()
Beispiel #11
0
def new_game():
    resp = Game().new_game()
    return jsonify(resp)
Beispiel #12
0
import flask
from flask import request, jsonify

from main.game import Game
from shared.exceptions import GameDoesNotExist, IncorrectPlayer
from shared.constants import GAME_DOES_NOT_EXIST, INCORRECT_PLAYER

app = flask.Flask(__name__)
app.config["DEBUG"] = True

Game().create_table()


@app.route('/game', methods=['POST'])
def new_game():
    resp = Game().new_game()
    return jsonify(resp)


@app.route('/game/<id>/movement', methods=['POST'])
def movement(id):
    data = request.json
    try:
        resp = Game().play_human(id, data["player"], data["position"])
        return jsonify(resp)
    except GameDoesNotExist:
        response = {"msg": GAME_DOES_NOT_EXIST, "status_code": 404}
        return jsonify(response)
    except IncorrectPlayer:
        response = {"msg": INCORRECT_PLAYER, "status_code": 404}
        return jsonify(response)