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解决鸡兔同笼问题的方法
Dec 20 Python
Python中的生成器和yield详细介绍
Jan 09 Python
Python的地形三维可视化Matplotlib和gdal使用实例
Dec 09 Python
Python3 中文文件读写方法
Jan 23 Python
python merge、concat合并数据集的实例讲解
Apr 12 Python
python3 cvs将数据读取为字典的方法
Dec 22 Python
python实现socket+threading处理多连接的方法
Jul 23 Python
Python环境Pillow( PIL )图像处理工具使用解析
Sep 12 Python
Python 实现OpenCV格式和PIL.Image格式互转
Jan 09 Python
基于Numba提高python运行效率过程解析
Mar 02 Python
基于python实现百度语音识别和图灵对话
Nov 02 Python
Python使用socket去实现TCP客户端和TCP服务端
Apr 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
PHP5中的this,self和parent关键字详解教程
2007/03/19 PHP
PHP IPV6正则表达式验证代码
2010/02/16 PHP
详解PHP的Yii框架中组件行为的属性注入和方法注入
2016/03/18 PHP
PHP yield关键字功能与用法分析
2019/01/03 PHP
php使用event扩展的io复用测试的示例
2020/10/20 PHP
js中的数组Array定义与sort方法使用示例
2013/08/29 Javascript
jQuery实现数秒后自动提交form的方法
2015/03/05 Javascript
jQuery实现漂亮实用的商品图片tips提示框效果(无图片箭头+阴影)
2016/04/16 Javascript
基于JS实现EOS隐藏错误提示层代码
2016/04/25 Javascript
使用jquery获取url以及jquery获取url参数的实现方法
2016/05/25 Javascript
EasyUI加载完Html内容样式渲染完成后显示
2016/07/25 Javascript
jQuery实现导航回弹效果
2017/02/27 Javascript
jQuery动态移除和添加背景图片的方法详解
2017/03/07 Javascript
关于JavaScript中forEach和each用法浅析
2017/07/27 Javascript
JavaScript实现JSON合并操作示例【递归深度合并】
2018/09/07 Javascript
浅谈vue后台管理系统权限控制思考与实践
2018/12/19 Javascript
[07:49]2014DOTA2国际邀请赛 Newbee夺冠后采访xiao8坦言奖金会上交
2014/07/23 DOTA
[02:51]2018年度DOTA2最佳中单位选手-完美盛典
2018/12/17 DOTA
在python环境下运用kafka对数据进行实时传输的方法
2018/12/27 Python
Python3列表内置方法大全及示例代码小结
2019/05/10 Python
使用python制作一个为hex文件增加版本号的脚本实例
2019/06/12 Python
python opencv实现gif图片分解的示例代码
2019/12/13 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
怎么快速自学python
2020/06/22 Python
Python Tricks 使用 pywinrm 远程控制 Windows 主机的方法
2020/07/21 Python
python获取时间戳的实现示例(10位和13位)
2020/09/23 Python
原生 JS+CSS+HTML 实现时序图的方法
2019/07/31 HTML / CSS
英国最红的高街时尚品牌:Topshop
2016/08/05 全球购物
英国家电直销:Appliances Direct
2016/09/22 全球购物
英国空调、除湿机和通风设备排名第一:Air Con Centre
2019/02/25 全球购物
儿科护士实习自我鉴定
2013/10/17 职场文书
大学生的创业计划书就该这么写
2014/01/30 职场文书
卫生厅领导班子党的群众路线教育实践活动整改措施
2014/09/20 职场文书
高中学生自我评价范文
2014/09/23 职场文书
致三级跳运动员加油稿
2015/07/21 职场文书
Java十分钟精通进阶适配器模式
2022/04/06 Java/Android