Exemplo n.º 1
0
 def activate(self):
     Collider.activate(self)
     GameManager.register_collider(self.gameobject)
     # todo maybe inject only .collider not .aabb?
     self.gameobject.aabb = self.calculate_aabb()
     self.gameobject.calculate_aabb = self.calculate_aabb
     self.gameobject.get_overlapping_rect = self.get_overlapping_rect
Exemplo n.º 2
0
    def __init__(self):
        self.active = False
        self.gameobject = None
        self.components = []

        # todo do i need this? every (sub) component inside scope?
        GameManager.register_entity(self)
Exemplo n.º 3
0
    def deactivate(self):
        del self.gameobject.aabb
        del self.gameobject.calculate_aabb
        del self.gameobject.get_overlapping_rect

        GameManager.deregister_collider(self.gameobject)
        Collider.deactivate(self)
Exemplo n.º 4
0
 def activate(self):
     Component.activate(self)
     GameManager.spawn_entity(self.gameobject.uid,
                              self.gameobject.pos[0],
                              self.gameobject.pos[1],
                              self.gameobject.angle,
                              self.gameobject.vertices)
Exemplo n.º 5
0
    def activate(self):
        self.active = True
        if not self.gameobject:
            GameManager.register_gameobject(self)
            #self.gameobject = self  # TODO should .gameobject be None or self

        for component in self.components:
            component.activate()
Exemplo n.º 6
0
    def reset(self):
        self.clear_gui()
        self.p1_lives = 3
        self.p2_lives = 3
        self.fill_gui()

        if not GameManager.find("Ship1"):  # todo crap string comparison
            build_ship("Ship1")
        if not GameManager.find("Ship2"):  # todo crap string comparison
            build_ship("Ship2")
Exemplo n.º 7
0
    def deactivate(self):
        self.active = False

        for component in reversed(self.components):
            component.deactivate()

        if not self.gameobject:
            GameManager.deregister_gameobject(self)

        GameManager.deregister_entity(self)
Exemplo n.º 8
0
 def deactivate(self):
     del self.gameobject.paused
     del self.gameobject.elapsedtime
     del self.gameobject.frequency
     del self.gameobject.timescale
     del self.gameobject.elapse_time
     del self.gameobject.pause
     del self.gameobject.unpause
     del self.gameobject.time_till_next_call
     del self.gameobject.reset_timeline
     GameManager.deregister_timeline(self.gameobject.name)
     Updater.deactivate(self)
Exemplo n.º 9
0
    def activate(self):
        Updater.activate(self)
        self.gameobject.paused = self.paused
        self.gameobject.elapsedtime = self.elapsedtime
        self.gameobject.frequency = self.frequency
        self.gameobject.timescale = self.timescale
        self.gameobject.elapse_time = self.elapse_time
        self.gameobject.pause = self.pause
        self.gameobject.unpause = self.unpause
        self.gameobject.time_till_next_call = self.time_till_next_call
        self.gameobject.reset_timeline = self.reset

        GameManager.register_timeline(self.gameobject)
Exemplo n.º 10
0
 def test_random_agent(self):
     # game should take agent as a parameter
     gm = GameManager(player=agent)
 	gm.add_object({
 		'dimensions': (1,3,1,1),
 		'type': 'player',
 		'color': COLORS['blue']
 	})
 	gm.add_object({
 		'dimensions': (0,1,1,1),
 		'type': 'enemy',
 		'color': COLORS['red']
 	})
     self.assertEqual(1, 1)
Exemplo n.º 11
0
    def deactivate(self):
        del self.gameobject.mass
        del self.gameobject.velocity
        del self.gameobject.ang_velocity
        del self.gameobject.acceleration
        del self.gameobject.ang_acc
        del self.gameobject.linear_damping
        del self.gameobject.ang_damping

        del self.gameobject.add_force
        del self.gameobject.add_torque
        del self.gameobject.clear_forces
        del self.gameobject.physics_timestep

        GameManager.deregister_body(self.gameobject)
        Component.deactivate(self)
Exemplo n.º 12
0
    def activate(self):
        Component.activate(self)

        self.gameobject.mass = self.mass
        self.gameobject.velocity = self.velocity
        self.gameobject.ang_velocity = self.ang_velocity
        self.gameobject.acceleration = self.acceleration
        self.gameobject.ang_acc = self.ang_acc

        self.gameobject.linear_damping = self.linear_damping
        self.gameobject.ang_damping = self.ang_damping

        self.gameobject.add_force = self.add_force
        self.gameobject.add_torque = self.add_torque
        self.gameobject.clear_forces = self.clear_forces

        self.gameobject.physics_timestep = self.physics_timestep

        GameManager.register_body(self.gameobject)
Exemplo n.º 13
0
def main():
    print()
    print()
    print('            ***************************')
    print('            *** Welcome To Wagerer! ***')
    print()
    print('Please add a few players, then play a game.')
    
    game = GameManager()
    
    action = 'X'
    
    while action != 'Q':
        print()
        print('What would you like to do:')
        print('A : Add a Player')
        print('P : Play A Game')
        print('C : Check Player Balances')
        print('D : Deposit Into An Account')
        print('Q : Quit')
         
        action = input('Enter Your Choice: ')
        action = action.upper()
        
        if action == 'A':
            name = input('Enter the player name: ')
            player_name = game.create_player(name)
            
            
            
        if action == 'C':
            game.check_accounts()
            
            
        if action == 'D':
            name = input('Please enter the player name: ')
            print()
            game.deposit(name, 20)
            
        if action == 'P':
            game.bet()
            
            
    print()        
    print('           ** Thanks for Playing Wagerer **')        
    print('           *********** Goodbye ************')
    print()
