#!/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实现简单井字棋游戏

    井字棋,英文名叫Tic-Tac-Toe,是一种在3*3格子上进行的连珠游戏,和五子棋类似,由于棋盘一般不画边框,格线排成井字故得名.游戏需要的工具仅为纸和笔,然后由分别代表O和X的两个游戏者轮流在格子 ...

  2. python写一个文件下载器_python使用tcp实现一个简单的下载器

    上一篇中介绍了tcp的流程,本篇通过写一个简单的文件下载器程序来巩固之前学的知识. 文件下载器的流程如下: 客户端: 输入目标服务器的ip和port 输入要下载文件的名称 从服务器下载文件保存到本地 ...

  3. python 列表推导 为什么快_Python中简单的列表推导式,却能解决复杂的问题,你学会了吗?...

    Beautiful is better than ugly. ------Python之禅 01[引子] 我们知道,Python是一门简单.易学的编程语言,"Python之禅"里面 ...

  4. 基于python爬虫的论文标题_python爬虫——简单论文标题检索-Go语言中文社区

    有趣的爬虫,独有的意义召唤着我去学习,去尝试.最近有感于每天对于论文的收集,感觉自己的收集速度赶不上论文的更新速度,同时对于自己想找到的论文的收集比较麻烦.因此,学习用python写一个很简单的爬虫, ...

  5. python编程超市购物系统_python实现简单购物车系统(练习)

    #!Anaconda/anaconda/python#coding: utf-8 #列表练习,实现简单购物车系统 product_lists= [('iphone',5000), ('computer ...

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

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

  7. python写一个聊天程序_python实现一个简单的网络聊天程序

    一.Linux Socket 1.Linux Socke基本上就是BSD Socket(伯克利套接字) 伯克利套接字的应用编程接口(API)是采用C语言的进程间通信的库,经常用在计算机网络间的通信.B ...

  8. 用python写一个彩票过滤器_python入门教程NO.6 用python做个简单的彩票号码统计分析工具...

    python入门教程 python入门教程NO.6 用python做个简单的彩票号码统计分析工具 本文涉及的python基础语法是:字典.集合及for循环 字典的定义 字典也是一种可变的容器,它可以存 ...

  9. python写彩票预测软件_python入门教程NO.6 用python做个简单的彩票号码统计分析工具...

    python入门教程NO.6 用python做个简单的彩票号码统计分析工具-1.jpg (37.04 KB, 下载次数: 0) 2020-11-27 14:29 上传 python入门教程 pytho ...

最新文章

  1. 【讲人话】Angular如何通过@ViewChildren获取实时渲染的动态DOM节点元素(@ViewChild只能获取静态的固定DOM节点)
  2. 搭建 LNMP 环境
  3. 宿主机( win 7 系统) ping 虚拟机VMware( cent os 6.6 ) 出现“请求超时”或者“无法访问目标主机”的解决方法...
  4. 「新闻」Google Science Fair
  5. 接力,智能指针也麻烦
  6. CSS3学习笔记-技术提示
  7. Linux一个驱动管理多个设备,poll方法(select多路监控原理与实现)
  8. 金山词霸”屏幕取词技术揭密(讨论稿)
  9. 解决清除浮动的最佳办法
  10. Arrays.copyOf
  11. 小菜找实习-动态规划
  12. lzg_ad:在XP Professional上面实现EWF功能
  13. cad上样条曲线上的点太多了_CAD样条曲线添加控制点
  14. OpenCV C++安装和配置
  15. Spring动态代理的两种区别
  16. 敏捷开发模式下SDL实践
  17. 《Charles配置教程之Mac》
  18. 如何更新google浏览器
  19. 2020年中国各省GDP简析
  20. 软考高级系统架构师是什么来头?考上了就能当架构师了吗

热门文章

  1. NetBeans使用Consolas中文乱码的解决
  2. 【并查集】【模拟】家谱
  3. 技术沙龙|解读以太坊黄皮书,学习智能合约应用开发(北京)
  4. 如何做好企业内部培训?
  5. 伺服电机移动距离的计算
  6. 如何输出100以内的偶数、奇数、质数
  7. Unity FairyGUI 自适应扩展
  8. 计算机专业留学动机信范文,动机信范文10篇
  9. 优思学院|初入职质量管理如何掌握工作内容?
  10. 现代控制理论第一章学习笔记