python制作简单五子棋游戏


Posted in Python onJune 18, 2019

本文实例为大家分享了python五子棋游戏的具体代码,供大家参考,具体内容如下

#五子棋
‘''
矩阵做棋盘 16*16 “+”

打印棋盘 for for

游戏是否结束

开始下棋 while 游戏是否结束:
黑白交替 player=0 p%2==0 ==1 p+=1
下棋动作一样 但是棋子不一样
‘''

代码

#创建棋盘的程序
def initBoard():
 global board #调用全局的board
 board=[None]*16
 for i in range(len(board)):
 board[i]=["+ "]*16
#打印棋盘的程序
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%2==0:
  #黑方下棋
  print("==>黑方下棋")
  if not playChess("●"):
  continue
 else:
  #白方下棋
  print("==>白方下棋")
  if not playChess("○"):
  continue
 player+=1

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<=11:
   if board[i][j]==board[i][j+1]==board[i][j+2]==board[i][j+3]==board[i][j+4]:
   whoWin(i,j)
   return False
  #竖向
  if i<=11:
   if board[i][j]==board[i+1][j]==board[i+2][j]==board[i+3][j]==board[i+4][j]:
   whoWin(i,j)
   return False
  #反斜
  if i<=11 and j<=11:
   if board[i][j]==board[i+1][j+1]==board[i+2][j+2]==board[i+3][j+3]==board[i+4][j+4]:
   whoWin(i,j)
   return False
  #正斜
  if i>=4 and j<=11:
   if board[i][j]==board[i-1][j+1]==board[i-2][j+2]==board[i-3][j+3]==board[i-4][j+4]:
   whoWin(i,j)
   return False
 return True
def whoWin(i,j):
 if board[i][j]=="●":
 print("黑方胜!")
 else:
 print("白方胜!")
 for i in range(10):
 print("\a")
board=[] 
initBoard()
printBoard()
startGame()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
深入讲解Java编程中类的生命周期
Feb 05 Python
利用Python实现命令行版的火车票查看器
Aug 05 Python
详解Python实现多进程异步事件驱动引擎
Aug 25 Python
对Python 3.2 迭代器的next函数实例讲解
Oct 18 Python
python实现整数的二进制循环移位
Mar 08 Python
详解PANDAS 数据合并与重塑(join/merge篇)
Jul 09 Python
Python利用全连接神经网络求解MNIST问题详解
Jan 14 Python
python3连接mysql获取ansible动态inventory脚本
Jan 19 Python
Pytorch mask-rcnn 实现细节分享
Jun 24 Python
python爬虫使用requests发送post请求示例详解
Aug 05 Python
python中spy++的使用超详细教程
Jan 29 Python
python用tkinter开发的扫雷游戏
Jun 01 Python
Python利用pandas处理Excel数据的应用详解
Jun 18 #Python
PyQt5固定窗口大小的方法
Jun 18 #Python
Python格式化字符串f-string概览(小结)
Jun 18 #Python
Python 安装第三方库 pip install 安装慢安装不上的解决办法
Jun 18 #Python
PyQt编程之如何在屏幕中央显示窗体的实例
Jun 18 #Python
pycharm访问mysql数据库的方法步骤
Jun 18 #Python
python实现五子棋人机对战游戏
Mar 25 #Python
You might like
php 正则 过滤html 的超链接
2009/06/02 PHP
php+mysql大量用户登录解决方案分析
2014/12/29 PHP
PHP基于Redis消息队列实现发布微博的方法
2017/05/03 PHP
PHP单元测试框架PHPUnit用法详解
2019/01/23 PHP
基于jquery的监控数据是否发生改变
2011/04/11 Javascript
JavaScript合并两个数组并去除重复项的方法
2015/06/13 Javascript
js实现目录链接,内容跟着目录滚动显示的简单实例
2016/10/15 Javascript
ionic实现下拉刷新载入数据功能
2017/05/11 Javascript
angular使用bootstrap方法手动启动的实例代码
2017/07/18 Javascript
Vue.js如何实现路由懒加载浅析
2017/08/14 Javascript
BootstrapTable加载按钮功能实例代码详解
2017/09/22 Javascript
javascript 判断用户有没有操作页面
2017/10/17 Javascript
React diff算法的实现示例
2018/04/20 Javascript
详解SPA中前端路由基本原理与实现方式
2018/09/12 Javascript
详解Vue CLI3配置解析之css.extract
2018/09/14 Javascript
vue-cli整合vuex的时候,修改actions和mutations,实现热部署的方法
2018/09/19 Javascript
webpack4+express+mongodb+vue实现增删改查的示例
2018/11/08 Javascript
Jquery的autocomplete插件用法及参数讲解
2019/03/12 jQuery
javascript 数组精简技巧小结
2020/02/26 Javascript
一篇文章带你搞懂Vue虚拟Dom与diff算法
2020/08/25 Javascript
Vue+Java+Base64实现条码解析的示例
2020/09/23 Javascript
Python实现把utf-8格式的文件转换成gbk格式的文件
2015/01/22 Python
利用Python的Twisted框架实现webshell密码扫描器的教程
2015/04/16 Python
深入理解Python3 内置函数大全
2017/11/23 Python
Python获取昨天、今天、明天开始、结束时间戳的方法
2018/06/01 Python
Python中collections模块的基本使用教程
2018/12/07 Python
python中列表的切片与修改知识点总结
2019/07/23 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
详解Python 函数参数的拆解
2020/09/02 Python
HTML5 常见面试题之PC端和移动端区别介绍
2018/01/22 HTML / CSS
公务员总结性个人自我评价
2013/12/05 职场文书
市场总经理岗位职责
2014/04/11 职场文书
公路绿化方案
2014/05/12 职场文书
工程售后服务方案
2014/06/08 职场文书
先进党支部事迹材料
2014/12/24 职场文书
2015廉洁自律个人总结
2015/02/14 职场文书