コード例 #1
0
ファイル: main.py プロジェクト: WPIFall2016AI/GomokuProject
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)
コード例 #2
0
ファイル: main.py プロジェクト: WPIFall2016AI/GomokuProject
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)
コード例 #3
0
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)
コード例 #4
0
ファイル: main.py プロジェクト: WPIFall2016AI/GomokuProject
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)