python实现双人五子棋(终端版)


Posted in Python onDecember 30, 2020

五子棋还是有很多大佬发的,今天我也发一篇萌新写的小五子棋,这个是终端版的,如果有问题请大家指出,我去修改

代码如下:

screen = []
screen_change=0

def into():#初始空白棋盘
 for i in range(screen_change):
 list_width=[]
 for j in range(screen_change):
 list_width.append(' '+' |')
 screen.append(list_width)

def user_black():
 while True:
 coordinate = input("黑方请输入你想填下子的坐标 例1,2或者5,5")
 coordinate=coordinate.split(',')
 width_num = int(coordinate[0]) - 1
 high_num = int(coordinate[1]) - 1
 if screen[width_num][high_num][1]!=' ':
 print('你输入的地方已经有棋子了,请重新输入')
 continue
 screen[width_num][high_num] = ' ' + '@' + ' |'
 break
 screen_print()

def user_white():
 while True:
 coordinate = input("白方请输入你想填下子的坐标 例1,2或者5,5")
 coordinate = coordinate.split(',')
 width_num = int(coordinate[0]) - 1
 high_num = int(coordinate[1]) - 1
 if screen[width_num][high_num][1] != ' ':
 print('你输入的地方已经有棋子了,请重新输入')
 continue
 screen[width_num][high_num] = ' ' + '#' + ' |'
 break
 screen_print()

def eeferee():#判断输赢
 #判断行
 for i in range(screen_change):
 for j in range(screen_change-4):
 if screen[i][j][1]==screen[i][j+1][1]==screen[i][j+2][1]==screen[i][j+3][1]==screen[i][j+4][1] and screen[i][j][1]!=' ':
 return False
 for i in range(screen_change - 4):
 for j in range(screen_change):
 if screen[i][j][1]==screen[i+1][j][1]==screen[i+2][j][1]==screen[i+3][j][1]==screen[i+4][j][1] and screen[i][j][1]!=' ':
 return False
 for i in range(screen_change - 4):
 for j in range(screen_change - 4):
 if screen[i][j][1]==screen[i+1][j+1][1]==screen[i+2][j+2][1]==screen[i+3][j+3][1]==screen[i+4][j+4][1] and screen[i][j][1]!=' ':
 return False
 for k in range(4,screen_change):
 if k>=4:
 if screen[i][k][1] == screen[i+1][k-1][1] == screen[i+2][k-2][1] == screen[i+3][k-3][1] == screen[i+4][k-4][1] and screen[i][k][1] != ' ':
  return False
 return True

def screen_print():#打印棋盘
 print('——' * (screen_change*3+1))
 for i in range(screen_change):
 print('|',end=' ')
 for j in range(screen_change):
 print(screen[i][j],end=' ')
 print()
 print('——'*(screen_change*3+1))

def main():
 global screen_change
 screen_change = int(input('请输入你设定的棋盘大小:'))
 into()
 screen_print()
 while eeferee():
 user_black()
 if not eeferee():
 break
 user_white()
 print('游戏结束')

if __name__=='__main__':
 main()

效果图如下:

python实现双人五子棋(终端版)

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

Python 相关文章推荐
Python程序设计入门(3)数组的使用
Jun 16 Python
python爬虫获取京东手机图片的图文教程
Dec 29 Python
python爬虫爬取快手视频多线程下载功能
Feb 28 Python
python xlsxwriter创建excel图表的方法
Jun 11 Python
浅谈python之高阶函数和匿名函数
Mar 21 Python
python中时间转换datetime和pd.to_datetime详析
Aug 11 Python
Python中注释(多行注释和单行注释)的用法实例
Aug 28 Python
Python socket模块方法实现详解
Nov 05 Python
python读取图片的几种方式及图像宽和高的存储顺序
Feb 11 Python
pycharm 设置项目的根目录教程
Feb 12 Python
Python基础详解之描述符
Apr 28 Python
python通过新建环境安装tfx的问题
May 20 Python
pandas 数据类型转换的实现
Dec 29 #Python
python中xlutils库用法浅析
Dec 29 #Python
Python操作PostgreSql数据库的方法(基本的增删改查)
Dec 29 #Python
python中uuid模块实例浅析
Dec 29 #Python
python中pickle模块浅析
Dec 29 #Python
vue.js刷新当前页面的实例讲解
Dec 29 #Python
Python实现对word文档添加密码去除密码的示例代码
Dec 29 #Python
You might like
PHP 和 XML: 使用expat函数(三)
2006/10/09 PHP
php Undefined index和Undefined variable的解决方法
2008/03/27 PHP
PHP 闭包详解及实例代码
2016/09/28 PHP
PHP code 验证码生成类定义和简单使用示例
2020/05/27 PHP
jQuery实现切换页面布局使用介绍
2011/10/09 Javascript
javascript学习笔记(七) js函数介绍
2012/06/19 Javascript
js时间查询插件使用详解
2017/04/07 Javascript
vue axios用法教程详解
2017/07/23 Javascript
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
Js面试算法详解
2018/04/08 Javascript
JavaScript面向对象编程小游戏---贪吃蛇代码实例
2019/05/15 Javascript
jquery实现掷骰子小游戏
2019/10/24 jQuery
Vue搭建后台系统需要注意的问题
2019/11/08 Javascript
微信小程序实现签字功能
2019/12/23 Javascript
JS如何在数组指定位置插入元素
2020/03/10 Javascript
基于vue项目设置resolves.alias: '@'路径并适配webstorm
2020/12/02 Vue.js
利用Python绘制数据的瀑布图的教程
2015/04/07 Python
简化Python的Django框架代码的一些示例
2015/04/20 Python
Windows下安装python2和python3多版本教程
2017/03/30 Python
python使用wxpy轻松实现微信防撤回的方法
2019/02/21 Python
scrapy-redis的安装部署步骤讲解
2019/02/27 Python
用Python徒手撸一个股票回测框架搭建【推荐】
2019/08/05 Python
Python-numpy实现灰度图像的分块和合并方式
2020/01/09 Python
TensorFlow实现从txt文件读取数据
2020/02/05 Python
python中的split、rsplit、splitlines用法说明
2020/10/23 Python
2020年10款优秀的Python第三方库,看看有你中意的吗?
2021/01/12 Python
CSS3实现类似翻书效果的过渡动画的示例代码
2019/09/06 HTML / CSS
AMAVII眼镜官网:时尚和设计师太阳镜
2019/05/05 全球购物
值类型与引用类型有什么不同?请举例说明?并分别列举几种相应的数据类型
2015/10/24 面试题
机关门卫岗位职责
2013/12/30 职场文书
护士在校生自荐信
2014/02/01 职场文书
“六查”、“三学”、“三干”查摆问题整改措施
2014/09/27 职场文书
法人单位授权委托书范文
2014/10/06 职场文书
卖房协议书样本
2014/10/30 职场文书
教师党员承诺书2015
2015/01/21 职场文书
商务代表岗位职责
2015/02/15 职场文书