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 相关文章推荐
Python 多线程的实例详解
Sep 07 Python
人机交互程序 python实现人机对话
Nov 14 Python
Python之web模板应用
Dec 26 Python
编写多线程Python服务器 最适合基础
Sep 14 Python
Python补齐字符串长度的实例
Nov 15 Python
DES加密解密算法之python实现版(图文并茂)
Dec 06 Python
numpy.linspace函数具体使用详解
May 27 Python
Python如何通过Flask-Mail发送电子邮件
Jan 29 Python
matlab中imadjust函数的作用及应用举例
Feb 27 Python
django列表筛选功能的实现代码
Mar 27 Python
打印tensorflow恢复模型中所有变量与操作节点方式
May 26 Python
Python使用struct处理二进制(pack和unpack用法)
Nov 12 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
yii分页组件用法实例分析
2015/12/28 PHP
yii2实现根据时间搜索的方法
2016/05/25 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
2016/10/08 PHP
PHP实现验证码校验功能
2017/11/16 PHP
laravel 解决多库下的DB::transaction()事务失效问题
2019/10/21 PHP
laravel框架邮箱认证实现方法详解
2019/11/22 PHP
用jQuery实现检测浏览器及版本的脚本代码
2008/01/22 Javascript
JavaScript动态插入script的基本思路及实现函数
2013/11/11 Javascript
javascript中offset、client、scroll的属性总结
2015/08/13 Javascript
JS实现支持多选的遍历下拉列表代码
2015/08/20 Javascript
基于Turn.js 实现翻书效果实例解析
2016/06/20 Javascript
EasyUI学习之Combobox下拉列表(1)
2016/12/29 Javascript
详解JavaScript中this的指向问题
2017/01/20 Javascript
详解从angular-cli:1.0.0-beta.28.3升级到@angular/cli:1.0.0
2017/05/22 Javascript
初探JavaScript 面向对象(推荐)
2017/09/03 Javascript
angular实现页面打印局部功能的思考与方法
2018/04/13 Javascript
详解vue-cli中模拟数据的两种方法
2018/07/03 Javascript
Vue开发环境跨域访问问题
2020/01/22 Javascript
使用django的objects.filter()方法匹配多个关键字的方法
2019/07/18 Python
jupyter notebook 添加kernel permission denied的操作
2020/04/21 Python
使用Python实现将多表分批次从数据库导出到Excel
2020/05/15 Python
Python爬虫入门教程02之笔趣阁小说爬取
2021/01/24 Python
python中使用asyncio实现异步IO实例分析
2021/02/26 Python
美国南加州的原创极限运动潮牌:Vans(范斯)
2016/08/05 全球购物
奢华的意大利皮革手袋:Bene Handbags
2019/10/29 全球购物
迪士尼西班牙官方网上商店:ShopDisney西班牙
2020/02/02 全球购物
计算机专业学生求职信分享
2013/12/15 职场文书
20年同学聚会感言
2014/02/03 职场文书
新闻专业学生的自我评价
2014/02/13 职场文书
《埃及的金字塔》教学反思
2014/04/07 职场文书
2014小学一年级班主任工作总结
2014/12/05 职场文书
求职自我评价范文
2015/03/09 职场文书
小学生必读成语故事大全:送给暑假的你们
2019/07/09 职场文书
vue引入Excel表格插件的方法
2021/04/28 Vue.js
MySQL 查询速度慢的原因
2021/05/25 MySQL
Oracle查看表空间使用率以及爆满解决方案详解
2022/07/23 Oracle