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实现查询苹果手机维修进度
Mar 16 Python
Python字符串替换实例分析
May 11 Python
Python中datetime常用时间处理方法
Jun 15 Python
Python队列的定义与使用方法示例
Jun 24 Python
使用Kivy将python程序打包为apk文件
Jul 29 Python
对python中的xlsxwriter库简单分析
May 04 Python
python之消除前缀重命名的方法
Oct 21 Python
如何在django里上传csv文件并进行入库处理的方法
Jan 02 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
Jan 16 Python
解决django无法访问本地static文件(js,css,img)网页里js,cs都加载不了
Apr 07 Python
python怎么自定义捕获错误
Jun 29 Python
pytorch查看网络参数显存占用量等操作
May 12 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
跟我学Laravel之请求与输入
2014/10/15 PHP
Joomla实现组件中弹出一个模式(modal)窗口的方法
2016/05/04 PHP
PHP编程实现脚本异步执行的方法
2017/08/09 PHP
PHP xpath提取网页数据内容代码解析
2020/07/16 PHP
jQuery Select(单选) 模拟插件 V1.3.62 改进版
2010/07/17 Javascript
JS 实现Json查询的方法实例
2013/04/12 Javascript
jQuery中复合属性选择器用法实例
2014/12/31 Javascript
angularJS 中$scope方法使用指南
2015/02/09 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
Express的路由详解
2015/12/10 Javascript
jQuery无刷新上传之uploadify3.1简单使用
2016/06/18 Javascript
浅谈JavaScript中面向对象的的深拷贝和浅拷贝
2016/08/01 Javascript
ThinkPHP+jquery实现“加载更多”功能代码
2017/03/11 Javascript
jquery写出PC端轮播图实例
2018/01/26 jQuery
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
vue element-ui实现动态面包屑导航
2019/12/23 Javascript
[43:51]2014 DOTA2国际邀请赛中国区预选赛 Dream Times VS TongFu
2014/05/22 DOTA
Python 字典dict使用介绍
2014/11/30 Python
python中string模块各属性以及函数的用法介绍
2016/05/30 Python
为什么Python中没有&quot;a++&quot;这种写法
2018/11/27 Python
Python关于反射的实例代码分享
2020/02/20 Python
Python实现GIF图倒放
2020/07/16 Python
Feelunique美国:欧洲大型的在线美妆零售电商
2018/11/04 全球购物
英国和爱尔兰最大的地毯零售商:Kukoon
2018/12/17 全球购物
金属材料工程毕业生个人的自我评价
2013/11/28 职场文书
一名女生的自荐信
2013/12/08 职场文书
努力学习演讲稿
2014/05/10 职场文书
项目投资建议书
2014/05/16 职场文书
三好生演讲稿
2014/09/12 职场文书
党的群众路线教育实践活动查摆剖析材料
2014/10/10 职场文书
PHP中->和=>的意思
2021/03/31 PHP
Mysql 设置boolean类型的操作
2021/06/04 MySQL
教你用python实现12306余票查询
2021/06/30 Python
Nginx源码编译安装过程记录
2021/11/17 Servers
SpringBoot系列之MongoDB Aggregations用法详解
2022/02/12 MongoDB
SpringBoot详解执行过程
2022/07/15 Java/Android