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 相关文章推荐
ubuntu中配置pyqt4环境教程
Dec 27 Python
Python二进制串转换为通用字符串的方法
Jul 23 Python
python安装twisted的问题解析
Aug 21 Python
Python实现使用request模块下载图片demo示例
May 24 Python
python3.7将代码打包成exe程序并添加图标的方法
Oct 11 Python
解决Pytorch 加载训练好的模型 遇到的error问题
Jan 10 Python
pytorch实现特殊的Module--Sqeuential三种写法
Jan 15 Python
python爬虫开发之PyQuery模块详细使用方法与实例全解
Mar 09 Python
Python lambda表达式原理及用法解析
Aug 18 Python
python如何使用腾讯云发送短信
Sep 17 Python
教你使用pyinstaller打包Python教程
May 27 Python
Python激活Anaconda环境变量的详细步骤
Jun 08 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
我的论坛源代码(三)
2006/10/09 PHP
hadoop常见错误以及处理方法详解
2013/06/19 PHP
PHP列出MySQL中所有数据库的方法
2015/03/12 PHP
PHP中set error handler函数用法小结
2015/11/11 PHP
浅谈Laravel核心解读之Console内核
2018/12/02 PHP
Avengerls vs KG BO3 第一场2.18
2021/03/10 DOTA
页面元素绑定jquery toggle后元素隐藏的解决方法
2014/03/27 Javascript
javascript函数式编程程序员的工具集
2015/10/11 Javascript
学习javascript面向对象 掌握创建对象的9种方式
2016/01/04 Javascript
JavaScript函数中关于valueOf和toString的理解
2016/06/14 Javascript
基于JavaScript实现单选框下拉菜单添加文件效果
2016/06/26 Javascript
微信小程序 开发指南详解
2016/09/27 Javascript
微信js-sdk界面操作接口用法示例
2016/10/12 Javascript
微信小程序 scroll-view隐藏滚动条详解
2017/01/16 Javascript
JQuery实现定时刷新功能代码
2017/05/09 jQuery
webpack打包单页面如何引用的js
2017/06/07 Javascript
Bootstrap datepicker日期选择器插件使用详解
2017/07/26 Javascript
ReactJS实现表单的单选多选和反选的示例
2017/10/13 Javascript
React diff算法的实现示例
2018/04/20 Javascript
vue2之简易的pc端短信验证码的问题及处理方法
2019/06/03 Javascript
浅谈vue的第一个commit分析
2020/06/08 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
[00:23]DOTA2群星共贺开放测试 25日无码时代来袭
2013/09/23 DOTA
比较详细Python正则表达式操作指南(re使用)
2008/09/06 Python
tensorflow学习笔记之简单的神经网络训练和测试
2018/04/15 Python
Python Tornado批量上传图片并显示功能
2020/03/26 Python
python matplotlib库的基本使用
2020/09/23 Python
荷兰鞋子在线:Nelson Schoenen
2017/12/25 全球购物
周仰杰(JIMMY CHOO)英国官方网站:闻名世界的鞋子品牌
2018/10/28 全球购物
皇家阿尔伯特英国官方商店:Royal Albert骨瓷
2019/03/25 全球购物
毕业自我鉴定
2013/11/05 职场文书
因公司原因离职的辞职信范文
2015/05/12 职场文书
2015年幼儿园国庆节活动总结
2015/07/30 职场文书
城镇居民医疗保险工作总结
2015/08/10 职场文书
Redis高级数据类型Hyperloglog、Bitmap的使用
2021/05/24 Redis
Go语言编译原理之源码调试
2022/08/05 Golang