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实现KNN分类算法
Dec 22 Python
python入门前的第一课 python怎样入门
Mar 06 Python
Python 实现网页自动截图的示例讲解
May 17 Python
Python爬虫包BeautifulSoup异常处理(二)
Jun 17 Python
Python退火算法在高次方程的应用
Jul 26 Python
python利用requests库模拟post请求时json的使用教程
Dec 07 Python
python3注册全局热键的实现
Mar 22 Python
python pandas.DataFrame.loc函数使用详解
Mar 26 Python
sklearn和keras的数据切分与交叉验证的实例详解
Jun 19 Python
python suds访问webservice服务实现
Jun 26 Python
python 浮点数四舍五入需要注意的地方
Aug 18 Python
python zip()函数的使用示例
Sep 23 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
PHP学习之正则表达式
2011/04/17 PHP
THINKPHP2.0到3.0有哪些改进之处
2015/01/04 PHP
标准PHP的AES加密算法类
2015/03/12 PHP
TNC vs BOOM BO3 第二场2.13
2021/03/10 DOTA
分享10篇优秀的jQuery幻灯片制作教程及应用案例
2011/04/16 Javascript
表单切换,用回车键替换Tab健(不支持IE)
2011/07/20 Javascript
JS+css 图片自动缩放自适应大小
2013/08/08 Javascript
jquerydom对象的事件隐藏显示和对象数组示例
2013/12/10 Javascript
javascript中 try catch用法
2015/08/16 Javascript
Jquery左右滑动插件之实现超级炫酷动画效果附源码下载
2015/12/02 Javascript
实例讲解使用原生JavaScript处理AJAX请求的方法
2016/05/10 Javascript
基于javascript的异步编程实例详解
2017/04/10 Javascript
Vue实战之vue登录验证的实现代码
2017/10/31 Javascript
vue.js 微信支付前端代码分享
2018/02/10 Javascript
nodejs 日志模块winston的使用方法
2018/05/02 NodeJs
JS实现全屏预览F11功能的示例代码
2018/07/23 Javascript
微信小程序wepy框架笔记小结
2018/08/08 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
使用jquery模拟a标签的click事件无法实现跳转的解决
2018/12/04 jQuery
vue elementui el-form rules动态验证的实例代码详解
2019/05/23 Javascript
Vue实现商品分类菜单数量提示功能
2019/07/26 Javascript
js判断一个对象是数组(函数)的方法实例
2019/12/19 Javascript
[00:02]DOTA2新版本使用PA至宝后暴击展示
2014/11/19 DOTA
Python实现单词拼写检查
2015/04/25 Python
Python中的数据对象持久化存储模块pickle的使用示例
2016/03/03 Python
pybind11和numpy进行交互的方法
2019/07/04 Python
解决阿里云邮件发送不能使用25端口问题
2020/08/07 Python
德国古洛迷亚百货官网:GALERIA Kaufhof
2017/06/20 全球购物
北美主要的汽车零部件零售商:AutoShack.com
2019/02/23 全球购物
乌克兰设计师和品牌的服装:Love&Live
2020/04/14 全球购物
Ado与Ado.net的相同与不同
2014/12/08 面试题
"9.18"国耻日演讲稿范文
2014/09/14 职场文书
2014最新党员批评与自我批评材料
2014/09/24 职场文书
运动会运动员赞词
2015/07/22 职场文书
《曹冲称象》教学反思
2016/02/20 职场文书
详解MongoDB的条件查询和排序
2021/06/23 MongoDB