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中利用await关键字如何等待Future对象完成详解
Sep 07 Python
python的文件操作方法汇总
Nov 10 Python
基于Python中capitalize()与title()的区别详解
Dec 09 Python
Tensorflow实现卷积神经网络用于人脸关键点识别
Mar 05 Python
局域网内python socket实现windows与linux间的消息传送
Apr 19 Python
Python一行代码实现快速排序的方法
Apr 30 Python
python 并发编程 阻塞IO模型原理解析
Aug 20 Python
Python利用matplotlib绘制约数个数统计图示例
Nov 26 Python
python except异常处理之后不退出,解决异常继续执行的实现
Apr 25 Python
几款好用的python工具库(小结)
Oct 20 Python
如何向scrapy中的spider传递参数的几种方法
Nov 18 Python
Python Spyder 调出缩进对齐线的操作
Feb 26 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 空格,换行,跳格使用说明
2009/12/18 PHP
php学习笔记之面向对象
2014/11/08 PHP
PHP和Shell实现检查SAMBA与NFS Server是否存在
2015/01/07 PHP
PHP socket 模拟POST 请求实例代码
2016/07/18 PHP
jquery中获得$.ajax()事件返回的值并添加事件的方法
2010/04/15 Javascript
JavaScript高级程序设计 错误处理与调试学习笔记
2011/09/10 Javascript
jquery 插件开发 extjs中的extend用法小结
2013/01/04 Javascript
一个页面元素appendchild追加到另一个页面元素的问题
2013/01/27 Javascript
js实现上传图片预览的方法
2015/02/09 Javascript
Javascript中获取对象的原型对象的方法小结
2015/02/25 Javascript
浅谈JQ中mouseover和mouseenter的区别
2016/09/13 Javascript
AngularJS全局scope与Isolate scope通信用法示例
2016/11/22 Javascript
JavaScript实现邮箱地址自动匹配功能代码
2016/11/28 Javascript
基于vue实现分页/翻页组件paginator示例
2017/03/09 Javascript
强大的 Angular 表单验证功能详细介绍
2017/05/23 Javascript
使用Angular CLI进行Build(构建)和Serve详解
2018/03/24 Javascript
vue中使用echarts制作圆环图的实例代码
2018/07/27 Javascript
微信小程序实现的动态设置导航栏标题功能示例
2019/01/31 Javascript
微信小程序云开发如何实现数据库自动备份实现
2019/08/16 Javascript
python Django模板的使用方法(图文)
2013/11/04 Python
用python写扫雷游戏实例代码分享
2018/05/27 Python
pygame游戏之旅 添加游戏暂停功能
2018/11/21 Python
python二进制文件的转译详解
2019/07/03 Python
浅谈python累加求和+奇偶数求和_break_continue
2020/02/25 Python
python中Mako库实例用法
2020/12/31 Python
python解包概念及实例
2021/02/17 Python
都柏林通行卡/城市通票:The Dublin Pass
2020/02/16 全球购物
南京某软件公司的.net面试题
2015/11/30 面试题
车间调度岗位职责
2013/11/30 职场文书
银行实习生的自我评价
2013/12/09 职场文书
cf收人广告词大全
2014/03/14 职场文书
庆祝三八妇女节标语
2014/10/09 职场文书
党的群众路线教育实践活动总结材料
2014/10/30 职场文书
党员公开承诺书2015
2015/01/21 职场文书
Redis安装启动及常见数据类型
2021/04/14 Redis
微信小程序APP的生命周期及页面的生命周期
2022/04/19 Javascript