python 간단 한 정자 기 실현

4152 단어 python우물 바둑
본 논문 의 사례 는 python 이 간단 한 정자 기 를 실현 하 는 구체 적 인 코드 를 공유 하여 여러분 께 참고 하 시기 바 랍 니 다.구체 적 인 내용 은 다음 과 같 습 니 다.
python 을 사용 하여 정자 기 게임 을 실현 합 니 다.구체 적 인 알고리즘 이 없고 무 작위 로 바둑 을 두 는 것 으로 간단하게 이 루어 집 니 다.

import random
board = [['+','+','+'],['+','+','+'],['+','+','+']]
def ma(board):
    if isempty(board):
        a = random.randint(0, 2)
        b = random.randint(0, 2)
        if board[a][b] != 'X' and board[a][b] != 'O':
            print("   :")
            board[a][b] = 'O'
            oput(board)
        else:
            ma(board)
    else:
        print("  ")
def oput(board):
    print("  0 1 2")
    for i in range(3):
        print(i, end=' ')
        for j in range(3):
            print(board[i][j], end=" ")
        print("")
def winput(i,j):
    if board[i][j] == 'X':
        print("human win")
    else:
        print("machine win")
    return 1

def test(board):
    for i in range(3):
        for j in range(3):
            if board[i][j] != '+':
                if j == 0:
                    if board[i][j] == board[i][j + 1] == board[i][j + 2]:
                        return winput(i,j)
                if i == 0:
                    if board[i][j] == board[i + 1][j] == board[i + 2][j]:
                        return winput(i,j)
                if i == 0 and j == 0:
                    if board[i][j] == board[i + 1][j + 1] == board[i + 2][j + 2]:
                        return winput(i,j)
                if i == 2 and j == 0:
                    if board[i][j] == board[i - 1][j + 1] == board[i - 2][j + 2]:
                        return winput(i,j)

def isempty(board):
    for i in range(3):
        for j in range(3):
            if board[i][j] == '+':
                return True
    return False
def main():
    print("    :")
    oput(board)
    flag = 0
    t = input("human first? Y/N  human for X, machine for O
") if t == 'Y': while isempty(board): print(" : ") a, b = map(int, input(" : a,b
").split(',')) if board[a][b] == '+': board[a][b] = 'X' oput(board) flag = test(board) if flag == 1: break else: print(" ") continue ma(board) flag = test(board) if flag == 1: break if isempty(board) == 0 and flag == 0: print(" ") break elif t == 'N': while isempty(board): ma(board) flag = test(board) if isempty(board) == 0 and flag == 0: print(" ") break if flag == 1: break print(" : ") a, b = map(int, input(" : a,b
").split(',')) if board[a][b] == '+': board[a][b] = 'X' oput(board) flag = test(board) if flag == 1: break else: print(" ") continue if __name__ == "__main__": main()
결과:

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기