Exemplo n.º 14
0
def main():
	# Create window at center
	os.environ['SDL_VIDEO_CENTERED'] = '1'

	# Initialize Pygame and set up the window
	pygame.init()

	size = [SCREEN_WIDTH, SCREEN_HEIGHT]
	screen = pygame.display.set_mode(size)#trello
	
	pygame.mouse.set_visible(False)
	
	# Read resource
	ResourceManager.read_resources(RM_path)

	# Create an instance of the Game class
	game = GameManager()
	game.change_state(Scene())

	done = False
	clock = pygame.time.Clock()
	
	# Main game loop
	while not done:
		pygame.display.set_caption("Troll Shooting - FPS : " + str(round(clock.get_fps(), 1)))

		# Process events (keystrokes, mouse clicks, etc)
		done = game.process_events()
		
		# Update object positions, check for collisions
		game.update()
		
		# Draw the current frame
		game.draw(screen)
		
		# Pause for the next frame
		clock.tick(60)
		
	# Close window and exit
	pygame.quit()
Exemplo n.º 15
0
def main():
    pygame.init()
    game_manager = GameManager.GameManager()
    game_manager.main_loop()
    pygame.quit()
Exemplo n.º 16
0
def joinGame(playerName, game: Dungeon):
    GameManager.addPlayer(playerName, game)
    return True
Exemplo n.º 17
0
 def cast(self):
     GameManager.draw_cards(AsceticOfTheLidlessEye.CARDS_DRAWN)
     return Hero.cast(self)
Exemplo n.º 18
0
import random
import sys

from flask import render_template, request, make_response, Blueprint, redirect

import Common.common
import GameManager
from Common.db_connector import DbConnector
from Common.query_generator import QueryGenerator

NUM_QUESTIONS_PER_GAME = 5
GAME_ID = 3
game_manager = GameManager.GameManager(GAME_ID)
pairs_game = Blueprint('pairs_game', __name__, template_folder='templates')
pairs_game_ = Blueprint('pairs_game_', __name__, template_folder='templates')


# initialize game
@pairs_game.route('/pairs_game')
def pairs_game_start():
    game_manager.start_new_game()
    return create_game_page()


# Get here in middle of game. Checks if user got here legally and calculates current score
@pairs_game_.route('/pairs_game_')
def pairs_game_mid():
    allow_access = request.cookies.get('allowAccess')
    points = int(request.cookies.get('points'))
    response = game_manager.calc_mid_game(allow_access, points,
                                          NUM_QUESTIONS_PER_GAME, request)
Exemplo n.º 19
0
def cambio_de_fichas(window, letras, cambios_de_fichas, gm, pj, bolsa,
                     img_nros, puntos_por_letra, turno_pc, turno_jugador,
                     guardado, pred):
    """
    Se realizan los cambios de fichas que desea el jugador y éste pierde un turno
    """
    letras_a_cambiar = []
    for elem in ['-c', '-d', '-paso', '-p', '-t']:
        window[elem].update(disabled=True)
    for elem in ['-selec', '-deshacer-selec']:
        window[elem].update(visible=True)
    sg.Popup('Cambio de fichas:',
             'Seleccione las letras que quiere cambiar o el boton ',
             '\"seleccionar todas las fichas\" y vuelva a clickear',
             'en \"Cambiar fichas\" para confirmar el cambio',
             keep_on_top=True)
    # para que no se minimice despues del popup
    window.BringToFront()
    cerro_ventana = False
    while True:
        event = window.read()[0]
        if event is None:
            cerro_ventana = True
            break
        elif event in letras.keys():
            letras_a_cambiar.append(event)
            window[event].update(disabled=True)
        elif event == '-selec':
            for ficha in letras.keys():
                if ficha not in letras_a_cambiar:
                    letras_a_cambiar.append(ficha)
                    window[ficha].update(disabled=True)
        elif event == '-deshacer-selec':
            for ficha in letras_a_cambiar:
                window[ficha].update(disabled=False)
            letras_a_cambiar = []
        elif event == '-cf':
            window['-selec'].update(visible=False)
            window['-deshacer-selec'].update(visible=False)
            if letras_a_cambiar:
                letras = gm.devolver_fichas(letras, letras_a_cambiar, bolsa)
                gm.dar_fichas(letras, bolsa)
                pj.setFichas(letras)
                for f in letras_a_cambiar:
                    window[f].update(
                        letras[f],
                        disabled=False,
                        image_size=(50, 50),
                        image_subsample=21,
                        image_filename=img_nros[puntos_por_letra[letras[f]]])
                cambios_de_fichas -= 1
                window['cfichas'].update(str(cambios_de_fichas))
                if cambios_de_fichas == 0:
                    window['-cf'].update(disabled=True)
                    window['-cf'].set_tooltip(
                        'Ya realizaste 3 cambios de fichas.')
            break
        else:
            mostrar_popups_info(event, guardado, pred)
    if not cerro_ventana:
        turno_jugador, turno_pc = gm.cambiar_turno(turno_jugador, turno_pc,
                                                   window)
        window['-paso'].update(disabled=False)
        window['-p'].update(disabled=False)
        window['-t'].update(disabled=False)
    return cambios_de_fichas, turno_pc, turno_jugador
