Example #1
0
def play_the_game():
    try:
        # running in a bundle
        gamedir = sys._MEIPASS
    except Exception:
        # running live
        gamedir = os.path.dirname(__file__)
    # print '"'+gamedir+'"'
    pbge.init('GearHead Caramel', 'ghcaramel', gamedir, poster_pattern='eyecatch_*.png')
    pbge.please_stand_by()
    gears.init_gears()
    game.init_game()

    #myfoo = game.content.ghplots.test.Foo()
    #with open(pbge.util.user_dir('bar.p'), "wb") as f:
    #    pickle.dump(myfoo, f, -1)
    #with open(pbge.util.user_dir('bar.p'), "rb") as f:
    #    foo2 = pickle.load(f)

    # print timeit.timeit("""mypic = pbge.image.Image('mecha_buruburu.png',color=(gears.color.ArmyDrab,gears.color.ShiningWhite,gears.color.ElectricYellow,gears.color.GullGrey,gears.color.Terracotta),flags=pygame.RLEACCELOK)""",setup='import pygame, pbge, gears',number=10)
    # print timeit.timeit("""mypic = pbge.image.Image('mecha_buruburu.png',color=(gears.color.ArmyDrab,gears.color.ShiningWhite,gears.color.ElectricYellow,gears.color.GullGrey,gears.color.Terracotta))""",setup='import pbge, gears',number=10)

    #mypic = pbge.image.Image('Zerosaiko.png',color=gears.factions.ProDuelistAssociation.mecha_colors)
    #mydest = pygame.Surface((mypic.frame_width, mypic.frame_height))
    #mydest.fill((0, 0, 255))
    #mypic.render((0,0),dest_surface=mydest)
    #pygame.image.save(mydest, pbge.util.user_dir("out_Kerebos.png"))

    # mypor = gears.portraits.Portrait()
    # mypor.bits = ["FBA NoBody","Haywire B3 Head"]
    # mypic = mypor.build_portrait(None,False,True)
    # pygame.image.save(mypic.bitmap, pbge.util.user_dir("out.png"))

    tsrd = TitleScreenRedraw()
    mymenu = pbge.rpgmenu.Menu(TitleScreenRedraw.MENU_DEST.dx,
                               TitleScreenRedraw.MENU_DEST.dy,
                               TitleScreenRedraw.MENU_DEST.w, TitleScreenRedraw.MENU_DEST.h,
                               predraw=tsrd, font=pbge.my_state.huge_font
                               )

    mymenu.add_item("Load Campaign", load_game)
    mymenu.add_item("Start Campaign", start_game)
    mymenu.add_item("Create Character", open_chargen_menu)
    mymenu.add_item("Import GH1 Character", import_arena_character)
    mymenu.add_item("Config Options", open_config_menu)
    mymenu.add_item("Browse Mecha", game.mechabrowser.MechaBrowser())
    mymenu.add_item("Edit Mecha", game.geareditor.LetsEditSomeMeks)
    if pbge.util.config.getboolean("GENERAL", "dev_mode_on"):
        mymenu.add_item("Eggzamination", game.devstuff.Eggzaminer)
    mymenu.add_item("Quit", None)

    action = True
    while action:
        pbge.my_state.start_music(TITLE_THEME)
        action = mymenu.query()
        if action:
            action(tsrd)
Example #2
0
def train_net_vs_simple(net_player):
    net_player.color = PlayerColor.BLUE
    players = {
        PlayerColor.BLUE: net_player,
        PlayerColor.RED: SimplePlayer(PlayerColor.RED)
    }
    global_map, players, fights, winning_player = game.init_game(
        map_filename, players)
    winner, global_map = game.run_game(False, global_map, players, fights,
                                       winning_player)

    owned_nodes = 0
    owned_buildings = 0
    owned_units = 0
    for row in global_map:
        for loc in row:
            if loc and loc.unit_in_loc and loc.unit_in_loc.owner is net_player.color:
                owned_units += 1
            if isinstance(loc, Node):
                if loc.owner is net_player.color:
                    owned_nodes += 1
                    if not loc.building.is_empty():
                        owned_buildings += 1
    net_player.g.fitness = owned_units + 10 * owned_nodes + 20 * owned_buildings
    if winner is net_player.color:
        net_player.g.fitness += 10000
    print("Genome: ", net_player.g.key, " Fitness: ", net_player.g.fitness)
