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 functools模块学习总结
May 09 Python
Python 基于Twisted框架的文件夹网络传输源码
Aug 28 Python
Python爬虫实例爬取网站搞笑段子
Nov 08 Python
python实现kNN算法
Dec 20 Python
tensorflow使用range_input_producer多线程读取数据实例
Jan 20 Python
python tkinter之顶层菜单、弹出菜单实例
Mar 04 Python
python初步实现word2vec操作
Jun 09 Python
python名片管理系统开发
Jun 18 Python
python类共享变量操作
Sep 03 Python
python 制作简单的音乐播放器
Nov 25 Python
基于Python实现粒子滤波效果
Dec 01 Python
python基于tkinter制作下班倒计时工具
Apr 28 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
动易数据转成dedecms的php程序
2007/04/07 PHP
php+ajax实现的点击浏览量加1
2015/04/16 PHP
php发送html格式文本邮件的方法
2015/06/10 PHP
JavaScript 异步方法队列链实现代码分析
2010/06/05 Javascript
javascript如何使用bind指定接收者
2014/05/04 Javascript
jQuery操作select下拉框的text值和value值的方法
2014/05/31 Javascript
NodeJS制作爬虫全过程(续)
2014/12/22 NodeJs
javascript多行字符串的简单实现方式
2015/05/04 Javascript
浅析如何利用angular结合translate为项目实现国际化
2016/12/08 Javascript
d3.js中冷门却实用的内置函数总结
2017/02/04 Javascript
前端自动化开发之Node.js的环境搭建教程
2017/04/01 Javascript
关于vue.js过渡css类名的理解(推荐)
2017/04/10 Javascript
JS实现队列的先进先出功能示例
2017/05/10 Javascript
angularjs使用gulp-uglify压缩后执行报错的解决方法
2018/03/07 Javascript
Angular5集成eventbus的示例代码
2018/07/19 Javascript
jQuery中each和js中forEach的区别分析
2019/02/27 jQuery
vue+php实现的微博留言功能示例
2019/03/16 Javascript
jquery实现手风琴案例
2020/05/04 jQuery
用Javascript实现发送短信验证码间隔功能
2021/02/08 Javascript
Python与Redis的连接教程
2015/04/22 Python
Python中asyncore异步模块的用法及实现httpclient的实例
2016/06/28 Python
Python的消息队列包SnakeMQ使用初探
2016/06/29 Python
python装饰器初探(推荐)
2016/07/21 Python
Python爬虫设置代理IP的方法(爬虫技巧)
2018/03/04 Python
python按行读取文件,去掉每行的换行符\n的实例
2018/04/19 Python
python爬虫URL重试机制的实现方法(python2.7以及python3.5)
2018/12/18 Python
python获取点击的坐标画图形的方法
2019/07/09 Python
Python3分析处理声音数据的例子
2019/08/27 Python
Python sorted对list和dict排序
2020/06/09 Python
北美Newegg打造的全球尖货海购平台:tt海购
2018/09/28 全球购物
学生个人求职自荐信格式
2013/09/23 职场文书
机械机修工岗位职责
2014/08/03 职场文书
试用期旷工辞退通知书
2015/04/17 职场文书
2016春季小学开学寄语
2015/12/03 职场文书
2019银行员工个人工作自我鉴定
2019/06/27 职场文书
Promise面试题详解之控制并发
2021/05/14 面试题