Exemplo n.º 20
0
def main():
    GameManager.main()
Exemplo n.º 21
0
 def cast(self):
     GameManager.add_runes(Apprentice.RUNES_ADDED)
     return Hero.cast(self)
Exemplo n.º 22
0
 def activate(self):
     Component.activate(self)
     self.gameobject.tag = self._tag
     GameManager.register_tag(self._tag, self.gameobject)
Exemplo n.º 23
0
 def deactivate(self):
     GameManager.deregister_tag(self._tag, self.gameobject)
     del self.gameobject.tag
     Component.deactivate(self)
Exemplo n.º 24
0
 def deactivate(self):
     del self.gameobject.vertices
     GameManager.deregister_shape(self.gameobject)
     xprotocol.destroy_entity(self.gameobject.name)
     Component.deactivate(self)
Exemplo n.º 25
0
 def activate(self):
     Component.activate(self)
     self.gameobject.vertices = self.vertices
     GameManager.register_shape(self.gameobject)
     xprotocol.spawn_entity(self.gameobject.name, self.gameobject.pos.x, self.gameobject.pos.y, self.gameobject.angle, self.vertices)
Exemplo n.º 26
0
def GameLoop():
    #Initialize game variables

    turn = ''
    winner = False
    maxIteration = 1000

    ## Initialize the gameboard
    gameboard = GameManager.Gameboard()
    gameboard.__init__()

    ## Initialize the decks
    obj = GameManager.Card(card1)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)
    obj = GameManager.Card(card1)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)

    obj = GameManager.Card(card2)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)
    obj = GameManager.Card(card2)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)

    obj = GameManager.Card(card3)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)
    obj = GameManager.Card(card3)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)
    obj = GameManager.Card(card3)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)

    obj = GameManager.Card(card4)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)
    obj = GameManager.Card(card4)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)

    obj = GameManager.Card(card5)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)
    obj = GameManager.Card(card5)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)

    obj = GameManager.Card(card6)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)

    obj = GameManager.Card(card7)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)
    obj = GameManager.Card(card7)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)

    obj = GameManager.Card(card8)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)

    obj = GameManager.Card(card9)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)

    obj = GameManager.Card(card10)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)
    obj = GameManager.Card(card10)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)

    obj = GameManager.Card(card11)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)
    obj = GameManager.Card(card11)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)

    obj = GameManager.Card(card12)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)

    obj = GameManager.Card(card13)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)
    obj = GameManager.Card(card13)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)

    obj = GameManager.Card(card14)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)

    obj = GameManager.Card(card15)
    obj.setOwner('p')
    gameboard.playerDeck.append(obj)
    obj.setOwner('o')
    gameboard.oppDeck.append(obj)
    obj = GameManager.Card(card15)
    obj.setOwner('p')
    gameboard.playerDeck.append(obj)
    obj.setOwner('o')
    gameboard.oppDeck.append(obj)

    obj = GameManager.Card(card16)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)

    obj = GameManager.Card(card17)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)

    for i in range(3):
        obj = GameManager.Card(card18)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)

    obj = GameManager.Card(card19)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)
    obj = GameManager.Card(card19)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)

    obj = GameManager.Card(card20)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)
    obj = GameManager.Card(card20)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)

    obj = GameManager.Card(card21)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)

    obj = GameManager.Card(card22)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)
    obj = GameManager.Card(card22)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)

    obj = GameManager.Card(card23)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)
    obj = GameManager.Card(card23)
    gameboard.playerDeck.append(obj)
    gameboard.oppDeck.append(obj)

    for i in range(12):
        obj = GameManager.Card(card24)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)
    for i in range(8):
        obj = GameManager.Card(card25)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)

    # Set the gameboard to the default state
    gameboard.setup()

    #Control game variable
    go = True

    while go == True:
        # Get players board state from the user
        getPlayerActive(gameboard)

        # Get players benched pokemon
        getPlayerBench(gameboard)

        #Get player's hand
        getPlayerHand(gameboard)

        #Get player's discard
        getPlayerDiscard(gameboard)

        #Get stadium in play
        getStadium(gameboard)

        #get player's prizes
        getPlayerPrize(gameboard)

        #find out if energy was played this turn
        getEnergyPlayed(gameboard)

        #find out if supporter was played this turn
        getSupporterPlayed(gameboard)

        # Get opponents active pokemon
        getOppActive(gameboard)

        #Get opponent's benched pokemon
        getOppBench(gameboard)

        #Get opponents discard
        getOppDiscard(gameboard)

        #Get opponent's hand
        getOppHand(gameboard)

        #Get opponents prizes
        getOppPrize(gameboard)

        ## Check for win condition
        gameOver = gameboard.checkWinCon(gameboard.turn)
        if gameOver != 1 and gameOver != 0:
            selectedMove, name = mcts.uct(gameboard, maxIteration)
            move = parseMove(selectedMove, name)
            print("The suggested move is " + move)
            print("Ratio: " + mcts.repr())
        elif gameOver == 1:
            print("Player has won")
            newGame()
        elif gameOver == 0:
            print("Opponent has won")
            newGame()

        temp = input("Press enter to continue. Enter 'quit' to exit\n")
        if temp.lower() == 'quit':
            sys.exit()

        resetState(gameboard)
        GameLoop()
Exemplo n.º 27
0
import pygame
import time
import GameManager
import InputManager
import traceback