Example #3
0
def train_net_vs_other(net_player, other_net_player):
    net_player.color = PlayerColor.BLUE
    other_net_player.color = PlayerColor.RED
    players = {PlayerColor.BLUE: net_player, PlayerColor.RED: other_net_player}
    global_map, players, fights, winning_player = game.init_game(
        map_filename, players)
    winner, global_map = game.run_game(False, global_map, players, fights,
                                       winning_player, max_game_time)

    for row in global_map:
        for loc in row:
            if loc and loc.unit_in_loc:
                if loc.unit_in_loc.owner is net_player.color:
                    net_player.g.fitness += 1
                elif loc.unit_in_loc.owner is other_net_player.color:
                    other_net_player.g.fitness += 1
            if isinstance(loc, Node):
                if not loc.building.is_empty():
                    if loc.owner is net_player.color:
                        net_player.g.fitness += 100
                    elif loc.owner is other_net_player.color:
                        other_net_player.g.fitness += 100
    if players.__contains__(winner):
        players[winner].g.fitness += 1000
    print("Genome: ", net_player.g.key, " Fitness: ", net_player.g.fitness,
          "\tOther Genome: ", other_net_player.g.key, " Fitness: ",
          other_net_player.g.fitness)
    return winner
Example #4
0
def main():
    graphics = graph.init_video()
    graphics.screen.fill((32, 0, 64))
    pygame.mouse.set_visible(0)
    pygame.display.flip()
    level = game.load_level()
    mygame = game.init_game(level)
    graphics.tilemap = level.tilemap
    graphics.tilemap_height = level.height
    graphics.tilemap_width = level.width
    next = "title"
    mygame.ingame = 0
    while next != "quit":
        if next == "menu":
            next = menu.main_menu(mygame, level, graphics)
        if next == "edit":
            next = "menu"
            edit.edit(level, graphics)
        if next == "play":
            next = game.game(mygame, level, graphics)
        if next == "title":
            mygame.sound_12.play()
            next = menu.title_screen(graphics)
        if next == "intro":
            mygame.sound_12.play()
            next = menu.intro(graphics)
        if next == "win":
            mygame.sound_0.play()
            next = menu.win(graphics)
            
    graph.free_video()
Example #5
0
 def test_init_game_should_add_the_pawn_in_the_center_of_the_base_line(
         self):
     # Given
     expected = [
         Pawn(0, 8, Orientation.WEST),
         Pawn(16, 8, Orientation.EAST)
     ]
     # When
     actual = game.init_game()
     # Then
     self.assertEqual(
         actual, expected,
         "The pawn should be placed in the center of his base line")
Example #6
0
def main():
    winning_players = []
    players = {PlayerColor.BLUE: blue_player, PlayerColor.RED: red_player}
    for map_iter in map_files:
        global_map, players, fights, winning_player = game.init_game(
            map_iter, players)
        for _ in range(run_count):
            winner, global_map = game.run_game(show_window, global_map,
                                               players, fights, winning_player)
            winning_players.append(winner)
            wins[winner] += 1
    print(wins)
    print(winning_players)
Example #7
0
def game(id, attempt):
    form = AnswerForm()
    week = session['week']
    fix_list = init_game(week)
    name = session['name']
    score = session['score']
    if form.validate_on_submit():
        plr_answer = form.answer.data
        currId = id
        correct_result = get_correct_result(currId, fix_list)
        if id <= 9:
            if attempt == 1:
                if plr_answer != correct_result:
                    flash(f'Wrong answer {name}, you have one more attempt',
                          'dark')
                    return redirect(url_for('game', id=id, attempt=2))
                else:
                    flash(f'You are correct {name}', 'success')
                    session['score'] = session['score'] + plr_answer
                    return redirect(url_for('game', id=id + 1, attempt=1))
            elif attempt == 2:
                if plr_answer != correct_result:
                    flash(f'Wrong answer {name}', 'dark')
                    return redirect(url_for('game', id=id + 1, attempt=1))
                else:
                    flash(f'You are correct {name}', 'success')
                    session['score'] = session['score'] + 1
                    return redirect(url_for('game', id=id + 1, attempt=1))
        elif id == 10:
            if attempt == 1:
                if plr_answer != correct_result:
                    flash(f'Wrong answer {name}, you have one more attempt',
                          'dark')
                    return redirect(url_for('game', id=10, attempt=2))
                else:
                    score = score + plr_answer
                    return redirect(url_for('winner'))
            if attempt == 2:
                if plr_answer != correct_result:
                    return redirect(url_for('winner'))
                else:
                    session['score'] = session['score'] + 1
                    return redirect(url_for('winner'))
    return render_template('game.html',
                           form=form,
                           id=id,
                           fix_list=fix_list,
                           name=name,
                           week=week)
