Python开发五子棋小游戏


Posted in Python onMay 02, 2022

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

# 制作一个棋盘
"""
++++++++++
++++++++++
++++++++++
++++++++++
"""


def createBoard():
    board = []
    for i in range(15):
        board.append(["+"] * 15)
    return board


def printBoard():#  print(" ", end="")
    for i in range(1, 16):
        number = str(i).rjust(3)
        print(number, end="")
    print()#打印列号之后换行
    for i in range(15):
        number = str(i + 1).ljust(3)#注意这个函数,是将行号每个都变成左对齐,占3位,以实现棋盘对齐功能
        print(number, end="")#打印行号
        for j in range(15):
            print(board[i][j], end="  ")
        print()


def isGameOver():
    count = 0
    # 先判断连续
    for x in range(15):
        for y in range(15):
            if board[x][y] != "+":
                count += 1
                # 向右
                if y < 11:
                    flag = True #表示默认游戏结束
                    for c in range(y + 1, y + 5):
                        if board[x][y] != board[x][c]:
                            flag = False
                            break
                    if flag:
                        if board[x][y] == "●":
                            print(">>>黑方胜!")
                        else :
                            print(">>>白方胜!")
                        return True; # 表示游戏结束
                # 向下
                if x < 11:
                    if board[x][y] == board[x+1][y] == board[x+2][y] == board[x+3][y] == board[x+4][y]:
                        if board[x][y] == "●":
                            print(">>>黑方胜!")
                        else :
                            print(">>>白方胜!")
                        return True
                # 向右下
                if x < 11 and y < 11:
                    if board[x][y] == board[x+1][y+1] == board[x+2][y+2] == board[x+3][y+3] == board[x+4][y+4]:
                        if board[x][y] == "●":
                            print(">>>黑方胜!")
                        else :
                            print(">>>白方胜!")
                        return True
                # 向右上
                if x > 3 and y < 11:
                    if board[x][y] == board[x-1][y+1] == board[x-2][y+2] == board[x-3][y+3] == board[x-4][y+4]:
                        if board[x][y] == "●":
                            print(">>>黑方胜!")
                        else :
                            print(">>>白方胜!")
                        return True
    # 再判断和棋
    if count == 15 ** 2:
        print(">>>和棋!")
        return True
    return False#如果以上连棋都没出现就游戏继续


def chess(c):
    x, y = eval(input("请输入坐标:"))
    x -= 1
    y -= 1
    if board[x][y] == "+":
        board[x][y] = c
        return True
    else:
        print(">>>此处已有棋子,请重新下棋!")
        return False


# 程序的开始
board = createBoard();
printBoard()
player = 0
while not isGameOver():#游戏继续的操作
    if player % 2 == 0:
        print(">>>请黑方下棋,", end="")
        if not chess("●"):
            continue
    else:
        print(">>>请白方下棋,", end="")
        if not chess("○"):
            continue
    printBoard()
    player += 1
print(">>>游戏结束!")

Python开发五子棋小游戏

五子棋胜局判断的根据所在如上图。


Tags in this post...

Python 相关文章推荐
Python中endswith()函数的基本使用
Apr 07 Python
Python实现多线程HTTP下载器示例
Feb 11 Python
Java编程迭代地删除文件夹及其下的所有文件实例
Feb 10 Python
python中的decorator的作用详解
Jul 26 Python
PyQt5的PyQtGraph实践系列3之实时数据更新绘制图形
May 13 Python
Falsk 与 Django 过滤器的使用与区别详解
Jun 04 Python
Python使用scrapy爬取阳光热线问政平台过程解析
Aug 14 Python
解决Tensorflow占用GPU显存问题
Feb 03 Python
matlab灰度图像调整及imadjust函数的用法详解
Feb 27 Python
Python标准库:内置函数max(iterable, *[, key, default])说明
Apr 25 Python
python中如何打包用户自定义模块
Sep 23 Python
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
Jun 11 Python
python获取带有返回值的多线程
May 02 #Python
总结三种用 Python 作为小程序后端的方式
Python如何用re模块实现简易tokenizer
May 02 #Python
Python实现简单得递归下降Parser
使用Python开发贪吃蛇游戏 SnakeGame
Apr 30 #Python
使用Python开发冰球小游戏
详解Python中的for循环
You might like
手冲咖啡应该是现代精品咖啡店的必备选项吗?
2021/03/03 冲泡冲煮
PHP实现手机归属地查询API接口实现代码
2012/08/27 PHP
使用Curl进行抓取远程内容时url中文编码问题示例探讨
2013/10/29 PHP
调整PHP的性能
2013/10/30 PHP
简单的php中文转拼音的实现代码
2014/02/11 PHP
Smarty模板变量调节器用法分析
2016/05/23 PHP
PHP微信开发之模板消息回复
2016/06/24 PHP
使两个iframe的高度与内容自适应,且相等
2006/11/20 Javascript
Jquery replace 字符替换实现代码
2010/12/02 Javascript
浏览器页面区域大小的js获取方法
2013/09/21 Javascript
JQuery以JSON方式提交数据到服务端示例代码
2014/05/05 Javascript
JavaScript中通过prototype属性共享属性和方法的技巧实例
2015/03/13 Javascript
基于vuejs实现一个todolist项目
2017/04/11 Javascript
jQuery动画_动力节点节点Java学院整理
2017/07/04 jQuery
Angular.js中$resource高大上的数据交互详解
2017/07/30 Javascript
JavaScript体验异步更好的解决办法
2018/01/08 Javascript
Nuxt.js踩坑总结分享
2018/01/18 Javascript
jQuery 获取除某指定对象外的其他对象 ( :not() 与.not())
2018/10/10 jQuery
js实现通过开始结束控制的计时器
2019/02/25 Javascript
javascript异步处理与Jquery deferred对象用法总结
2019/06/04 jQuery
jsonp格式前端发送和后台接受写法的代码详解
2019/11/07 Javascript
[03:08]迎霜节狂欢!2018年迎霜节珍藏Ⅰ一览
2018/12/25 DOTA
Django中传递参数到URLconf的视图函数中的方法
2015/07/18 Python
Scrapy抓取京东商品、豆瓣电影及代码分享
2017/11/23 Python
解决python 输出是省略号的问题
2018/04/19 Python
对tensorflow中tf.nn.conv1d和layers.conv1d的区别详解
2020/02/11 Python
canvas简单连线动画的实现代码
2020/02/04 HTML / CSS
世界领先的艺术图书出版社:TASCHEN
2018/07/23 全球购物
个人安全承诺书
2014/05/22 职场文书
我的中国梦口号
2014/06/16 职场文书
节能环保家庭事迹材料
2014/08/27 职场文书
2015年财务试用期工作总结
2014/12/24 职场文书
教师个人工作总结范文2015
2015/10/14 职场文书
2016年十一促销广告语
2016/01/28 职场文书
javascript canvas实现雨滴效果
2021/06/09 Javascript
三种方式清除vue路由跳转router-link的历史记录
2022/04/10 Vue.js