python写井字棋_python实现简单井字棋游戏
#!/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实现简单井字棋游戏
井字棋,英文名叫Tic-Tac-Toe,是一种在3*3格子上进行的连珠游戏,和五子棋类似,由于棋盘一般不画边框,格线排成井字故得名.游戏需要的工具仅为纸和笔,然后由分别代表O和X的两个游戏者轮流在格子 ...
- python写一个文件下载器_python使用tcp实现一个简单的下载器
上一篇中介绍了tcp的流程,本篇通过写一个简单的文件下载器程序来巩固之前学的知识. 文件下载器的流程如下: 客户端: 输入目标服务器的ip和port 输入要下载文件的名称 从服务器下载文件保存到本地 ...
- python 列表推导 为什么快_Python中简单的列表推导式,却能解决复杂的问题,你学会了吗?...
Beautiful is better than ugly. ------Python之禅 01[引子] 我们知道,Python是一门简单.易学的编程语言,"Python之禅"里面 ...
- 基于python爬虫的论文标题_python爬虫——简单论文标题检索-Go语言中文社区
有趣的爬虫,独有的意义召唤着我去学习,去尝试.最近有感于每天对于论文的收集,感觉自己的收集速度赶不上论文的更新速度,同时对于自己想找到的论文的收集比较麻烦.因此,学习用python写一个很简单的爬虫, ...
- python编程超市购物系统_python实现简单购物车系统(练习)
#!Anaconda/anaconda/python#coding: utf-8 #列表练习,实现简单购物车系统 product_lists= [('iphone',5000), ('computer ...
- python实现简单小游戏_python实现简单井字棋小游戏
#Tic-Tac-Toe 井字棋游戏 #全局常量 X="X" O="O" EMPTY=" " #询问是否继续 def ask_yes_no( ...
- python写一个聊天程序_python实现一个简单的网络聊天程序
一.Linux Socket 1.Linux Socke基本上就是BSD Socket(伯克利套接字) 伯克利套接字的应用编程接口(API)是采用C语言的进程间通信的库,经常用在计算机网络间的通信.B ...
- 用python写一个彩票过滤器_python入门教程NO.6 用python做个简单的彩票号码统计分析工具...
python入门教程 python入门教程NO.6 用python做个简单的彩票号码统计分析工具 本文涉及的python基础语法是:字典.集合及for循环 字典的定义 字典也是一种可变的容器,它可以存 ...
- python写彩票预测软件_python入门教程NO.6 用python做个简单的彩票号码统计分析工具...
python入门教程NO.6 用python做个简单的彩票号码统计分析工具-1.jpg (37.04 KB, 下载次数: 0) 2020-11-27 14:29 上传 python入门教程 pytho ...
最新文章
- 【讲人话】Angular如何通过@ViewChildren获取实时渲染的动态DOM节点元素(@ViewChild只能获取静态的固定DOM节点)
- 搭建 LNMP 环境
- 宿主机( win 7 系统) ping 虚拟机VMware( cent os 6.6 ) 出现“请求超时”或者“无法访问目标主机”的解决方法...
- 「新闻」Google Science Fair
- 接力,智能指针也麻烦
- CSS3学习笔记-技术提示
- Linux一个驱动管理多个设备,poll方法(select多路监控原理与实现)
- 金山词霸”屏幕取词技术揭密(讨论稿)
- 解决清除浮动的最佳办法
- Arrays.copyOf
- 小菜找实习-动态规划
- lzg_ad:在XP Professional上面实现EWF功能
- cad上样条曲线上的点太多了_CAD样条曲线添加控制点
- OpenCV C++安装和配置
- Spring动态代理的两种区别
- 敏捷开发模式下SDL实践
- 《Charles配置教程之Mac》
- 如何更新google浏览器
- 2020年中国各省GDP简析
- 软考高级系统架构师是什么来头?考上了就能当架构师了吗