Example #8
0
def game_join(match_id: str) -> CommandResponse:
    object_id = ObjectId(match_id)
    match = matches.find_one({"_id": object_id})
    if match is None:
        return error_msg("Match not found", "join", match_id)
    if match["gameState"] != GameState.WAITING_FOR_PLAYER.value:
        return error_msg("Not allowed to join", "join", match_id)

    token = "".join(random.choices(string.ascii_letters + string.digits, k=32))
    color: str = "red" if match["tokenRed"] == "" else "blue"
    board, blue_cards, red_cards, side_card = init_game()

    matches.find_one_and_update(
        {"_id": object_id},
        {"$set": {
            f"token{color.title()}": token,
            "gameState": GameState.IN_PROGRESS.value,
            "board": board_to_str(board),
            "moves": [],
            "currentTurn": side_card.color.value,
            "cards": {
                "blue": [i.name for i in blue_cards],
                "red": [i.name for i in red_cards],
                "side": side_card.name
            },
            "startingCards": {
                "blue": [i.name for i in blue_cards],
                "red": [i.name for i in red_cards],
                "side": side_card.name
            },
            "winner": Player.NONE.value
        }}
    )

    return {
        "messageType": "join",
        "matchId": match_id,
        "token": token,
        "color": color
    }
Example #9
0
        self.fights = fights_arg
        self.winning_player = winning_player_arg
        self.json_dump = json.dumps([global_map_arg], cls=LocationEncoder)


class Transition:
    pass


class Action:
    pass


def add_next_states(s):
    if states.__contains__(s.json_dump):
        return
    else:
        states[s.json_dump] = 0
        run, gm, p = game.check_input(s.global_map, s.players)
        gm, p, f, wp = game.update_game(gm, p, s.fights, s.winning_player)
        new_state = State(gm, p, f, wp)
        add_next_states(new_state)


states = {}
global_map, players, fights, winning_player = game.init_game("map_0.txt")
init_state = State(global_map, players, fights, winning_player)
add_next_states(init_state)
for state in states:
    print(state)
Example #10
0
def play_the_game():
    gears.init_gears()
    game.init_game()

    check_rpg_saves()

    logging.basicConfig(level=logging.DEBUG,
                        filename=pbge.util.user_dir("errors.log"))

    #pbge.namegen.KoreanNameGen.generate_library2(pbge.util.data_dir("KoreanNames.txt"), pbge.util.data_dir("ng_korean2.json"))
    #mynamegen = pbge.namegen.KoreanNameGen(pbge.util.data_dir("ng_korean2.json"))
    #for t in range(200):
    #    print(mynamegen.gen_word2())

    #print(os.getenv("APPDATA"))

    # myfoo = game.content.ghplots.test.Foo()
    # with open(pbge.util.user_dir('bar.p'), "wb") as f:
    #    pickle.dump(myfoo, f, -1)
    # with open(pbge.util.user_dir('bar.p'), "rb") as f:
    #    foo2 = pickle.load(f)

    # print timeit.timeit("""mypic = pbge.image.Image('mecha_buruburu.png',color=(gears.color.ArmyDrab,gears.color.ShiningWhite,gears.color.ElectricYellow,gears.color.GullGrey,gears.color.Terracotta),flags=pygame.RLEACCELOK)""",setup='import pygame, pbge, gears',number=10)
    # print timeit.timeit("""mypic = pbge.image.Image('mecha_buruburu.png',color=(gears.color.ArmyDrab,gears.color.ShiningWhite,gears.color.ElectricYellow,gears.color.GullGrey,gears.color.Terracotta))""",setup='import pbge, gears',number=10)

    #fname = "mecha_wraith.png"
    #mypic = pbge.image.Image(fname, color=gears.factions.RegExCorporation.mecha_colors)
    #mydest = pygame.Surface((mypic.frame_width, mypic.frame_height))
    #mydest.fill((15, 15, 50))
    #mypic.render((0,0),dest_surface=mydest)
    #pygame.image.save(mydest, pbge.util.user_dir("out_"+fname))

    # mypor = gears.portraits.Portrait()
    # mypor.bits = ["FBA NoBody","Haywire B3 Head"]
    # mypic = mypor.build_portrait(None,False,True)
    # pygame.image.save(mypic.bitmap, pbge.util.user_dir("out.png"))
    try:
        tsrd = TitleScreenRedraw()
        pbge.my_state.view = tsrd

        action = True
        while action:
            mymenu = pbge.rpgmenu.Menu(TitleScreenRedraw.MENU_DEST.dx,
                                       TitleScreenRedraw.MENU_DEST.dy,
                                       TitleScreenRedraw.MENU_DEST.w,
                                       TitleScreenRedraw.MENU_DEST.h,
                                       predraw=tsrd,
                                       font=pbge.my_state.huge_font,
                                       no_escape=pbge.util.config.getboolean(
                                           "GENERAL",
                                           "no_escape_from_title_screen"))

            mymenu.add_item("Load Campaign", LoadGameMenu)
            mymenu.add_item("Start Campaign", StartGameMenu)
            mymenu.add_item("Create Character", open_chargen_menu)
            mymenu.add_item("Import GH1 Character", import_arena_character)
            mymenu.add_item("Config Options", open_config_menu)
            mymenu.add_item("Browse Mecha", game.mechabrowser.MechaBrowser())
            mymenu.add_item("Edit Mecha", game.geareditor.LetsEditSomeMeks)
            if quarantined_files:
                mymenu.add_item("Quarantined Saves", view_quarantine)
            if pbge.util.config.getboolean("GENERAL", "dev_mode_on"):
                mymenu.add_item("Edit Scenario",
                                game.scenariocreator.start_plot_creator)
                mymenu.add_item("Compile Plot Bricks",
                                game.scenariocreator.PlotBrickCompiler)
                mymenu.add_item("Eggzamination", game.devstuff.Eggzaminer)
                mymenu.add_item("Just Show Background", just_show_background)
                mymenu.add_item("Steam The Eggs", prep_eggs_for_steam)
            mymenu.add_item("Quit", None)

            pbge.my_state.start_music(TITLE_THEME)
            action = mymenu.query()
            if action:
                action(tsrd)
    except Exception as e:
        print(traceback.format_exc())
        pbge.alert(
            "Python Exception ({}) occurred- please send the error.log in your ghcaramel user folder to [email protected].\nK THX gonna crash now."
            .format(e))
        logging.exception(e)
        logging.critical("Please email this file to [email protected]")
