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之网站的结构
Oct 24 Python
python实现清屏的方法
Apr 30 Python
简单理解Python中的装饰器
Jul 31 Python
解读Python编程中的命名空间与作用域
Oct 16 Python
Python获取CPU、内存使用率以及网络使用状态代码
Feb 08 Python
对命令行模式与python交互模式介绍
May 12 Python
python 字典中文key处理,读取,比较方法
Jul 06 Python
python3实现点餐系统
Jan 24 Python
Python利用lxml模块爬取豆瓣读书排行榜的方法与分析
Apr 15 Python
python多进程下实现日志记录按时间分割
Jul 22 Python
python如何实现复制目录到指定目录
Feb 13 Python
Python 如何在字符串中插入变量
Aug 01 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 抓取网页图片并且另存为的实现代码
2010/03/24 PHP
php+ajax 实现输入读取数据库显示匹配信息
2015/10/08 PHP
PHP中session跨子域的三种实现方法
2016/07/25 PHP
Yii框架常见缓存应用实例小结
2019/09/09 PHP
PHP中用Trait封装单例模式的实现
2019/12/18 PHP
JavaScript判断一个URL链接是否有效的实现方法
2011/10/08 Javascript
javascript 基础篇3 类,回调函数,内置对象,事件处理
2012/03/14 Javascript
浅谈JavaScript for循环 闭包
2016/06/22 Javascript
浅谈js继承的实现及公有、私有、静态方法的书写
2016/10/28 Javascript
判断div滑动到底部的scroll实例代码
2017/11/15 Javascript
详解如何在react中搭建d3力导向图
2018/01/12 Javascript
点击按钮弹出模态框的一系列操作代码实例
2019/03/29 Javascript
js实现贪吃蛇小游戏
2019/10/29 Javascript
vue 检测用户上传图片宽高的方法
2020/02/06 Javascript
基于aotu.js实现微信自动添加通讯录中的联系人功能
2020/05/28 Javascript
[48:39]Ti4主赛事胜者组第一天 EG vs NEWBEE 2
2014/07/19 DOTA
Python中的anydbm模版和shelve模版使用指南
2015/07/09 Python
python利用urllib实现爬取京东网站商品图片的爬虫实例
2017/08/24 Python
Python 爬取携程所有机票的实例代码
2018/06/11 Python
python实现石头剪刀布程序
2021/01/20 Python
Python使用os.listdir()和os.walk()获取文件路径与文件下所有目录的方法
2019/04/01 Python
python tkinter窗口最大化的实现
2019/07/15 Python
djano一对一、多对多、分页实例代码
2019/08/16 Python
python numpy生成等差数列、等比数列的实例
2020/02/25 Python
pyCharm 设置调试输出窗口中文显示方式(字符码转换)
2020/06/09 Python
keras和tensorflow使用fit_generator 批次训练操作
2020/07/03 Python
二年级小学生评语
2014/04/21 职场文书
工地安全生产标语
2014/06/06 职场文书
大学专科自荐信
2014/06/17 职场文书
教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
婚礼答谢礼品
2015/01/20 职场文书
求职自我评价范文
2015/03/09 职场文书
卡特教练观后感
2015/06/08 职场文书
退休教师追悼词
2015/06/23 职场文书
Python一行代码实现自动发邮件功能
2021/05/30 Python
大型强子对撞机再次重启探索“第五种自然力”
2022/04/29 数码科技