pygame.init()
running = True
screen_width = 1300
screen_height = 700
screen = pygame.display.set_mode([screen_width, screen_height])
pygame.display.set_caption("I love Monkeys... and turtles")

try:
    im = InputManager.InputManager()
    gm = GameManager.GameManager((screen_width, screen_height), im)

    t = pygame.time.get_ticks()

    while running:
        oldtime = t
        t = pygame.time.get_ticks()

        #TODO add event processing system
        for e in pygame.event.get():
            if pygame.QUIT == e.type:
                running = False
            elif e.type == pygame.KEYDOWN and e.key == pygame.K_ESCAPE:
                running = False
            else:
                im.process(e)
Exemplo n.º 28
0
from GameManager import *

gm = GameManager()

# main processing
while 1:
	gm.draw()
	gm.update()
Exemplo n.º 29
0
def geneticAlgortihmTest():
    newGame = GameManager()
    genny = GeneticAlgorithmAgent(newGame,
                                  verbose=True,
                                  firstGuess=makeCode([1, 1, 2, 2]))
    genny.play()
Exemplo n.º 30
0
 def cast(self):
     GameManager.add_power(HeavyInfantry.POWER_ADDED)
     return Hero.cast(self)
Exemplo n.º 31
0
import time

import daemon

import GameManager
from GameBase import GameBase

while not GameBase.login_action():
    time.sleep(5)

with daemon.DaemonContext():
    GameManager.start_all_game()
Exemplo n.º 32
0
 def deactivate(self):
     GameManager.destroy_entity(self.gameobject.uid)
     Component.deactivate(self)
Exemplo n.º 33
0
        string = ""

        for i in range(self.len * self.len):
            if i % self.len == 0:
                string += "\n"
            string += self.getPiece(i % self.len, i // self.len)
        return string

    def hash(self):
        string = ""
        for row in self.board:
            for char in row:
                if char == " ":
                    string += "0"
                if char == "X":
                    string += "1"
                if char == "O":
                    string += "2"
        return string

    def moveFromInput(self, prompt):
        print(prompt)
        return [int(x.strip()) for x in input().split(',')]


if __name__ == '__main__':
    game = TicTacToe(3)
    solver = Solver.Solver()
    gameManager = GameManager(game, solver)
    gameManager.play()
Exemplo n.º 34
0
def main():
    pygame.init()

    fpsClock = pygame.time.Clock()

    pygame.mouse.set_visible(False)

    #screen = pygame.display.set_mode((1280,720))
    screen = pygame.display.set_mode((1280, 720), pygame.FULLSCREEN)
    workSurface = pygame.Surface((1280, 720))
    shaderSurface = pygame.Surface((1280, 720))

    crtTile = pygame.image.load(
        os.path.join('res', 'image', 'crtsim_scanlines.png'))
    crtTile = pygame.transform.scale(crtTile, (20, 10))
    crtPixelShader = OverlayShader(crtTile)

    activeScreen = None

    loggedOutScreen = screens.LoggedOutScreen()
    loggingInTransition = screens.LoggingInTransitionScreen()
    loggedInScreen = screens.LoggedInScreen()
    activeScreen = loggedOutScreen
    #activeScreen=loggedInScreen
    #loggedInScreen.showFinalPuzzle()
    transitionCounter = 0

    gameManager = GameManager.GameManager()

    running = True
    while running:
        if activeScreen == loggedOutScreen:
            for event in pygame.event.get():
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_ESCAPE and pygame.key.get_mods(
                    ) & (pygame.KMOD_RSHIFT | pygame.KMOD_RCTRL):
                        running = False
                        sys.exit(0)
            #check for a device connected
            if gameManager.rfidTracker.rfidTagIsActive():
                loggingInTransition.resetAnimation()
                activeScreen = loggingInTransition
                transitionCounter = 30
        elif activeScreen == loggingInTransition:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    running = False
            transitionCounter -= 1
            if transitionCounter <= 0:
                transitionCounter = 0
                loggedInScreen.reset()
                loggedInScreen.sendLineToTerminal(
                    "STATUS: ARTIFACT CONNECTED.")
                score = gameManager.getActiveDeviceScore()
                loggedInScreen.sendLineToTerminal("DECRYPTION PROGRESS " +
                                                  str(score) + " / 8")
                if (score is 8):
                    loggedInScreen.showFinalPuzzle()
                activeScreen = loggedInScreen

        elif activeScreen == loggedInScreen:
            if not gameManager.rfidTracker.rfidTagIsActive():
                activeScreen = loggedOutScreen
            for event in pygame.event.get():
                if event.type == pygame.KEYDOWN:
                    if event.key == pygame.K_BACKSPACE:
                        loggedInScreen.textBoxBackspace()
                    elif event.key == pygame.K_RETURN:
                        if loggedInScreen.getPassword().lower(
                        ) == "exitprogram":
                            running = False
                        loggedInScreen.sendLineToTerminal(
                            "TRYING PASSWORD: "******"PASSWORD ACCEPTED. UNLOCKING RUNE.")
                            score = gameManager.getActiveDeviceScore()
                            loggedInScreen.sendLineToTerminal(
                                "DECRYPTION PROGRESS " + str(score) + " / 8")
                            if (score is 8):
                                loggedInScreen.showFinalPuzzle()
                        else:
                            loggedInScreen.sendLineToTerminal(
                                "PASSWORD INVALID. TRY AGAIN.")
                        loggedInScreen.clearTextBox()
                    else:
                        if event.unicode.upper() in string.printable:
                            loggedInScreen.sendKeyToTextBox(
                                event.unicode.upper())
        else:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    running = False

        workSurface.fill(colors.green_bg)
        activeScreen.draw(workSurface)

        shaderSurface.blit(workSurface, (0, 0))
        shaderSurface = crtPixelShader.apply(shaderSurface)

        screen.blit(shaderSurface, (0, 0))
        pygame.display.update()
        gameManager.tick(60)
        fpsClock.tick(60)

    #cleanup when finished
    gameManager.rfidTracker.stop()
Exemplo n.º 35
0
def main(guardado):
    """
    Desarrollo del juego y tablero principal
    """
    colores = cm.cargar_colores()
    import random
    #-----------------------------------------------------------
    # Configuracion de bolsa puntos y Imagen de numeros
    #-----------------------------------------------------------
    bolsa = {
        'E': 0,
        'A': 0,
        'I': 0,
        'O': 0,
        'U': 0,
        'S': 0,
        'N': 0,
        'R': 0,
        'L': 0,
        'T': 0,
        'C': 0,
        'D': 0,
        'M': 0,
        'B': 0,
        'G': 0,
        'P': 0,
        'F': 0,
        'H': 0,
        'V': 0,
        'J': 0,
        'Y': 0,
        'K': 0,
        'Ñ': 0,
        'Q': 0,
        'W': 0,
        'X': 0,
        'Z': 0,
        'LL': 0,
        'RR': 0
    }

    puntos_por_letra = {
        'E': 0,
        'A': 0,
        'I': 0,
        'O': 0,
        'U': 0,
        'S': 0,
        'N': 0,
        'R': 0,
        'L': 0,
        'T': 0,
        'C': 0,
        'D': 0,
        'M': 0,
        'B': 0,
        'G': 0,
        'P': 0,
        'F': 0,
        'H': 0,
        'V': 0,
        'J': 0,
        'Y': 0,
        'K': 0,
        'Ñ': 0,
        'Q': 0,
        'W': 0,
        'X': 0,
        'Z': 0,
        'LL': 0,
        'RR': 0
    }

    img_nros = {
        1: os.path.join(absolute_path, 'lib', 'media', 'nros_png', 'uno.png'),
        2: os.path.join(absolute_path, 'lib', 'media', 'nros_png', 'dos.png'),
        3: os.path.join(absolute_path, 'lib', 'media', 'nros_png', 'tres.png'),
        4: os.path.join(absolute_path, 'lib', 'media', 'nros_png',
                        'cuatro.png'),
        5: os.path.join(absolute_path, 'lib', 'media', 'nros_png',
                        'cinco.png'),
        6: os.path.join(absolute_path, 'lib', 'media', 'nros_png', 'seis.png'),
        7: os.path.join(absolute_path, 'lib', 'media', 'nros_png',
                        'siete.png'),
        8: os.path.join(absolute_path, 'lib', 'media', 'nros_png', 'ocho.png'),
        9: os.path.join(absolute_path, 'lib', 'media', 'nros_png',
                        'nueve.png'),
        10: os.path.join(absolute_path, 'lib', 'media', 'nros_png',
                         'diez.png'),
        11: os.path.join(absolute_path, 'lib', 'media', 'nros_png',
                         'vacio.png')
    }

    # cargamos las configuraciones correspondientes
    bolsa, puntos_por_letra, tiempo, dificultad, config, pred = \
    cm.cargar_configuraciones(bolsa, puntos_por_letra, guardado)
    # ----------------------------------------------------------------------
    # Cargo dificultad para despues diferenciar que tablero cargar y
    # mandarselo al objeto
    # Abro el tablero correspondiente a la dificultad seleccionada
    # ----------------------------------------------------------------------
    if guardado:  #Si hay partida guardada carga el tablero guardado
        tab = cm.cargar_tablero('guardado')
    else:
        if dificultad == 'facil':
            tab = cm.cargar_tablero('facil')
        elif dificultad == 'medio':
            tab = cm.cargar_tablero('medio')
        else:
            tab = cm.cargar_tablero('dificil')
    if (tab is None):
        sg.popup(f'No se encontro el tablero {dificultad}')
        Menu.main()
        return None

    # ----------------------------------------------------------------------
    # Opciones de dificultad --> lista de tags
    # ----------------------------------------------------------------------
    dificultad_random = {
        'sust': ['NC', 'NN', 'NCS', 'NCP', 'NNS', 'NP', 'NNP', 'W'],
        'adj': ['JJ', 'AO', 'AQ', 'DI', 'DT'],
        'verbo': [
            'VAG', 'VBG', 'VAI', 'VAN', 'MD', 'VAS', 'VMG', 'VMI', 'VB', 'VMM',
            'VMN', 'VMP', 'VBN', 'VMS', 'VSG', 'VSI', 'VSN', 'VSP', 'VSS'
        ]
    }
    if dificultad == 'dificil':
        tipo_palabra = random.choice(list(dificultad_random.keys())) \
        if not guardado else config['tipo']
        tipo = dificultad_random[tipo_palabra]
    elif dificultad == 'facil':
        tipo_palabra = ''
        tipo = dificultad_random['sust'] + dificultad_random['adj'] + \
               dificultad_random['verbo']
    else:
        tipo_palabra = ''
        tipo = dificultad_random['adj'] + dificultad_random['verbo']
    if not guardado:
        nombre = sg.popup_get_text(
            'ScrabbleAR está por comenzar, ingrese su nombre de jugador',
            title='Ingrese su nombre',
            default_text='Invitado',
            size=(None, None),
            keep_on_top=True,
            no_titlebar=True)
        nombre = "" if nombre == None else nombre
        if nombre.strip() in (None, ''):
            nombre = 'Invitado'
    else:
        nombre = config['nombre']
    # ----------------------------------------------------------------------
    # Instanciacion de objetos y creacion del layout
    # ----------------------------------------------------------------------
    palabras_usadas = []
    palabras_usadas_pc = []
    layout, letras, letras_pc, botones, long_tablero = gm.crear_layout(
        bolsa, tab, dificultad, tipo_palabra, img_nros, puntos_por_letra,
        nombre, palabras_usadas, palabras_usadas_pc, guardado)

    from JugadorPC import PC
    from Jugador import Jugador
    window = sg.Window('Ventana de juego',
                       layout,
                       icon=icono_ventana,
                       finalize=True)
    pj = Jugador(letras, long_tablero, botones, puntos_por_letra, dificultad,
                 tipo, guardado, window)
    pc = PC(letras_pc, long_tablero, botones, puntos_por_letra, dificultad,
            tipo, guardado, window)
    botones_aux = botones.copy(
    )  #-----> Botones_aux lo uso para el boton deshacer

    # ----------------------------------------------------------------------
    # Manejo de puntajes, si hay partida guardada setea los puntos
    # Sino es 0
    # ----------------------------------------------------------------------
    if guardado:
        pj.puntos = int(config['puntos_j'])
        pc.puntos = int(config['puntos_pc'])
        window['p_pc'].update(pc.getPuntos())
        window['p_j'].update(pj.getPuntos())

    # ----------------------------------------------------------------------
    #Configuracion de ventana y turnos
    # ----------------------------------------------------------------------

    letras_usadas = {}  # pares (clave, valor) de las letras selecs del atril
    palabra_nueva = {}  # pares (clave, valor) de las letras puestas en el tab
    puntos_jugador = dict()
    puntos_jugador = cm.cargar_puntuaciones()
    lista_puntajes = puntos_jugador['puntos']
    terminar = False
    # cambios de fichas
    if guardado:
        cambios_de_fichas = int(config["cambios_fichas"])
        window["cfichas"].update(cambios_de_fichas)
        if cambios_de_fichas == 0:
            window["-cf"].update(disabled=True)
    else:
        cambios_de_fichas = 3
    # aca vamos almacenando las posiciones (i,j) ocupadas en el tablero:
    # posiciones_ocupadas_tablero = []
    fin_fichas = False
    fin_juego = False
    guardar_partida = False
    # Configuracion del tiempo
    if not guardado:
        tiempo = tiempo.split(":")
        cont_tiempo_min = int(tiempo[0])
        if cont_tiempo_min > 0:
            cont_tiempo_seg = 59
            cont_tiempo_min -= 1
        else:
            cont_tiempo_seg = 0
    else:
        aux_tiempo = config['tiempo'].split(':')
        cont_tiempo_min = int(aux_tiempo[0])
        cont_tiempo_seg = int(aux_tiempo[1])
    window.finalize()
    # se decide de forma aleatoria quien comienza la partida si no se abrio
    # el archivo guardado
    if guardado:
        primer_turno = True if config['primer_turno'] == 'True' else False
        turno_pc = True if config['turno_pc'] == 'True' else False
        turno_jugador = True if config['turno_jugador'] == 'True' else False
    else:
        primer_turno = True
        turno = random.choice([True, False])
        turno_jugador, turno_pc = gm.cambiar_turno(turno, not (turno), window)
        sg.popup(
            "Se eligió aleatoriamente que {} coloque sus fichas en el primer turno."
            .format('la maquina' if turno_pc else 'el jugador \'' + nombre +
                    '\''),
            '¡A jugar!',
            title='Empieza la partida',
            line_width=100)

    if (dificultad == 'dificil'):
        if (tipo_palabra == 'sust'):
            sg.Popup('Dificultad: Dificil, tipo de palabras: solo sustantivos',
                     no_titlebar=True,
                     keep_on_top=True)
        elif (tipo_palabra == 'adj'):
            sg.Popup('Dificultad: Dificil, tipo de palabras: solo adjetivos',
                     no_titlebar=True,
                     keep_on_top=True)
        else:
            sg.Popup('Dificultad: Dificil, tipo de palabras: solo verbos',
                     no_titlebar=True,
                     keep_on_top=True)

    # ----------------------------------------------------------------------
    #Loop de ventana
    # ----------------------------------------------------------------------
    while True:
        event, values = window.read(timeout=1000)
        # actualizamos el tiempo:

        cont_tiempo_min, cont_tiempo_seg, tiempo_seg_final = contar_tiempo(
            cont_tiempo_min, cont_tiempo_seg)
        tiempo_str = '{}:{}'.format(cont_tiempo_min, tiempo_seg_final)
        window['tiempo'].update(tiempo_str)
        # chequeamos que no se acabe el tiempo:
        if (cont_tiempo_min == 0) and (cont_tiempo_seg == 0):
            sg.popup('Se termino el tiempo', keep_on_top=True)
            # para que entre al if de terminar juego
            # dentro del if del turno_jugador
            fin_juego = turno_jugador = True
            turno_pc = False
        #------------------------------------------------------
        # mientras sea el turno del jugador, podrá realizar
        # todos los eventos del tablero
        #------------------------------------------------------
        if turno_jugador:
            if event is None or terminar:
                guardar_partida = gm.salir_del_juego()
                if not guardar_partida:
                    sg.popup_no_frame('Salió de la partida', keep_on_top=True)
                    break
            # boton de guardar partida
            if event == '-p' or guardar_partida:
                posponer_partida(pc, pj, cm, config, tipo_palabra, tiempo_str,
                                 nombre, turno_jugador, turno_pc,
                                 cambios_de_fichas, primer_turno)
                break
            # si selecciona botones del atril del jugador
            elif event in letras.keys():
                cont_tiempo_seg, cont_tiempo_min, terminar = \
                    seleccion_de_fichas(window, event, letras_usadas,
                                palabra_nueva, letras, botones, terminar,
                                cont_tiempo_seg, cont_tiempo_min, colores)
            # boton de deshacer las palabras puestas en el tablero
            elif event == '-d':
                letras_usadas, palabra_nueva = gm.sacar_del_tablero(
                    window, letras.keys(), palabra_nueva, botones_aux,
                    dificultad)
            # boton de pasar el turno a la pc
            elif event == '-paso':
                turno_jugador, turno_pc = gm.cambiar_turno(
                    turno_jugador, turno_pc, window)
                letras_usadas, palabra_nueva = gm.sacar_del_tablero(
                    window, letras.keys(), palabra_nueva, botones_aux,
                    dificultad)
            # boton cambio de fichas
            elif (event == '-cf') and (cambios_de_fichas != 0):
                # si ya hay fichas jugadas en el tablero volveran al atril
                letras_usadas, palabra_nueva = gm.sacar_del_tablero(
                    window, letras.keys(), palabra_nueva, botones_aux,
                    dificultad)
                cambios_de_fichas, turno_pc, turno_jugador = cambio_de_fichas(
                    window, letras, cambios_de_fichas, gm, pj, bolsa, img_nros,
                    puntos_por_letra, turno_pc, turno_jugador, guardado, pred)
            # boton de terminar partida
            elif event == '-t' or fin_fichas or fin_juego:
                seguir = False
                if event == '-t':
                    # le preguntamos si realmente quiere finalizar el juego
                    seguir = gm.preguntar_si_sigue_el_juego()
                    window.BringToFront()
                if not seguir:
                    finalizar_juego(pj, pc, gm, cm, window, img_nros,
                                    puntos_por_letra, nombre, dificultad,
                                    lista_puntajes, puntos_jugador, guardado,
                                    absolute_path)
                    break
            # boton de confirmar palabra
            elif event == '-c':
                letras_usadas, palabra_nueva, turno_jugador, turno_pc, \
                fin_fichas, primer_turno = analizar_palabra(
                    window, letras, botones, palabra_nueva, letras_usadas,
                    puntos_por_letra, pj, pc, bolsa, primer_turno, img_nros,
                    botones_aux, turno_pc, dificultad)
            elif event in ('como_jugar', 'botonera', 'ver_config'):
                mostrar_popups_info(event, guardado, pred)
        if turno_pc:
            time.sleep(0.5)  # maquina pensando la jugarreta
            primer_turno, fichas_devolver_bolsa = pc.jugar(
                window, primer_turno)
            fichas_pc = pc.getFichas()
            gm.dar_fichas(fichas_pc, bolsa)
            pc.setFichas(fichas_pc)
            if fichas_devolver_bolsa != '':
                gm.devolver_fichas(fichas_devolver_bolsa,
                                   [10, 11, 12, 13, 14, 15, 16], bolsa)
            fin_fichas = gm.pocas_fichas(pc.getFichas())
            if (fin_fichas):
                finalizar_juego(pj, pc, gm, cm, window, img_nros,
                                puntos_por_letra, nombre, dificultad,
                                lista_puntajes, puntos_jugador, guardado,
                                absolute_path)
                break
            else:
                turno_jugador, turno_pc = gm.cambiar_turno(
                    turno_jugador, turno_pc, window)
    window.close()
    Menu.main()
Exemplo n.º 36
0
def save(GM, Accounts):
    while True:
        serializeObject(GM, "Game.pickle")
        #print("Game Was Autosaved")
        serializeObject(Accounts, "Accounts.pickle")
        #print("Accounts Were Autosaved")
        time.sleep(7.5)


if __name__ == "__main__":

    pickledGame = Path(os.getcwd() + "/Game.pickle")
    GM = None
    if (pickledGame.exists() != True):
        GM = GameManager()

        serializeObject(GM, "Game.pickle")
        print("Created and Serialized Game Manager")
    else:
        print("Loaded Pickled Game File")
        pickledFile = open(pickledGame, "rb")
        GM = pickle.load(pickledFile)
        GM.purgePlayers()
        GM.clearSessions()

    pickledAccounts = Path(os.getcwd() + "/Accounts.pickle")
    Accounts = None
    if (pickledAccounts.exists() != True):
        Accounts = AccountManager()
Exemplo n.º 37
0
def main():
    GameManager.initialize()
    GameManager.run()
Exemplo n.º 38
0
def GameLoop():
        # Game loop should keep track of whose turn it is
        # using the turn flag. We can then use this flag to
        # set up the functions in the Gamemanager file to
        # condense the fuctions that are currently seperated
        # like player and opp prize setups. At the begining of
        # the game we can  have a random number generator acting
        # as a coin to select who goes first and sets the flag.
        # Then all the setups will take place for that player then
        # change the flag and setup the next player and so on.
        # We just need to make sure we setup the boardstate before hand,
        # ie have prizes layed out and determine mulligans.
        #Start a new game
        
        
        turn = ''
        winner = False
        
        ## Initialize the gameboard
        gameboard = GameManager.Gameboard()
        ## Initialize the decks
        obj = GameManager.Card(card1)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)
        obj = GameManager.Card(card1)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)

        obj = GameManager.Card(card2)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)
        obj = GameManager.Card(card2)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)

        obj = GameManager.Card(card3)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)
        obj = GameManager.Card(card3)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)
        obj = GameManager.Card(card3)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)

        obj = GameManager.Card(card4)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)
        obj = GameManager.Card(card4)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)

        obj = GameManager.Card(card5)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)
        obj = GameManager.Card(card5)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)
        

        obj = GameManager.Card(card6)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)

        obj = GameManager.Card(card7)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)
        obj = GameManager.Card(card7)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)

        obj = GameManager.Card(card8)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)

        obj = GameManager.Card(card9)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)

        obj = GameManager.Card(card10)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)
        obj = GameManager.Card(card10)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)

        obj = GameManager.Card(card11)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)
        obj = GameManager.Card(card11)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)

        obj = GameManager.Card(card12)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)

        obj = GameManager.Card(card13)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)
        obj = GameManager.Card(card13)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)

        obj = GameManager.Card(card14)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)

        obj = GameManager.Card(card15)
        obj.setOwner('p')
        gameboard.playerDeck.append(obj)
        obj.setOwner('o')
        gameboard.oppDeck.append(obj)
        obj = GameManager.Card(card15)
        obj.setOwner('p')
        gameboard.playerDeck.append(obj)
        obj.setOwner('o')
        gameboard.oppDeck.append(obj)

        obj = GameManager.Card(card16)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)

        obj = GameManager.Card(card17)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)

        for i in range(3):
                obj = GameManager.Card(card18)
                gameboard.playerDeck.append(obj)
                gameboard.oppDeck.append(obj)

        obj = GameManager.Card(card19)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)
        obj = GameManager.Card(card19)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)

        obj = GameManager.Card(card20)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)
        obj = GameManager.Card(card20)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)

        obj = GameManager.Card(card21)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)

        obj = GameManager.Card(card22)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)
        obj = GameManager.Card(card22)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)

        obj = GameManager.Card(card23)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)
        obj = GameManager.Card(card23)
        gameboard.playerDeck.append(obj)
        gameboard.oppDeck.append(obj)

        for i in range(12):
                obj = GameManager.Card(card24)
                gameboard.playerDeck.append(obj)
                gameboard.oppDeck.append(obj)
        for i in range(8):
                obj = GameManager.Card(card25)
                gameboard.playerDeck.append(obj)
                gameboard.oppDeck.append(obj)

        # Set the gameboard to the default state
        gameboard.setup()

        #Control game
        go = True

        while go == True:
                
                # Get players board state from the user
                getPlayerActive(gameboard)
                
                # Get players benched pokemon
                getPlayerBench(gameboard)

                #Get player's hand
                getPlayerHand(gameboard)

                #Get player's discard
                getPlayerDiscard(gameboard)

                #Get stadium in play
                getStadium(gameboard)

                #get player's prizes
                getPlayerPrize(gameboard)

                # Get opponents active pokemon
                getOppActive(gameboard)

                #Get opponent's benched pokemon
                getOppBench(gameboard)

                #Get opponents discard
                getOppDiscard(gameboard)

                #Get opponent's hand
                getOppHand(gameboard)

                #Get opponents prizes
                getOppPrize(gameboard)

                ## Check for win condition
                gameOver = gameboard.checkWinCon(gameboard.turn)
                if gameOver != 1 and gameOver != 0:
                        selectedMove = str(mcts.uct(gameboard,50))
                        move = parseMove(selectedMove)
                        print("The suggested move is " + move)
                elif gameOver == 1:
                        print("Player has won")
                        newGame()
                elif gameOver == 0:
                        print("Opponent has won")
                        newGame()

                del gameboard
                input("Press enter to continue.")
                GameLoop()