Example #11
0
File: main.py Project: Pranz/gsgpy
# Grand strategy game taking place in a fantasy universe.
#
# Python 2.7
# All code except for the libtcod library written by Jesper Fridefors

import libtcodpy as libtcod
import os
import game

CWD = os.getcwd()
FONT_DIR = os.path.abspath(CWD + "/fonts")
DATA_DIR = os.path.abspath(CWD + "/data")

FONT     = "terminal12x12_gs_ro.png"

SCREEN_WIDTH  = 80
SCREEN_HEIGHT = 60

COLOR_TEXT = libtcod.Color(255,255,255)

if __name__ == "__main__":
	libtcod.console_set_custom_font(FONT_DIR + "/" + FONT, libtcod.FONT_TYPE_GREYSCALE | libtcod.FONT_LAYOUT_ASCII_INROW)
	libtcod.console_init_root(SCREEN_WIDTH, SCREEN_HEIGHT, "TownRPG", False)
	
	game.init_game()

	while not libtcod.console_is_window_closed():
		if game.loop():
			break
Example #12
0
from game import init_game, card_message, show_result, show_chips
import random
player_cards = []
dealer_cards = []
chips = 0
deck = init_game()  # create decks
playing = False
try:
    command = input()
    if command == 'node start':
        playing = True
    else:
        # invalid input
        raise Exception()
    while (playing):
        # shuffle the deck
        random.shuffle(deck)
        # give two cards to player
        for i in range(1, 3):
            player_cards.append(deck[-i])
        # last pair for dealer
        for i in range(2):
            dealer_cards.append(deck[i])
        bet = int(input('Plase put your bet\n'))
        print(f'You got {card_message(player_cards)}')
        print(f'Dealer got {card_message(dealer_cards)}')
        # check who win this game
        result, chips = show_result(player_cards, dealer_cards, bet, chips)
        print(result)
        command = input('Wanna play more (Yes/No)?\n')
        if command.lower() == 'no':
from bge import logic, events

from time import time
from game import init_game, input_events
from work import do_work
from npc import iterate_npc
from path_finder import PathManager

init_game()
logic.running = True
logic.debug = 0
counter = 0

logic.path_manager = PathManager()


def iterate_pathing_generator():
    logic.path_manager.tick()


def tick_game(cont):
    start = time()
    global counter

    cont.owner['RUNNING'] = logic.running
    cont.owner['DEBUG_MODE'] = logic.debug

    kb_events = logic.keyboard.events
    activated = logic.KX_INPUT_JUST_ACTIVATED
    if activated in (kb_events[events.PADMINUS], kb_events[events.F11KEY]):
        logic.running = not logic.running
