一组井字棋游戏的python实现。

创建一个三横三竖的棋盘,以小键盘数字1-9代表棋盘中的位置,玩家分别执#和0棋子。以连城一条线为胜利。

运行代码显示结果如下:

代码如下:

import copydef creatBoard():"""创建一个三纵三列的空白棋盘"""board = {1: ' ', 2: ' ', 3: ' ',4: ' ', 5: ' ', 6: ' ',7: ' ', 8: ' ', 9: ' '}return boarddef printBoard(board):"""显示棋盘"""print(board[7] + '|' + board[8] + '|' + board[9])print('-+-+-')print(board[4] + '|' + board[5] + '|' + board[6])print('-+-+-')print(board[1] + '|' + board[2] + '|' + board[3])def nextBoard(board):"""响应用户输入,并输出新的棋盘"""new_board = copy.copy(board)work = False #用户是否成功输入下一步棋子的标志while not work:print('下一个' + turn + '棋子走在哪个位置?')move = input()if move == '1' and new_board[1] == ' ':new_board[1] = turnwork = Trueelif move == '2' and new_board[2] == ' ':new_board[2] = turnwork = Trueelif move == '3' and new_board[3] == ' ':new_board[3] = turnwork = Trueelif move == '4' and new_board[4] == ' ':new_board[4] = turnwork = Trueelif move == '5' and new_board[5] == ' ':new_board[5] = turnwork = Trueelif move == '6' and new_board[6] == ' ':new_board[6] = turnwork = Trueelif move == '7' and new_board[7] == ' ':new_board[7] = turnwork = Trueelif move == '8' and new_board[8] == ' ':new_board[8] = turnwork = Trueelif move == '9' and new_board[9] == ' ':new_board[9] = turnwork = Trueelse:print('请输入正确的位置')return new_boarddef check_win(board):"""检查程序是否需要关闭"""global active #游戏活动状态标志是全局变量global winner #胜利玩家的标志是全局变量number = 0 #记录被占用的格子for v in board.values():if v != ' ':number += 1if board[7] != ' ' and board[7] == board[8] == board[9]:active = Falsewinner = turnif board[4] != ' ' and board[4] == board[5] == board[6]:active = Falsewinner = turnif board[1] != ' ' and board[1] == board[2] == board[3]:active = Falsewinner = turnif board[7] != ' ' and board[7] == board[4] == board[1]:active = Falsewinner = turnif board[8] != ' ' and board[8] == board[5] == board[2]:active = Falsewinner = turnif board[9] != ' ' and board[9] == board[6] == board[3]:active = Falsewinner = turnif board[7] != ' ' and board[7] == board[5] == board[3]:active = Falsewinner = turnif board[9] != ' ' and board[9] == board[5] == board[1]:active = Falsewinner = turnelif number == 9:active = Falsedef turn_player(piece):"""更换玩家,改变输入棋子格式"""if piece == 'x':piece = '0'else:piece = 'x'return piece"""
下面是程序主控制部分
"""#创建棋盘,并设置程序活动状态以及默认参数
theBoard = creatBoard()
active = True #游戏初始活动状态
turn = 'x' #执x子的玩家先行
winner = '' #存储胜利玩家的变量while active:printBoard(theBoard) #显示当前的棋盘theBoard = nextBoard(theBoard) #用户输入下一步棋子,并生成相应的棋盘check_win(theBoard) #检查是否有玩家获胜,或者是否棋盘被占满turn = turn_player(turn) #轮换玩家#下面的代码,显示游戏结束后的棋盘状态。再显示获胜方,或者是平局。
printBoard(theBoard)
if winner != '':print(str(winner) + '方获取了胜利')
else:print('平局')

python模拟井字棋相关推荐

  1. python实现井字棋

    参考学习:Python实现井字棋游戏 闲扯 井字棋(Tic-Tac-Toe),初高中进行打发时间的一种画x画o的游戏,3*3的格子组成,一方把行列斜行连成相同的就算获胜. 那么怎么利用进行人机对弈这种 ...

  2. python编写井字棋_编写井字游戏

    python编写井字棋 Programming computer games may be the most technically challenging (and possibly the bes ...

  3. python写井字棋_python 游戏(井字棋)

    1. 游戏思路和流程图 实现功能,现实生活中的井字棋玩法 游戏流程图SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠. 2. 使用模块和游戏提示 impor ...

  4. php井字游戏,python实现井字棋游戏

    #本游戏python3.4.0下编写调试,只能在windows下运行. import random import subprocess import time #定义函数 def draw_board ...

  5. python写井字棋_python实现简单井字棋游戏

    #!/usr/bin/env python3 # -*- coding:utf-8 -*- u''' Created on 2019年4月13日 @author: wuluo ''' author = ...

  6. python井字棋_python实现井字棋小游戏

    本文为大家分享了python实现井字棋小游戏,供大家参考,具体内容如下 周五晚上上了python的选修课,本来以为老师是从python的基础语法开始的,没想到是从turtle画图开始,正好补上了我以前 ...

  7. python井字棋游戏代码_python实现井字棋游戏

    python实现井字棋游戏 来源:中文源码网    浏览: 次    日期:2018年9月2日 [下载文档:  python实现井字棋游戏.txt ] (友情提示:右键点上行txt文档名->目标 ...

  8. python井字棋。分与人机和朋友下的那种

    python井字棋快来看看孩子的头发 怎么用python做井字棋游戏,废话不多说上代码! 相关说明 怎么用python做井字棋游戏,废话不多说上代码! 觉得有帮助送我上去!!!!!!!!!!!!!!! ...

  9. python井字棋小游戏代码_python实现井字棋小游戏

    本文为大家分享了python实现井字棋小游戏,供大家参考,具体内容如下 周五晚上上了python的选修课,本来以为老师是从python的基础语法开始的,没想到是从turtle画图开始,正好补上了我以前 ...

最新文章

  1. the serveice mysql_解决重启MySQL数据库The server quit without updating PID file问题
  2. pku1401 Factorial 计算n!末尾有几个0?
  3. Linux执行source /etc/profile报错“:command not found”
  4. Linux脚本中带有小数点的数值比较大小
  5. 返回结果乱码_峰哥说技术系列-7 Spring Boot返回JSON
  6. 机器学习-UCI数据集
  7. 765. 情侣牵手--(每日一难phase2--day14)
  8. 博途PLC 1200/1500PID PID_Temp 加热制冷双输出+级联控制(串级控制)
  9. 百度网盘链接怎么同步更新、百度网盘链接同步、百度网盘分享同步更新、百度网盘怎么同步更新、百度网盘资源同步更新、百度网盘分享文件同步更新、百度网盘好友分享同步更新、百度网盘共享文件同步更新...
  10. Xposed框架安装、使用及插件开发
  11. 云队友丨十年寒窗苦读为什么赢不过几代人的努力?
  12. 【Linux学习笔记04】Linux常用命令
  13. 给女朋友道歉的java代码_我用开源工具给女朋友写道歉信!
  14. NetFPGA-SUME开发环境安装
  15. RTT and RTO
  16. 贾俊平-第四章:数据的概括性度量
  17. 转载:开源飞控的前世今生
  18. 汉化教程: ps3闪之轨迹破解和汉化例程
  19. delmia机器人建模与装配
  20. 基于OpenCASCADE自制三维建模软件(十一)使用ASSIMP导入导出

热门文章

  1. @Builder使用
  2. 学习笔记: 图的最短路径
  3. python中【-1】、【:-1】、【::-1】、【n::-1】
  4. STM32G070RBT6基于Arduino框架GPIO输入输出模式
  5. CTFshow吃瓜杯的两道web
  6. httpposterror_HttpPost方式调用接口的3种方式
  7. MATLAB符号变量做矩阵运算出现conj()
  8. 工人工装穿戴检测算法
  9. script使用integrity属性进行安全验证
  10. 如何成为一个合格的“差”领导?