Exemplo n.º 39
0
def startGame(level):
    GameManager.startGame(level)
    return None
Exemplo n.º 40
0
 def cast(self):
     GameManager.add_runes(Mystic.RUNES_ADDED)
     return Hero.cast(self)
Exemplo n.º 41
0
#support
import os
import time
import random
import pygame
import math

# initial
page = 0

# screening properties
seeing_size = (constants.SCREEN_WIDTH, constants.SCREEN_HEIGHT)
screen = pygame.display.set_mode(seeing_size)
pygame.display.set_caption("Template")

gm = GameManager(screen)

all_sprites = pygame.sprite.Group()
all_sprites.add(gm)


def game_keys_out(ev, lst, amount):
    out = []
    char = 0
    for i in range(amount):

        player = lst[char]
        out.append(game_keys(ev, player))
        char += 1

    return out
Exemplo n.º 42
0
def knuthAgentTest():
    newGame = GameManager()
    knuth = Knuth(newGame, verbose=True)
    knuth.play()
Exemplo n.º 43
0
Arquivo: Time.py Projeto: C3RV1/Pynity
 def delta_time():
     game_manager_instance = GameManager.GameManager()
     return game_manager_instance.delta_time
Exemplo n.º 44
0
def main():
    fileConfig("logging_config.ini")
    manager = GameManager()
    manager.run()