Example #14
0
    def create(self):
        self.lb = tk.Label(self.root,
                           text="Nuclear Shield",
                           width=20,
                           height=2,
                           bd=0,
                           fg="yellow",
                           bg="black",
                           font="Times 20")
        self.lb.pack()
        self.btn_ng = tk.Button(self.root,
                                text="New game",
                                command=lambda: init_game(),
                                width=20,
                                height=2,
                                bd=8,
                                fg="yellow",
                                bg="black",
                                activebackground="yellow",
                                font="Times 13",
                                relief="ridge")
        self.btn_ng.pack()
        self.btn_settings = tk.Button(self.root,
                                      text="Setings",
                                      command=lambda: self.settings(),
                                      width=20,
                                      height=2,
                                      bd=8,
                                      fg="yellow",
                                      bg="black",
                                      activebackground="yellow",
                                      font="Times 13",
                                      relief="ridge")

        self.btn_settings.pack()
        self.btn_rec = tk.Button(self.root,
                                 text="Records",
                                 command=lambda: self.records(),
                                 width=20,
                                 height=2,
                                 bd=8,
                                 fg="yellow",
                                 bg="black",
                                 activebackground="yellow",
                                 font="Times 13",
                                 relief="ridge")
        self.btn_rec.pack()
        self.btn_about = tk.Button(self.root,
                                   text="About",
                                   command=lambda: self.about(),
                                   width=20,
                                   height=2,
                                   bd=8,
                                   fg="yellow",
                                   bg="black",
                                   activebackground="yellow",
                                   font="Times 13",
                                   relief="ridge")
        self.btn_about.pack()
        self.btn_quit = tk.Button(self.root,
                                  text="Quit",
                                  command=lambda: self.root.quit(),
                                  width=20,
                                  height=2,
                                  bd=8,
                                  fg="yellow",
                                  bg="black",
                                  activebackground="yellow",
                                  font="Times 13",
                                  relief="ridge")
        self.btn_quit.pack()
        self.generate_decor()
Example #15
0
def play_the_game():
    # Step one is to find our gamedir. The process is slightly different depending on whether we are running from
    # source, running from a PyInstaller build, or running from a cx_Freeze build.
    if getattr(sys, "_MEIPASS", False):
        # PyInstaller build.
        gamedir = sys._MEIPASS
    elif getattr(sys, "frozen", False):
        # cx_Freeze build.
        gamedir = os.path.dirname(sys.executable)
    else:
        # The application is not frozen
        gamedir = os.path.dirname(__file__)

    pbge.init('GearHead Caramel',
              'ghcaramel',
              gamedir,
              poster_pattern='eyecatch_*.png')
    pbge.please_stand_by()
    gears.init_gears()
    game.init_game()

    #myfoo = game.content.ghplots.test.Foo()
    #with open(pbge.util.user_dir('bar.p'), "wb") as f:
    #    pickle.dump(myfoo, f, -1)
    #with open(pbge.util.user_dir('bar.p'), "rb") as f:
    #    foo2 = pickle.load(f)

    # print timeit.timeit("""mypic = pbge.image.Image('mecha_buruburu.png',color=(gears.color.ArmyDrab,gears.color.ShiningWhite,gears.color.ElectricYellow,gears.color.GullGrey,gears.color.Terracotta),flags=pygame.RLEACCELOK)""",setup='import pygame, pbge, gears',number=10)
    # print timeit.timeit("""mypic = pbge.image.Image('mecha_buruburu.png',color=(gears.color.ArmyDrab,gears.color.ShiningWhite,gears.color.ElectricYellow,gears.color.GullGrey,gears.color.Terracotta))""",setup='import pbge, gears',number=10)

    #mypic = pbge.image.Image('Onawa.png',color=(gears.color.Viridian, gears.color.MediumSkin, gears.color.BlackRose, gears.color.AeroBlue, gears.color.AeroBlue))
    #mydest = pygame.Surface((mypic.frame_width, mypic.frame_height))
    #mydest.fill((0, 0, 25))
    #mypic.render((0,0),dest_surface=mydest)
    #pygame.image.save(mydest, pbge.util.user_dir("out_Joust.png"))

    # mypor = gears.portraits.Portrait()
    # mypor.bits = ["FBA NoBody","Haywire B3 Head"]
    # mypic = mypor.build_portrait(None,False,True)
    # pygame.image.save(mypic.bitmap, pbge.util.user_dir("out.png"))

    tsrd = TitleScreenRedraw()
    mymenu = pbge.rpgmenu.Menu(TitleScreenRedraw.MENU_DEST.dx,
                               TitleScreenRedraw.MENU_DEST.dy,
                               TitleScreenRedraw.MENU_DEST.w,
                               TitleScreenRedraw.MENU_DEST.h,
                               predraw=tsrd,
                               font=pbge.my_state.huge_font)

    mymenu.add_item("Load Campaign", load_game)
    mymenu.add_item("Start Campaign", start_game)
    mymenu.add_item("Create Character", open_chargen_menu)
    mymenu.add_item("Import GH1 Character", import_arena_character)
    mymenu.add_item("Config Options", open_config_menu)
    mymenu.add_item("Browse Mecha", game.mechabrowser.MechaBrowser())
    mymenu.add_item("Edit Mecha", game.geareditor.LetsEditSomeMeks)
    mymenu.add_item("Edit Scenario", game.plotcreator.start_plot_creator)
    if pbge.util.config.getboolean("GENERAL", "dev_mode_on"):
        mymenu.add_item("Eggzamination", game.devstuff.Eggzaminer)
    mymenu.add_item("Quit", None)

    action = True
    while action:
        pbge.my_state.start_music(TITLE_THEME)
        action = mymenu.query()
        if action:
            action(tsrd)
