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 set集合类型操作总结
Nov 07 Python
Python制作CSDN免积分下载器
Mar 10 Python
理解Python中的类与实例
Apr 27 Python
Python常用的爬虫技巧总结
Mar 28 Python
Python读取图片为16进制表示简单代码
Jan 19 Python
Python中pip更新和三方插件安装说明
Jul 08 Python
Python合并多个Excel数据的方法
Jul 16 Python
Python中psutil的介绍与用法
May 02 Python
django项目用higcharts统计最近七天文章点击量
Aug 17 Python
使用TensorFlow搭建一个全连接神经网络教程
Feb 06 Python
浅谈pandas dataframe对除数是零的处理
Jul 20 Python
python中pandas对多列进行分组统计的实现
Jun 18 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
IIS下配置Php+Mysql+zend的图文教程
2006/12/08 PHP
比较全的PHP 会话(session 时间设定)使用入门代码
2008/06/05 PHP
浅谈PHP中output_buffering
2015/07/13 PHP
通过PHP自带的服务器来查看正则匹配结果的方法
2015/12/24 PHP
laravel-admin的多级联动方法
2019/09/30 PHP
jquery 1.4.2发布!主要是性能与API
2010/02/25 Javascript
uploadify 3.0 详细使用说明
2012/06/18 Javascript
jquery 3D 标签云示例代码
2014/06/12 Javascript
jQuery类选择器用法实例
2014/12/23 Javascript
js实现点击图片改变页面背景图的方法
2015/02/28 Javascript
Angular搜索 过滤 批量删除 添加 表单验证功能集锦(实例代码)
2017/10/25 Javascript
微信小程序实现YDUI的ScrollTab组件
2018/02/02 Javascript
详解ajax的data参数错误导致页面崩溃
2018/04/30 Javascript
node.js调用C++函数的方法示例
2018/09/21 Javascript
使用js实现一个简单的滚动条过程解析
2019/09/10 Javascript
JS实现扫码枪扫描二维码功能
2020/01/03 Javascript
Vue项目vscode 安装eslint插件的方法(代码自动修复)
2020/04/15 Javascript
微信小程序上传帖子的实例代码(含有文字图片的微信验证)
2020/07/11 Javascript
vue 使用async写数字动态加载效果案例
2020/07/18 Javascript
vue内置组件component--通过is属性动态渲染组件操作
2020/07/28 Javascript
python3简单实现微信爬虫
2015/04/09 Python
在Python下尝试多线程编程
2015/04/28 Python
在Python中使用SQLite的简单教程
2015/04/29 Python
Python IDLE入门简介
2017/12/08 Python
详解Python利用random生成一个列表内的随机数
2019/08/21 Python
Python中如何将一个类方法变为多个方法
2019/12/30 Python
Python使用内置函数setattr设置对象的属性值
2020/10/16 Python
HTML5中原生的右键菜单创建方法
2016/06/28 HTML / CSS
优秀管理者事迹材料
2014/05/22 职场文书
服装发布会策划方案
2014/05/22 职场文书
领导干部群众路线对照检查材料
2014/11/05 职场文书
防溺水安全教育主题班会
2015/08/12 职场文书
Oracle创建只读账号的详细步骤
2021/06/07 Oracle
JavaScript展开运算符和剩余运算符的区别详解
2022/02/18 Javascript
速龙x4-860k处理器相当于i几
2022/04/20 数码科技
Java 轮询锁使用时遇到问题
2022/05/11 Java/Android