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使用htmllib分析网页内容的方法
May 08 Python
实例讲解Python设计模式编程之工厂方法模式的使用
Mar 02 Python
Python安装官方whl包和tar.gz包的方法(推荐)
Jun 04 Python
Python探索之自定义实现线程池
Oct 27 Python
python RabbitMQ 使用详细介绍(小结)
Nov 08 Python
Python一行代码实现快速排序的方法
Apr 30 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
Jun 17 Python
Django框架创建mysql连接与使用示例
Jul 29 Python
python 读取数据库并绘图的实例
Dec 03 Python
Python文件操作模拟用户登陆代码实例
Jun 09 Python
Django前后端分离csrf token获取方式
Dec 25 Python
Python借助with语句实现代码段只执行有限次
Mar 23 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
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
PHP图片处理之使用imagecopyresampled函数裁剪图片例子
2014/11/19 PHP
PHP实现二叉树的深度优先与广度优先遍历方法
2015/09/28 PHP
作为程序员必知的16个最佳PHP库
2015/12/09 PHP
详解PHP匿名函数与注意事项
2016/03/29 PHP
php解析xml 的四种简单方法(附实例)
2016/07/11 PHP
js或css实现滚动广告的几种方案
2010/01/28 Javascript
将nodejs打包工具整合到鼠标右键的方法
2013/05/11 NodeJs
JS操作JSON要领详细总结
2013/08/25 Javascript
javascript获取url上某个参数的方法
2013/11/08 Javascript
js截取固定长度的中英文字符的简单实例
2013/11/22 Javascript
jqueryUI里拖拽排序示例分析
2015/02/26 Javascript
js判断上传文件后缀名是否合法
2016/01/28 Javascript
jQuery实现鼠标选中文字后弹出提示窗口效果【附demo源码】
2016/09/05 Javascript
详解webpack中的hash、chunkhash、contenthash区别
2018/01/05 Javascript
使用node搭建自动发图文微博机器人的方法
2019/03/22 Javascript
Vue 动态路由的实现及 Springsecurity 按钮级别的权限控制
2019/09/05 Javascript
jQuery实现图片随机切换、抽奖功能(实例代码)
2019/10/23 jQuery
Python tempfile模块学习笔记(临时文件)
2014/05/25 Python
python计算方程式根的方法
2015/05/07 Python
Python之日期与时间处理模块(date和datetime)
2017/02/16 Python
Python正则简单实例分析
2017/03/21 Python
python爬虫系列Selenium定向爬取虎扑篮球图片详解
2017/11/15 Python
基于Python List的赋值方法
2018/06/23 Python
Python的UTC时间转换讲解
2019/02/26 Python
python 实现创建文件夹和创建日志文件的方法
2019/07/07 Python
python实现简单俄罗斯方块
2020/03/13 Python
Blue Nile台湾:钻石珠宝商,订婚首饰、结婚戒指和精品首饰
2017/11/24 全球购物
Ted Baker美国官网:英国时尚品牌
2018/10/29 全球购物
Talbots官网:美国成熟女装品牌
2019/11/15 全球购物
2013的个人自我评价
2013/12/26 职场文书
初中音乐教学反思
2014/01/12 职场文书
《跨越海峡的生命桥》教学反思
2014/02/24 职场文书
领导干部作风建设自查报告
2014/10/23 职场文书
幼儿园教师师德表现自我评价
2015/03/05 职场文书
vue实现登陆页面开发实践
2022/05/30 Vue.js