Example #16
0
def main():
    single_player = menu(WIN)
    print(single_player)
    while True:
        init_game(WIN, single_player)
Example #17
0
def multiplayer(id, p_num, attempt):
    name_1 = session['name_1']
    name_2 = session['name_2']
    names = [name_1, name_2]
    form = AnswerForm()
    week = session['week']
    fix_list = init_game(week)
    if form.validate_on_submit():
        plr_answer = form.answer.data
        count = 2
        currId = id
        correct_result = get_correct_result(currId, fix_list)
        fixtures = 10
        """ play game only for count number of players """
        if p_num <= count:
            """ last fixture, last player """
            if id == fixtures and p_num == count:
                if attempt == 1:
                    if plr_answer != correct_result:
                        flash(
                            f'Wrong answer {names[p_num-1]}, you have one more attempt',
                            'dark')
                        return redirect(
                            url_for('multiplayer',
                                    id=id,
                                    p_num=p_num,
                                    attempt=2))
                    else:
                        session['score_b'] = session['score_b'] + plr_answer
                        return redirect(url_for('winnermult'))
                elif attempt == 2:
                    if plr_answer != correct_result:
                        return redirect(url_for('winnermult'))
                    else:
                        session['score_b'] = session['score_b'] + 1
                        return redirect(url_for('winnermult'))
            # if last player in a Question
            elif p_num == count:
                if attempt == 1:
                    if plr_answer != correct_result:
                        flash(
                            f'Wrong answer {names[p_num-1]}, you have one more attempt',
                            'dark')
                        return redirect(
                            url_for('multiplayer',
                                    id=id,
                                    p_num=p_num,
                                    attempt=2))
                    else:
                        flash(f'You are correct {names[p_num-1]}', 'success')
                        session['score_b'] = session['score_b'] + plr_answer
                        return redirect(
                            url_for('multiplayer',
                                    id=id + 1,
                                    p_num=1,
                                    attempt=1))
                elif attempt == 2:
                    if plr_answer != correct_result:
                        flash(f'Wrong answer {names[p_num-1]}', 'dark')
                        return redirect(
                            url_for('multiplayer',
                                    id=id + 1,
                                    p_num=1,
                                    attempt=1))
                    else:
                        flash(f'You are correct {names[p_num-1]}', 'success')
                        session['score_b'] = session['score_b'] + 1
                        return redirect(
                            url_for('multiplayer',
                                    id=id + 1,
                                    p_num=1,
                                    attempt=1))
            # fixture 1 to 9 all players excluding last player
            elif p_num < count:
                if attempt == 1:
                    if plr_answer != correct_result:
                        flash(
                            f'Wrong answer {names[p_num-1]}, you have one more attempt',
                            'dark')
                        return redirect(
                            url_for('multiplayer',
                                    id=id,
                                    p_num=p_num,
                                    attempt=2))
                    else:
                        flash(f'You are correct {names[p_num-1]}', 'success')
                        session['score_a'] = session['score_a'] + plr_answer
                        return redirect(
                            url_for('multiplayer',
                                    id=id,
                                    p_num=p_num + 1,
                                    attempt=1))
                elif attempt == 2:
                    if plr_answer != correct_result:
                        flash(f'Wrong answer {names[p_num-1]}', 'dark')
                        return redirect(
                            url_for('multiplayer',
                                    id=id,
                                    p_num=p_num + 1,
                                    attempt=1))
                    else:
                        flash(f'You are correct {names[p_num-1]}', 'success')
                        session['score_a'] = session['score_a'] + 1
                        return redirect(
                            url_for('multiplayer',
                                    id=id,
                                    p_num=p_num + 1,
                                    attempt=1))
    return render_template('multiplayer.html',
                           form=form,
                           id=id,
                           fix_list=fix_list,
                           p_num=p_num,
                           names=names,
                           week=week)
Example #18
0
def gamethread(accept1, accept2):
    # establish a connection
    p1_conn, p1_addr = accept1
    p2_conn, p2_addr = accept2

    print(f'start {p1_addr} vs {p2_addr}')

    TABLE = game.TABLE
    send_pickle(p1_conn, TABLE)
    send_pickle(p2_conn, TABLE)

    name1 = pickle.loads(p1_conn.recv(1024))
    name2 = pickle.loads(p2_conn.recv(1024))
    p1, p2 = game.init_game(name1, name2)

    print(f'{p1_addr}: {p1.name}')
    print(f'{p2_addr}: {p2.name}')

    send_pickle(p1_conn, p2.name)
    send_pickle(p2_conn, p1.name)

    rounds = 1

    while True:
        p1_conn.recv(1024)
        send_pickle(p1_conn, [rounds, p1.star, p1.cards])
        p2_conn.recv(1024)
        send_pickle(p2_conn, [rounds, p2.star, p2.cards])

        # select a card
        p1_choice = pickle.loads(p1_conn.recv(1024))
        p2_choice = pickle.loads(p2_conn.recv(1024))
        p1.cards[p1_choice] -= 1
        p2.cards[p2_choice] -= 1

        # judge win or lose
        p1, p1_judge, p2, p2_judge = game.judge_janken(p1, p1_choice, p2,
                                                       p2_choice)
        send_pickle(p1_conn, [p1_judge, p1_choice, p2_choice])
        send_pickle(p2_conn, [p2_judge, p2_choice, p1_choice])

        # game over or not
        ison = game.is_on(p1, p2)
        send_pickle(p1_conn, ison)
        send_pickle(p2_conn, ison)
        if not ison:
            break

        rounds += 1

    winner = game.winner(p1, p2)
    if not winner:
        game_result = 'DRAW'
    else:
        if winner == p1:
            game_result_p1 = ['WIN', f'WINNER: {winner.name}']
            game_result_p2 = ['LOSE', f'WINNER: {winner.name}']
        else:
            game_result_p1 = ['LOSE', f'WINNER: {winner.name}']
            game_result_p2 = ['WIN', f'WINNER: {winner.name}']

    p1_conn.recv(1024)
    send_pickle(p1_conn, [game_result_p1, p1.results])
    p2_conn.recv(1024)
    send_pickle(p2_conn, [game_result_p2, p2.results])

    p1_conn.close()
    print(f'closed: {p2_addr}')
    p2_conn.close()
    print(f'closed: {p2_addr}')
    for i in range(0, len(state), 4):
        l.append(state.pop() / 20 + 0.5)
        l.append(state.pop() / 20 + 0.5)
        l.append(state.pop() / game.HEIGHT)
        l.append(state.pop() / game.WIDTH)

    return l


#The model is trained with the expected rewards and the actual reward of the action + the next (current) reward times the discount. so expected_reward = model.predict(state)
#expected_reward[action] += reward * discount , I think
def create_model(input_size):
    model = Sequential()
    model.add(Dense(40, input_dim=input_size))
    model.add(Activation("relu"))
    model.add(Dense(len(actions)))
    model.add(Activation("linear"))

    model.compile(loss='mse', optimizer=keras.optimizers.adam(lr=lr))

    return model


if __name__ == "__main__":
    if len(sys.argv) == 1:
        print("Please specify number of balls")
        sys.exit()
    game.init_game(int(sys.argv[1]))
    model = create_model(1 + 4 * int(sys.argv[1]))
    train(model, eps=10000, speed=int(sys.argv[2]))
Example #20
0
alpha = 0.5
gamma = 0.9
neg_r = -1
pos_r = 5
game_counter = 0
total_elapsed_time = 0
total_number_guess = 0

#Inititiating all states for range n
states_map = game.init_states_map()

# Number of games the agent will play
for i in range(game_number):
    guesses = 0
    # New Game
    state, magic_number = game.init_game()
    # print(states_map)

    #Game is won when agent find the state [magic_number, magic_number]
    while state != 'won':
        guesses = guesses + 1
        future_states = agent.find_future_states(state, states_map)
        best_choice = agent.find_best_choice(state, future_states)
        choice = agent.give_choice(best_choice, epsilon, state)
        new_state = game.play(choice, magic_number)
        agent.update_q_values(states_map, future_states, state, choice,
                              new_state, alpha, gamma, neg_r)
        state = new_state
    total_number_guess = total_number_guess + guesses
    game_counter = game_counter + 1
    # print(round(total_number_guess/game_counter, 2))
Example #21
0
def main():
    pawns = game.init_game()
    game.progress(pawns)
