python模拟井字棋
一组井字棋游戏的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模拟井字棋相关推荐
- python实现井字棋
参考学习:Python实现井字棋游戏 闲扯 井字棋(Tic-Tac-Toe),初高中进行打发时间的一种画x画o的游戏,3*3的格子组成,一方把行列斜行连成相同的就算获胜. 那么怎么利用进行人机对弈这种 ...
- python编写井字棋_编写井字游戏
python编写井字棋 Programming computer games may be the most technically challenging (and possibly the bes ...
- python写井字棋_python 游戏(井字棋)
1. 游戏思路和流程图 实现功能,现实生活中的井字棋玩法 游戏流程图SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠. 2. 使用模块和游戏提示 impor ...
- php井字游戏,python实现井字棋游戏
#本游戏python3.4.0下编写调试,只能在windows下运行. import random import subprocess import time #定义函数 def draw_board ...
- python写井字棋_python实现简单井字棋游戏
#!/usr/bin/env python3 # -*- coding:utf-8 -*- u''' Created on 2019年4月13日 @author: wuluo ''' author = ...
- python井字棋_python实现井字棋小游戏
本文为大家分享了python实现井字棋小游戏,供大家参考,具体内容如下 周五晚上上了python的选修课,本来以为老师是从python的基础语法开始的,没想到是从turtle画图开始,正好补上了我以前 ...
- python井字棋游戏代码_python实现井字棋游戏
python实现井字棋游戏 来源:中文源码网 浏览: 次 日期:2018年9月2日 [下载文档: python实现井字棋游戏.txt ] (友情提示:右键点上行txt文档名->目标 ...
- python井字棋。分与人机和朋友下的那种
python井字棋快来看看孩子的头发 怎么用python做井字棋游戏,废话不多说上代码! 相关说明 怎么用python做井字棋游戏,废话不多说上代码! 觉得有帮助送我上去!!!!!!!!!!!!!!! ...
- python井字棋小游戏代码_python实现井字棋小游戏
本文为大家分享了python实现井字棋小游戏,供大家参考,具体内容如下 周五晚上上了python的选修课,本来以为老师是从python的基础语法开始的,没想到是从turtle画图开始,正好补上了我以前 ...
最新文章
- the serveice mysql_解决重启MySQL数据库The server quit without updating PID file问题
- pku1401 Factorial 计算n!末尾有几个0?
- Linux执行source /etc/profile报错“:command not found”
- Linux脚本中带有小数点的数值比较大小
- 返回结果乱码_峰哥说技术系列-7 Spring Boot返回JSON
- 机器学习-UCI数据集
- 765. 情侣牵手--(每日一难phase2--day14)
- 博途PLC 1200/1500PID PID_Temp 加热制冷双输出+级联控制(串级控制)
- 百度网盘链接怎么同步更新、百度网盘链接同步、百度网盘分享同步更新、百度网盘怎么同步更新、百度网盘资源同步更新、百度网盘分享文件同步更新、百度网盘好友分享同步更新、百度网盘共享文件同步更新...
- Xposed框架安装、使用及插件开发
- 云队友丨十年寒窗苦读为什么赢不过几代人的努力?
- 【Linux学习笔记04】Linux常用命令
- 给女朋友道歉的java代码_我用开源工具给女朋友写道歉信!
- NetFPGA-SUME开发环境安装
- RTT and RTO
- 贾俊平-第四章:数据的概括性度量
- 转载:开源飞控的前世今生
- 汉化教程: ps3闪之轨迹破解和汉化例程
- delmia机器人建模与装配
- 基于OpenCASCADE自制三维建模软件(十一)使用ASSIMP导入导出