def main(): global_init() btn_start = sc.Button(gv.g_btn_start_imgloc, gv.g_size_btn, gv.g_pos_btn_start) btn_about = sc.Button(gv.g_btn_about_imgloc, gv.g_size_btn, gv.g_pos_btn_about) surface_game() while True: for event in pygame.event.get(): if event.type == QUIT: exit() gv.g_screen.blit(gv.g_home_img, (0, 0)) btn_start.update(surface_game) btn_about.update(surface_about) pygame.display.update() gv.g_clock.tick(30)
def surface_about(): btn_back = sc.Button(gv.g_btn_back_imgloc, gv.g_size_btn, gv.g_pos_btn_back) about_bkgimg = sc.load_img(gv.g_surfaceback_img_fileloc, gv.g_size_win) while True: for event in pygame.event.get(): if event.type == QUIT: exit() gv.g_screen.blit(about_bkgimg, (-1, -1)) if btn_back.update(nop) == 1: break pygame.display.update() gv.g_clock.tick(30)
def surface_game(): grid_img = sc.loadimg("img/grid.png", gv.g_size_win) w_img = sc.loadimg("img/round_white.png", (24, 24)) b_img = sc.loadimg("img/round_black.png", (24, 24)) think_img = sc.loadimg("img/think.png", (120, 60)) back_btn = sc.Button(gv.g_btn_gameback_imgloc, gv.g_size_btn_gameback, gv.g_pos_btn_gameback) goback_btn = sc.Button(gv.g_btn_goback_imgloc, gv.g_size_btn_gameback, gv.g_pos_btn_goback) goahead_btn = sc.Button(gv.g_btn_goahead_imgloc, gv.g_size_btn_gameback, gv.g_pos_btn_goahead) computer_pgsbar = sc.ProgressBar("img/round_white.png", (12, 12), (675, 50), 40) player_pgsbar = sc.ProgressBar("img/round_black.png", (12, 12), (720, 440), 40) wzqcore = core.Core() input_info = sc.GetInput() while True: for event in pygame.event.get(): if event.type == QUIT: exit() gv.g_screen.blit(grid_img, (0, 0)) sc.draw_table(wzqcore, w_img, b_img) # 不为0时,已分胜负 if wzqcore.who_win != 0: one_more_img = sc.loadimg("img/one_more_time.png", (100, 80)) win_img = sc.loadimg( "img/win.png" if wzqcore.who_win == 1 else "img/win_2.png", (130, 45)) gv.g_screen.blit(win_img, (300, 495)) gv.g_screen.blit(one_more_img, (20, 420)) # 未分胜负 else: # 电脑落子 if wzqcore.busy == 1: # 显示 思考 gv.g_screen.blit(gv.g_txt_w_thinking, (670, 27)) computer_pgsbar.draw() # 玩家落子 else: input_status = input_info.scan() if input_status[0] == 1: tab_pos = sc.pixpos_to_table(input_status[1:]) wzqcore.player_take(tab_pos) # 绘制进度条 gv.g_screen.blit(think_img, (680, 420)) player_pgsbar.draw() if wzqcore.busy == 0 and wzqcore.index > 1: goback_btn.update(wzqcore.go_back) goahead_btn.update(wzqcore.go_ahead) if back_btn.update(nop) == 1: break pygame.display.update() gv.g_clock.tick(15)
def surface_game(): grid_img = sc.load_img("img_res/grid.png", gv.g_size_win) w_img = sc.load_img("img_res/round_white.png", (24, 24)) b_img = sc.load_img("img_res/round_black.png", (24, 24)) think_img = sc.load_img("img_res/think.png", (120, 60)) back_btn = sc.Button(gv.g_btn_gameback_imgloc, gv.g_size_btn_gameback, gv.g_pos_btn_gameback) goback_btn = sc.Button(gv.g_btn_goback_imgloc, gv.g_size_btn_gameback, gv.g_pos_btn_goback) goahead_btn = sc.Button(gv.g_btn_goahead_imgloc, gv.g_size_btn_gameback, gv.g_pos_btn_goahead) computer_pgsbar = sc.ProgressBar("img_res/round_white.png", (12, 12), (675, 50), 40) player_pgsbar = sc.ProgressBar("img_res/round_black.png", (12, 12), (720, 440), 40) gomoku_core = core.Core() input_info = sc.GetInput(); while True: for event in pygame.event.get(): if event.type == QUIT: exit() # Draw the backgroudn gv.g_screen.blit(grid_img, (0, 0)) # Draw the piece sc.draw_table(gomoku_core, w_img, b_img) # Win/Lose is decided if gomoku_core.who_win != 0: one_more_img = sc.load_img("img_res/one_more_time.jpg", (100, 80)) if gomoku_core.who_win == 1: win_img = sc.load_img("img_res/win.jpg", (130, 45)) else: win_img = sc.load_img("img_res/win_2.png", (130, 45)) gv.g_screen.blit(win_img, (300, 495)) gv.g_screen.blit(one_more_img, (20, 420)) # Win/lose is not decided else: # Computer if gomoku_core.busy == 1: gv.g_screen.blit(gv.g_txt_w_thinking, (670, 27)) computer_pgsbar.draw() # Player else: input_status = input_info.scan() if input_status[0] == 1: tab_pos = sc.pixpos_to_table((input_status[1], input_status[2])) gomoku_core.player_take(tab_pos) gv.g_screen.blit(think_img, (680, 420)) player_pgsbar.draw() if gomoku_core.busy == 0 and gomoku_core.index > 1: goback_btn.update(gomoku_core.go_back) goahead_btn.update(gomoku_core.go_ahead) if back_btn.update(nop) == 1: break pygame.display.update() gv.g_clock.tick(15)