Example #22
0
    def apply_command(matches: Collection, query: str) -> List[Message]:
        split = query.split(" ")
        match_id = split[0]

        check: Union[Message,
                     ObjectId] = Command.check_match_id(match_id, "join")
        if isinstance(check, Message):
            return [check]

        object_id = check
        username = "******".join(split[1:])
        match = matches.find_one({"_id": object_id})
        if match is None:
            return [Command.error_msg("Match not found", "join", match_id)]
        if match["gameState"] != GameState.WAITING_FOR_PLAYER.value:
            return [Command.error_msg("Not allowed to join", "join", match_id)]

        token: str = token_hex(32)
        color: str = "red" if match["tokenRed"] == "" else "blue"
        board, blue_cards, red_cards, side_card = init_game()
        usernames = match["usernames"]
        usernames[color] = username
        indices = match["indices"]
        indices[color] = 1

        matches.find_one_and_update({"_id": object_id}, {
            "$set": {
                f"token{color.title()}": token,
                "usernames": usernames,
                "indices": indices,
                "gameState": GameState.IN_PROGRESS.value,
                "board": board_to_str(board),
                "moves": [],
                "currentTurn": side_card.color.value,
                "cards": {
                    "blue": [i.name for i in blue_cards],
                    "red": [i.name for i in red_cards],
                    "side": side_card.name
                },
                "startingCards": {
                    "blue": [i.name for i in blue_cards],
                    "red": [i.name for i in red_cards],
                    "side": side_card.name
                },
                "winner": Player.NONE.value
            }
        })

        return [
            Message(
                {
                    "messageType": "join",
                    "matchId": match_id,
                    "token": token,
                    "index": 1
                }, True, match_id),
            Message(
                Command.generate_state_dict(
                    matches.find_one({"_id": object_id})),  # type: ignore
                False,
                match_id)
        ]
Example #23
0
def main():
    # Инициализация переменных
    game.init_game()

    # Инициализация mixer
    game.init_snd()

    if values.game_is_on:
        game.show_menu(display)
        values.game_is_on = False

    # Настройка сложности
    game.set_difficulty()

    # Создание игрока и врага
    game_player = player.Player()
    game_enemy = enemy.Enemy()

    # Основной цикл игры
    while True:
        # Отслеживание FPS
        clock.tick(values.FPS)

        # Вывод фона игры
        display.blit(game_bg.image, game_bg.rect)

        # Отслеживание движений и действий игрока
        game_player.track_move(pygame.key.get_pressed())

        # Рождение нового врага, если старый был преодолен
        game_enemy.born()

        # Прорисовка врага
        game_enemy.draw(display)

        # Прорисовка интерфейса игры: очков, защиты, оставшегося для убийства времени
        game.print_interface(display, game_player, game_enemy)

        # Отслеживание событий клавиатуры
        game.track_event(game_player, game_enemy)

        # Похвала для игрока за меткий выстрел
        game.praise_player(display)

        # Прорисовка игрока
        game_player.draw(display)

        # Проверка счета игрока для определения победы и поражения
        game_player.score_check(display)

        # Если пользователь нажал на Try again, игра начинается заново
        if values.again:
            main()

        # Обработка ситуации, в которой игрок оказывается атакованным
        game_player.if_attacked(display, game_enemy)

        # Отрисовка части прицела игрока
        values.line_color = colors.RED

        # Обновление экрана
        pygame.display.update()
Example #24
0
wd.configure(height=height, width=width)
wd.resizable(0, 0)

# Title print
title = tk.Label(wd, bg="white", font=(None, -17, "bold"), text="The Hangman")
title.place(anchor='n', x=width / 2, y=15)

# Image load and resize
img_raw = Image.open("logo.jpg")
img_height = 150
img_width = 150
img_raw = img_raw.resize((img_height, img_width))

# Image conversion
image = ImageTk.PhotoImage(img_raw)

# Image show
can = tk.Canvas(wd,
                bg="white",
                height=img_height,
                highlightthickness=0,
                width=img_width)
can.create_image(0, 0, image=image, anchor='nw')
can.place(anchor='n', x=width / 2, y=50)

# Play button
play = tk.Button(wd, text="Play !", command=lambda: game.init_game(wd))
play.place(anchor='s', x=width / 2, y=height - 30)

wd.mainloop()
Example #25
0
gamma = 0.9
neg_r = -1
pos_r = 5
game_counter = 0
total_elapsed_time = 0
total_number_guess = 0


#Inititiating all states for range n
states_map = game.init_states_map()

# Number of games the agent will play
for i in range(game_number):
	guesses = 0
	# New Game
	state, magic_number = game.init_game()
	# print(states_map)
	
	#Game is won when agent find the state [magic_number, magic_number]
	while state != 'won':
		guesses = guesses + 1
		future_states = agent.find_future_states(state, states_map)
		best_choice = agent.find_best_choice(state, future_states)
		choice = agent.give_choice(best_choice, epsilon, state)
		new_state = game.play(choice, magic_number)
		agent.update_q_values(states_map, future_states, state, choice, new_state, alpha, gamma, neg_r)
		state = new_state
	total_number_guess = total_number_guess + guesses
	game_counter = game_counter + 1
	# print(round(total_number_guess/game_counter, 2))
	# print(game_number - game_counter)