您的位置:首页技术文章
文章详情页

python实现简单的井字棋

浏览:26日期:2022-06-18 13:05:40

本文实例为大家分享了python实现简单的井字棋的具体代码,供大家参考,具体内容如下

使用python实现井字棋游戏,没有具体算法,只是用随机下棋简单实现:

import randomboard = [[’+’,’+’,’+’],[’+’,’+’,’+’],[’+’,’+’,’+’]]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 1def 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 Falsedef main(): print('初始棋盘:') oput(board) flag = 0 t = input('human first? Y/N human for X, machine for On') if t == ’Y’:while isempty(board): print('人走: ') a, b = map(int, input('输入落子纵横坐标: a,b n').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 n').split(’,’)) if board[a][b] == ’+’:board[a][b] = ’X’oput(board)flag = test(board)if flag == 1: break else:print('落子位置不对')continueif __name__ == '__main__': main()

结果:

python实现简单的井字棋

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持好吧啦网。

标签: Python 编程
相关文章: