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 相关文章推荐
在Django的模型中添加自定义方法的示例
Jul 21 Python
两个使用Python脚本操作文件的小示例分享
Aug 27 Python
Python ldap实现登录实例代码
Sep 30 Python
Python Sqlite3以字典形式返回查询结果的实现方法
Oct 03 Python
python爬虫之模拟登陆csdn的实例代码
May 18 Python
78行Python代码实现现微信撤回消息功能
Jul 26 Python
python使用matplotlib库生成随机漫步图
Aug 27 Python
python将处理好的图像保存到指定目录下的方法
Jan 10 Python
Python控制台输出时刷新当前行内容而不是输出新行的实现
Feb 21 Python
Python中os模块功能与用法详解
Feb 26 Python
使用Django清空数据库并重新生成
Apr 03 Python
Python3爬虫中Splash的知识总结
Jul 10 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
通过JavaScript或PHP检测Android设备的代码
2011/03/09 PHP
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
2014/06/19 PHP
四种php中webservice实现的简单架构方法及实例
2015/02/03 PHP
laravel容器延迟加载以及auth扩展详解
2015/03/02 PHP
Laravel5.5 数据库迁移:创建表与修改表示例
2019/10/23 PHP
数据结构之利用PHP实现二分搜索树
2020/10/25 PHP
JS 文件本身编码转换 图文教程
2009/10/12 Javascript
用jquery存取照片的具体实现方法
2013/06/30 Javascript
JavaScript DOM节点添加示例
2014/07/16 Javascript
浅谈javascript属性onresize
2015/04/20 Javascript
深入理解JavaScript编程中的同步与异步机制
2015/06/24 Javascript
jquery插件jquery.confirm弹出确认消息
2015/12/22 Javascript
jqueryMobile 动态添加元素,展示刷新视图的实现方法
2016/05/28 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
2017/07/13 Javascript
React-Native之定时器Timer的实现代码
2017/10/04 Javascript
微信小程序实现页面跳转传值的方法
2017/10/12 Javascript
anime.js 实现带有描边动画效果的复选框(推荐)
2017/12/24 Javascript
jQuery实现适用于移动端的跑马灯抽奖特效示例
2019/01/18 jQuery
jQuery实现input输入框获取焦点与失去焦点时提示的消失与显示功能示例
2019/05/27 jQuery
解决layui checkbox 提交多个值的问题
2019/09/02 Javascript
[01:00:53]OG vs IG 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[02:06]2018完美世界全国高校联赛秋季赛开始报名(附彩蛋)
2018/09/03 DOTA
Python命令行参数解析模块optparse使用实例
2015/04/13 Python
python判断计算机是否有网络连接的实例
2018/12/15 Python
pygame实现俄罗斯方块游戏(对战篇1)
2019/10/29 Python
Python实现RGB与HSI颜色空间的互换方式
2019/11/27 Python
解决python对齐错误的方法
2020/07/16 Python
html5教程实现Photoshop渐变色效果
2013/12/04 HTML / CSS
HTML5 HTMLCollection和NodeList的区别详解
2020/04/29 HTML / CSS
西安启天科技有限公司网络工程师面试题笔试题
2016/06/12 面试题
顶岗实习计划书
2014/01/10 职场文书
幼师辞职信范文
2015/02/27 职场文书
Apache Calcite 实现方言转换的代码
2021/04/24 Servers
python 算法题——快乐数的多种解法
2021/05/27 Python
教你用Java Swing实现自助取款机系统
2021/06/11 Java/Android
以MySQL5.7为例了解一下执行计划
2022/04/13 MySQL