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实现的简单FTP上传下载文件实例
Jun 30 Python
python开发利器之ulipad的使用实践
Mar 16 Python
Django 如何获取前端发送的头文件详解(推荐)
Aug 15 Python
详解Python自建logging模块
Jan 29 Python
Python系统监控模块psutil功能与经典用法分析
May 24 Python
pytorch 调整某一维度数据顺序的方法
Dec 08 Python
python 使用poster模块进行http方式的文件传输到服务器的方法
Jan 15 Python
python 使用plt画图,去除图片四周的白边方法
Jul 09 Python
python实现大学人员管理系统
Oct 25 Python
python GUI库图形界面开发之PyQt5 MDI(多文档窗口)QMidArea详细使用方法与实例
Mar 05 Python
树莓派升级python的具体步骤
Jul 05 Python
使用Python下载抖音各大V视频的思路详解
Feb 06 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项目的方法
2006/10/09 PHP
用户的详细注册和判断
2006/10/09 PHP
thinkphp控制器调度使用示例
2014/02/24 PHP
php强制文件下载而非在浏览器打开的自定义函数分享
2014/05/08 PHP
PHP使用imagick扩展实现合并图像的方法
2017/04/25 PHP
LaravelS通过Swoole加速Laravel/Lumen详解
2018/03/02 PHP
PHP实现的AES双向加密解密功能示例【128位】
2018/09/03 PHP
Laravel框架源码解析之模型Model原理与用法解析
2020/05/14 PHP
JS两种定义方式的区别、内部原理
2013/11/21 Javascript
在JavaScript里防止事件函数高频触发和高频调用的方法
2014/09/06 Javascript
js实现对table动态添加、删除和更新的方法
2015/02/10 Javascript
JavaScript让Textarea支持tab按键的方法
2015/06/26 Javascript
使用ionic在首页新闻中应用到的跑马灯效果的实现方法
2017/02/13 Javascript
JS控件bootstrap suggest plugin使用方法详解
2017/03/25 Javascript
基于jquery实现五星好评
2017/11/18 jQuery
Vuex提升学习篇
2018/01/11 Javascript
Layui Form 自定义验证的实例代码
2019/09/14 Javascript
Vue.set 全局操作简单示例
2019/09/19 Javascript
LayUi数据表格自定义赋值方式
2019/10/26 Javascript
highcharts.js数据绑定方式代码实例
2019/11/13 Javascript
python 获取页面表格数据存放到csv中的方法
2018/12/26 Python
Pytorch生成随机数Tensor的方法汇总
2020/09/09 Python
CSS3的文字阴影—text-shadow的使用方法
2012/12/25 HTML / CSS
Clarks鞋美国官网:全球领军鞋履品牌
2017/05/13 全球购物
联想西班牙官网:Lenovo西班牙
2018/08/28 全球购物
社团文化节邀请函
2014/01/10 职场文书
中专生职业生涯规划书范文
2014/01/10 职场文书
家长对孩子评语
2014/01/30 职场文书
汽车装潢店创业计划书范文
2014/02/05 职场文书
中药专业毕业自荐书范文
2014/02/08 职场文书
《月迹》教学反思
2014/02/19 职场文书
十八届三中全会宣传方案
2014/02/21 职场文书
《三个小伙伴》教学反思
2014/04/11 职场文书
体育课外活动总结
2014/07/08 职场文书
政府班子四风问题整改措施思想汇报
2014/10/08 职场文书
2015年入党积极分子培养考察意见
2015/08/12 职场文书