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脚本实现下载合并SAE日志
Feb 10 Python
九步学会Python装饰器
May 09 Python
OpenCV 轮廓检测的实现方法
Jul 03 Python
在django中实现页面倒数几秒后自动跳转的例子
Aug 16 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
Aug 26 Python
python sorted函数的小练习及解答
Sep 18 Python
利用PyQt5+Matplotlib 绘制静态/动态图的实现代码
Jul 13 Python
Python+OpenCV图像处理——图像二值化的实现
Oct 24 Python
Python 实现一个简单的web服务器
Jan 03 Python
详解用selenium来下载小姐姐图片并保存
Jan 26 Python
python实现socket简单通信的示例代码
Apr 13 Python
总结python多进程multiprocessing的相关知识
Jun 29 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
全国FM电台频率大全 - 22 重庆市
2020/03/11 无线电
Home Coffee Roasting
2021/03/03 咖啡文化
php sprintf()函数让你的sql操作更安全
2008/07/23 PHP
PHP图像处理之imagecreate、imagedestroy函数介绍
2014/11/19 PHP
php使用curl出现Expect:100-continue解决方法
2015/03/03 PHP
JavaScript与HTML结合的基本使用方法整理
2015/10/12 PHP
php生成curl命令行的方法
2015/12/14 PHP
PHP chunk_split()函数讲解
2019/02/12 PHP
jquery1.5.1中根据元素ID获取元素对象的代码
2011/04/02 Javascript
js中的屏蔽的使用示例
2013/07/30 Javascript
使用js简单实现了tree树菜单
2013/11/20 Javascript
理运用命名空间让js不产生冲突避免全局变量的泛滥
2014/06/15 Javascript
基于jQuery实现下拉框
2014/11/24 Javascript
jQuery实现的漂亮表单效果代码
2015/08/18 Javascript
js实现简洁的TAB滑动门效果代码
2015/09/06 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
微信小程序下拉框组件使用方法详解
2018/12/28 Javascript
vue发送websocket请求和http post请求的实例代码
2019/07/11 Javascript
python实现360皮肤按钮控件示例
2014/02/21 Python
Pytorch入门之mnist分类实例
2018/04/14 Python
PyTorch搭建多项式回归模型(三)
2019/05/22 Python
Django基础知识 web框架的本质详解
2019/07/18 Python
使用Python 自动生成 Word 文档的教程
2020/02/13 Python
python GUI库图形界面开发之PyQt5 Qt Designer工具(Qt设计师)详细使用方法及Designer ui文件转py文件方法
2020/02/26 Python
python中pathlib模块的基本用法与总结
2020/08/17 Python
美国著名珠宝品牌之一:Jared The Galleria Of Jewelry
2016/10/01 全球购物
英国外籍人士的在线超市:British Corner Shop
2019/06/03 全球购物
杭州-DOTNET笔试题集
2013/09/25 面试题
车间班长岗位职责
2013/11/30 职场文书
机修工工作职责
2014/02/21 职场文书
工作评语大全
2014/04/26 职场文书
建议书的格式
2014/05/12 职场文书
六一亲子活动感想
2015/08/07 职场文书
导游词之扬州大明寺
2019/10/09 职场文书
利用python调用摄像头的实例分析
2021/06/07 Python
Python MNIST手写体识别详解与试练
2021/11/07 Python