python井字棋_python实现简单井字棋游戏
井字棋,英文名叫Tic-Tac-Toe,是一种在3*3格子上进行的连珠游戏,和五子棋类似,由于棋盘一般不画边框,格线排成井字故得名。游戏需要的工具仅为纸和笔,然后由分别代表O和X的两个游戏者轮流在格子里留下标记(一般来说先手者为X),任意三个标记形成一条直线,则为获胜。
游戏的难点在于,如何判断连接成了一条线;横、竖、斜三个方向;
游戏的代码:
#!/usr/bin/env python3
# -*- coding:utf-8 -*-
u'''
Created on 2019年4月13日
@author: wuluo
'''
__author__ = 'wuluo'
__version__ = '1.0.0'
__company__ = u'重庆交大'
__updated__ = '2019-04-13'
# 创建井字棋的程序
def initBoard():
global board # 调用全局的board
board = [None] * 3
print("井字棋:")
for i in range(len(board)):
board[i] = ["+ "] * 3
# 打印井字棋的程序
def printBoard():
global board
for i in range(len(board)):
for j in range(len(board[i])):
print(board[i][j], end=" ")
print("")
# 开始下棋的程序
def startGame():
global board
player = 0
while isGameContinue():
if player <= 8:
if player % 2 == 0:
# 甲方下棋
print("==>黑方下棋")
if not playChess("x"):
continue
else:
# 乙方下棋
print("==>白方下棋")
if not playChess("○"):
continue
player += 1
else:
print("平局")
break
def playChess(chess):
# 获取位置
x = int(input("==> X=")) - 1
y = int(input("==> Y=")) - 1
if board[x][y] == "+ ":
board[x][y] = chess
printBoard()
return True # 落子成功
else:
print("==> 已有棋子 请重新落子\a")
printBoard()
return False # 落子失败
def isGameContinue():
for i in range(len(board)):
for j in range(len(board[i])):
if board[i][j] != "+ ":
# 横向
if j == 0:
if board[i][j] == board[i][j + 1] == board[i][j + 2]:
whoWin(i, j)
return False
# 竖向
if i == 0:
if board[i][j] == board[i + 1][j] == board[i + 2][j]:
whoWin(i, j)
return False
# 正斜
if i == 0 and j == 0:
if board[i][j] == board[i + 1][j + 1] == board[i + 2][j + 2]:
whoWin(i, j)
return False
# 反斜
if i == 2 and j == 0:
if board[i][j] == board[i - 1][j + 1] == board[i - 2][j + 2]:
whoWin(i, j)
return False
return True
def whoWin(i, j):
if board[i][j] == "x":
print("黑方胜!")
else:
print("白方胜!")
for i in range(3):
print("win")
class main():
board = []
initBoard()
printBoard()
startGame()
if __name__ == "__main__":
main()
游戏结果:
还有一种结果是平局:
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
python井字棋_python实现简单井字棋游戏相关推荐
- python写井字棋_python实现简单井字棋游戏
#!/usr/bin/env python3 # -*- coding:utf-8 -*- u''' Created on 2019年4月13日 @author: wuluo ''' author = ...
- python编程剪刀石头布思路_Python制作简单的剪刀石头布游戏
关于程序相关的 您可以反复玩游戏,直到选择停止为止. 该程序跟踪获胜情况. 大小写无关紧要(即ROCK与Rock相同). 如果您输入的内容无效,程序会一直提示您,直到您输入有效的内容. 对项目进行编码 ...
- Python每日一练19、简单的加减法数学游戏
简单的加减法数学游戏 需求 随机生成两个100以内的数字 随机选择加法或是减法 总是使用大的数字减去小的数字 让用户输入答案,直到输入正确为止 import random nums = [random ...
- python实现简单小游戏_python实现简单井字棋小游戏
#Tic-Tac-Toe 井字棋游戏 #全局常量 X="X" O="O" EMPTY=" " #询问是否继续 def ask_yes_no( ...
- python树的实现_Python实现简单字典树的方法
本文实例讲述了Python实现简单字典树的方法.分享给大家供大家参考,具体如下: #coding=utf8 """代码实现了最简单的字典树,只支持由小写字母组成的字符串. ...
- python搭建web服务器_Python搭建简单的web服务器
Python搭建简单的web服务器 1.win+R输入cmd打开命令行 2.通过 cd 进入到你保存 HTML 文件的目录.例如:H:\D3\d3 输入 cd\ 指令进入到C盘的根目录.(CD(更改目 ...
- python模拟抛硬币_python实现简单随机模拟——抛呀抛硬币
还是在上次提到的数据之魅那本书,看到模拟这章,有个python模拟脚本,但书上不全,就自己简单写了下. 流程:在不同的平衡参数p(为0.5时为均匀的)下,模拟60次实验,每次投硬币8次,统计正面朝上的 ...
- python编写爬虫代码_python编写简单爬虫资料汇总
爬虫真是一件有意思的事儿啊,之前写过爬虫,用的是urllib2.BeautifulSoup实现简单爬虫,scrapy也有实现过.最近想更好的学习爬虫,那么就尽可能的做记录吧.这篇博客就我今天的一个学习 ...
- python数据可视化代码_Python实现简单的数据可视化
现在python这门解释型语言被越来越多的人们喜欢,强大的库支持,使得编程过程变得简单. 我是一个传统的C语言支持者,往后也打算慢慢的了解Python的强大. 今天我就学习一下使用python实现数据 ...
最新文章
- 《星际争霸2》引擎技术解析
- How program works
- docker mysql sock_docker mysql安装
- lagrange插值(完成)
- 数据挖掘算法_算法篇(01) 数据挖掘算法初探
- java参数后面跟三个点是什么意思
- 从0到1入门:7天玩转IoT物联网实战营丨IoT喊你加入学习之旅!
- JavaScriptjQuery.带参数的函数
- mongodb数据库显示obj_MongoDB创建和查看数据库
- jquery的选择器之-表单对象属性过滤选择器
- MAC编译OpenJDK8:clang: error: include path for libstdc++ headers not found(独家解决办法)
- Android上的APP图标常见尺寸规范
- Mac 下运行 xxx.sh 脚本文件
- easy connect无法卸载干净,后台sangfor文件一直在运行的卸载方法
- 加载Glove预训练词向量到字典
- yocto recipe构建流程介绍
- 计算机管理映像路径,windows任务管理器显示映像路径和命令行设置参考
- HTMLParser 使用详解
- Mac自动隐藏/显示程序坞有时延解决办法
- 数据库课设:机房管理系统