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)
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)
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
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()
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")
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)
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)
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 }
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)
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]")
# 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
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
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()
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)
def main(): single_player = menu(WIN) print(single_player) while True: init_game(WIN, single_player)
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)
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]))
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))
def main(): pawns = game.init_game() game.progress(pawns)
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) ]
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()
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()
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)