井字棋,英文名叫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实现简单井字棋游戏相关推荐

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

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

  2. python编程剪刀石头布思路_Python制作简单的剪刀石头布游戏

    关于程序相关的 您可以反复玩游戏,直到选择停止为止. 该程序跟踪获胜情况. 大小写无关紧要(即ROCK与Rock相同). 如果您输入的内容无效,程序会一直提示您,直到您输入有效的内容. 对项目进行编码 ...

  3. Python每日一练19、简单的加减法数学游戏

    简单的加减法数学游戏 需求 随机生成两个100以内的数字 随机选择加法或是减法 总是使用大的数字减去小的数字 让用户输入答案,直到输入正确为止 import random nums = [random ...

  4. python实现简单小游戏_python实现简单井字棋小游戏

    #Tic-Tac-Toe 井字棋游戏 #全局常量 X="X" O="O" EMPTY=" " #询问是否继续 def ask_yes_no( ...

  5. python树的实现_Python实现简单字典树的方法

    本文实例讲述了Python实现简单字典树的方法.分享给大家供大家参考,具体如下: #coding=utf8 """代码实现了最简单的字典树,只支持由小写字母组成的字符串. ...

  6. python搭建web服务器_Python搭建简单的web服务器

    Python搭建简单的web服务器 1.win+R输入cmd打开命令行 2.通过 cd 进入到你保存 HTML 文件的目录.例如:H:\D3\d3 输入 cd\ 指令进入到C盘的根目录.(CD(更改目 ...

  7. python模拟抛硬币_python实现简单随机模拟——抛呀抛硬币

    还是在上次提到的数据之魅那本书,看到模拟这章,有个python模拟脚本,但书上不全,就自己简单写了下. 流程:在不同的平衡参数p(为0.5时为均匀的)下,模拟60次实验,每次投硬币8次,统计正面朝上的 ...

  8. python编写爬虫代码_python编写简单爬虫资料汇总

    爬虫真是一件有意思的事儿啊,之前写过爬虫,用的是urllib2.BeautifulSoup实现简单爬虫,scrapy也有实现过.最近想更好的学习爬虫,那么就尽可能的做记录吧.这篇博客就我今天的一个学习 ...

  9. python数据可视化代码_Python实现简单的数据可视化

    现在python这门解释型语言被越来越多的人们喜欢,强大的库支持,使得编程过程变得简单. 我是一个传统的C语言支持者,往后也打算慢慢的了解Python的强大. 今天我就学习一下使用python实现数据 ...

最新文章

  1. java中的super限定
  2. python水仙花数_scratch与pythonc++的不同,你了解吗?
  3. Python 分析天气,告诉你中秋应该去哪里
  4. NOIP 2016 迟来的满贯
  5. PostgreSQL 8.4.3 Final / 9.0 Alpha 4
  6. html注释的内容如何修改,如何用自定义元素替换HTML注释
  7. 腾讯云推出首款自研服务器星星海;苹果新款Mac Pro整套配齐超30万;Fedora 31稳定版发布|极客头条...
  8. 纸片人活了!海报上的梅西、漫画里的悟空,都被AI唤醒
  9. SHA256算法原理详解图
  10. 【AI视野·今日NLP 自然语言处理论文速览 第三十三期】Thu, 21 Apr 2022
  11. Latex slide中添加算法流程图
  12. windows系统电脑实用快捷键
  13. 直流电机脉宽调制调速
  14. 根据地址获取经纬度 -- 腾讯地图(PHP后台)
  15. javascript实现图片轮播_Node.js实现将文字与图片合成技巧
  16. Aria2一键安装及管理脚本,搭建AriaNg前端
  17. remove logo now注册码
  18. 认识Excel的第五天(打印时固定标题)
  19. 把C盘正好分成100G的数值
  20. 算法 A 求稳健平均值和稳健标准差

热门文章

  1. AI是一场革命,不要笑,我是认真的。
  2. 雷·克兹维尔:人工智能正造福全人类
  3. python 绘制新冠肺炎疫情地图
  4. 数据清洗--读行问题
  5. js vue 下载excel(.xls)文件
  6. HDU 1239 Calling Extraterrestrial Intelligence Again
  7. 简述对css盒子模型的理解_css 盒子模型理解
  8. 一般网站有哪些常见漏洞?
  9. 牛客面试系列之Redis
  10. 计算机文件打开方式这么还原,dat文件还原默认打开方式如何设置?还原默认打开方式的详细步骤...