0

これは私が抱えている非常に特殊な問題です。このコード (以下) はエラーを発生させませんが、プレーヤーまたはコンピューターによる動きの更新と表示は行いません。
問題は何ですか?? 私は本当に混乱しています。
また、このコードで定義されていないすべての関数は、TicTacToe およびWork!からインポートされます。
ゲームのロジック機能に問題はありません。問題は、表示 (pygame) コードにあります。
入力は現在コンソールからです

from TicTacToe import * # The game logic functions
import pygame
from pygame.locals import *
#-------------The problem may be here---------------#
def printb(board,surface,image): 
    surface.blit(image,(0,0))
    for x in range(3):
        for y in range(3):
            disp(board[x+(y*3)],(58*x,58*y+13),surface)  # any inputs on a better way to do this??
#-------------The problem may be here---------------#
def disp(phrase,loc,screen):
    s = font.render(phrase, True, (0,0,0))
    screen.blit(s, loc)

if __name__ == '__main__':
    # Pygame
    pygame.init()
    pygame.font.init()

    screen = pygame.display.set_mode((200,250))
    screen.fill((0,255,0))

    img = pygame.image.load('Board.png')
    img = img.convert_alpha()

    font = pygame.font.SysFont("Courier",11)
#----------The problem may even be here---------------#
    # Game
    board = [' ']*9
    playing = True
    while True:
        while True:
            for event in pygame.event.get():
                if event.type == QUIT:
                    pygame.quit()

            printb(board,screen,img)

            pmove = playermove(board) # player move
            makemove(board,pmove,'O')

            if checkwinner(board,'O'):
                winner = 'P'
                break

            else:
                if boardfull(board):
                    break
                cmove = compmove(board) # comp move
                makemove(board,cmove,'X')

                if checkwinner(board,'X'):
                    winner = 'C'
                    break

            pygame.display.flip()
        printb(board,screen,img)
        if winner == 'P':
            print 'You'
        elif winner == 'C':
            print 'I'
        else:
            print'Draw'
        if playagain():
            board = [' ']*9
            print '\n\n'
        else:
            break

実行の 1 つ (IDLE 時) で、プレイヤーは' O '、コンピューターは' X '

>>> 
Enter Your Move: 1
Enter Your Move: 2
Enter Your Move: 3
Not free space!!
Enter Your Move: 4
I Win !!
Play Again? -> n
>>> board
['O', 'O', 'X', 'O', ' ', 'X', ' ', ' ', 'X']
>>> winner
'C'

これがpygameウィンドウです。常に同じままです。
窓

4

0 に答える 0