返回顶部
首页 > 资讯 > 后端开发 > Python >Python写一个创意五子棋游戏
  • 697
分享到

Python写一个创意五子棋游戏

python算法windowspycharm爬虫 2023-08-31 17:08:10 697人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

前言 在本教程中,我们将使用Python写一个创意五子棋游戏     📝个人主页→数据挖掘博主ZTLJQ的主页 个人推荐python学习系列: ☄️爬虫JS逆向系列专栏 - 爬虫逆向教学 ☄️pytho

前言

在本教程中,我们将使用Python写一个创意五子棋游戏

b1691e6f246947eeb06ee06469621bc2.gif

 

 

📝个人主页→数据挖掘博主ZTLJQ的主页

个人推荐python学习系列:

☄️爬虫JS逆向系列专栏 爬虫逆向教学

☄️python系列专栏 - 从零开始学python


首先

GomokuGame 类的构造函数 __init__ 初始化游戏。board_size 参数默认为 15,表示棋盘大小。board 是一个二维列表,代表棋盘上的状态。current_player 记录当前玩家,初始为 'X'。winner 记录胜利者,初始为 None。

class GomokuGame:    def __init__(self, board_size=15):        self.board_size = board_size        self.board = [[' ' for _ in range(board_size)] for _ in range(board_size)]        self.current_player = 'X'        self.winner = None

print_board 方法用于打印当前棋盘的状态。首先,它打印列索引。然后,遍历每一行打印出当前行的棋子状态。

    def print_board(self):        print("  " + " ".join(str(i) for i in range(self.board_size)))        for i in range(self.board_size):            print(str(i) + " " + " ".join(self.board[i]))        print()

make_move 方法用于玩家落子。如果指定位置为空,将当前玩家的标记放置在该位置。然后调用 check_winner 方法检查是否有胜利者。最后,切换当前玩家。

    def make_move(self, row, col):        if self.board[row][col] == ' ':            self.board[row][col] = self.current_player            if self.check_winner(row, col):                self.winner = self.current_player            self.current_player = 'X' if self.current_player == 'O' else 'O'            return True        return False

check_winner 方法用于检查是否有玩家获胜。它通过检查当前位置的四个方向来判断是否有五个连续相同的棋子。如果存在,则返回 True,表示有玩家获胜。

    def check_winner(self, row, col):        directions = [(0, 1), (1, 0), (1, 1), (1, -1)]        for dr, dc in directions:            count = 1            for i in range(1, 5):                r, c = row + i * dr, col + i * dc                if 0 <= r < self.board_size and 0 <= c < self.board_size and self.board[r][c] == self.current_player:                    count += 1                else:                    break            for i in range(1, 5):                r, c = row - i * dr, col - i * dc                if 0 <= r < self.board_size and 0 <= c < self.board_size and self.board[r][c] == self.current_player:                    count += 1                else:                    break            if count >= 5:                return True        return False

play 方法是游戏的主循环。它持续运行直到有玩家获胜。在每一轮中,它打印当前棋盘,然后获取玩家输入的行和列,进行落子操作。如果落子无效,则要求玩家重新输入。如果有玩家获胜,则打印胜利信息并结束游戏。

    def play(self):        while not self.winner:            self.print_board()            try:                row = int(input("玩家{}的回合,请输入你要下的行数: ".fORMat(self.current_player)))                col = int(input("请输入你要下的列数: "))                if 0 <= row < self.board_size and 0 <= col < self.board_size:                    if self.make_move(row, col):                        if self.winner:self.print_board()print("玩家{},你赢了".format(self.winner))break                    else:                        print("无效移动。再试一次。")                else:                    print("输入无效。再试一次。")            except ValueError:                print("输入无效。输入一个数字。")

在代码的末尾,通过这个条件判断,确保仅在直接运行该脚本时才会执行创建游戏对象并开始游戏。

if __name__ == "__main__":    game = GomokuGame()    game.play()

下面是完全代码,可以直接复制运行

class GomokuGame:    def __init__(self, board_size=15):        self.board_size = board_size        self.board = [[' ' for _ in range(board_size)] for _ in range(board_size)]        self.current_player = 'X'        self.winner = None    def print_board(self):        print("  " + " ".join(str(i) for i in range(self.board_size)))        for i in range(self.board_size):            print(str(i) + " " + " ".join(self.board[i]))        print()    def make_move(self, row, col):        if self.board[row][col] == ' ':            self.board[row][col] = self.current_player            if self.check_winner(row, col):                self.winner = self.current_player            self.current_player = 'X' if self.current_player == 'O' else 'O'            return True        return False    def check_winner(self, row, col):        directions = [(0, 1), (1, 0), (1, 1), (1, -1)]        for dr, dc in directions:            count = 1            for i in range(1, 5):                r, c = row + i * dr, col + i * dc                if 0 <= r < self.board_size and 0 <= c < self.board_size and self.board[r][c] == self.current_player:                    count += 1                else:                    break            for i in range(1, 5):                r, c = row - i * dr, col - i * dc                if 0 <= r < self.board_size and 0 <= c < self.board_size and self.board[r][c] == self.current_player:                    count += 1                else:                    break            if count >= 5:                return True        return False    def play(self):        while not self.winner:            self.print_board()            try:                row = int(input("玩家{}的回合,请输入你要下的行数: ".format(self.current_player)))                col = int(input("请输入你要下的列数: "))                if 0 <= row < self.board_size and 0 <= col < self.board_size:                    if self.make_move(row, col):                        if self.winner:self.print_board()print("玩家{},你赢了".format(self.winner))break                    else:                        print("无效移动。再试一次。")                else:                    print("输入无效。再试一次。")            except ValueError:                print("输入无效。输入一个数字。")if __name__ == "__main__":    game = GomokuGame()    game.play()

 

 

来源地址:https://blog.csdn.net/SUEJESDA/article/details/132390225

--结束END--

本文标题: Python写一个创意五子棋游戏

本文链接: https://lsjlt.com/news/386335.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Python写一个创意五子棋游戏
    前言 在本教程中,我们将使用Python写一个创意五子棋游戏     📝个人主页→数据挖掘博主ZTLJQ的主页 个人推荐python学习系列: ☄️爬虫JS逆向系列专栏 - 爬虫逆向教学 ☄️pytho...
    99+
    2023-08-31
    python 算法 windows pycharm 爬虫
  • python编写五子棋游戏
    本文实例为大家分享了python编写五子棋游戏的具体代码,供大家参考,具体内容如下 游戏代码及部分注释 import pygame #导入pygame游戏模块 import time ...
    99+
    2022-06-02
    python 五子棋
  • 怎么用Js写一个简单的五子棋小游戏
    这篇文章主要讲解了“怎么用Js写一个简单的五子棋小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用Js写一个简单的五子棋小游戏”吧!这里的五子棋只做一些基础的功能,对于相对专业的规则...
    99+
    2023-07-02
  • 教你用Js写一个简单的五子棋小游戏
    目录棋盘绘制棋子的绘制在点击 canvas 的时候获取相对于棋盘数据的坐标点是否结束悔棋功能总结 这里的五子棋只做一些基础的功能,对于相对专业的规则不做处理。 那...
    99+
    2024-04-02
  • pythonPyGame五子棋小游戏
    目录前言五子棋小游戏1、简介2、环境准备3、初始化环境4、棋盘5、黑白棋子6、对局信息7、AI8、完善总结前言 PyGame 是一个专门设计来进行游戏开发设计的 Python 模块,...
    99+
    2024-04-02
  • 使用原生JS快速写出一个五子棋小游戏
    目录1.棋盘和棋子的绘制。2.轮流下棋的点击事件3.获胜条件判断3.1横轴获胜3.2数轴获胜3.3正斜轴获胜3.4反斜轴获胜4.悔棋功能总结1.棋盘和棋子的绘制。 let arr ...
    99+
    2024-04-02
  • 基于Python实现五子棋游戏
    本文实例为大家分享了Python实现五子棋游戏的具体代码,供大家参考,具体内容如下 了解游戏的规则是我们首先需要做的事情,如果不知晓规则,那么我们肯定寸步难行。 五子棋游戏规则: 1...
    99+
    2024-04-02
  • python代码实现五子棋游戏
    本文实例为大家分享了python实现五子棋游戏的具体代码,供大家参考,具体内容如下 先上代码  #调用pygame库 import pygame import sys #调...
    99+
    2024-04-02
  • Python实现简易五子棋游戏
    本文实例为大家分享了Python实现五子棋游戏的具体代码,供大家参考,具体内容如下 class CheckerBoard():     '''棋盘类'''     def __ini...
    99+
    2024-04-02
  • 教你用Vue基础语法来写一个五子棋小游戏
    目录前言1.绘制游戏区域和游戏元素2.点击事件3.悔棋功能4.判断胜负写在最后前言 在之前的文章中,用JS的基础语法写了一个五子棋小游戏# 如何使用原生JS,快速写出一个五子棋小游戏...
    99+
    2024-04-02
  • 使用QT如何实现一个五子棋游戏
    今天就跟大家聊聊有关使用QT如何实现一个五子棋游戏,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。FIR.pro QT    &nbs...
    99+
    2023-06-15
  • Java实现五子棋游戏
    本文实例为大家分享了Java实现五子棋游戏的具体代码,供大家参考,具体内容如下 一、功能分析 五子棋的实现还是较为简单的,通过下期的流程我们可以知道大概要实现一下功能: 1、格界面 ...
    99+
    2024-04-02
  • Python五子棋小游戏实例分享
    本文实例为大家分享了Python实现五子棋小游戏的具体代码,供大家参考,具体内容如下 使用的库 pygame、pyautogui 流程简述 1.画棋盘 设置网格间隔40px ,留白 ...
    99+
    2024-04-02
  • python实现简单五子棋小游戏
    用python实现五子棋简单人机模式的练习过程,供大家参考,具体内容如下 最近在初学python,今天就用自己的一些粗浅理解,来记录一下这几天的python简单人机五子棋游戏的练习,...
    99+
    2024-04-02
  • Python:游戏:五子棋之人机对战
    本文代码基于 python3.6 和 pygame1.9.4。 五子棋比起我之前写的几款游戏来说,难度提高了不少。如果是人与人对战,那么,电脑只需要判断是否赢了就可以。如果是人机对战,那你还得让电脑知道怎么下。 我们先从简单的问题来...
    99+
    2023-01-30
    人机 对战 五子
  • Python+Pygame实现彩色五子棋游戏
    目录项目简介项目背后的故事项目扩展思路运行截图安装依赖运行游戏项目简介 之前学python的时候 写了个游戏来练手 用的是 pygame 没有别的依赖 只用了一两百行的代码就实现了 ...
    99+
    2023-02-10
    Python Pygame彩色五子棋游戏 Python Pygame五子棋游戏 Python Pygame 游戏
  • 怎么使用Vue开发一个五子棋小游戏
    这篇文章主要讲解了“怎么使用Vue开发一个五子棋小游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么使用Vue开发一个五子棋小游戏”吧!1.绘制游戏区域和游戏元素开始写代码之前,一定要记...
    99+
    2023-07-02
  • Java实现五子棋游戏(2.0)
    本文实例为大家分享了Java实现五子棋游戏的具体代码,供大家参考,具体内容如下 简介 相比之前,做出了以下修改: 1.新增菜单栏,将重新开始和退出的按钮移到了菜单栏;2.可以实时显示...
    99+
    2024-04-02
  • C++实现五子棋小游戏
    本文实例为大家分享了C++实现五子棋小游戏的具体代码,供大家参考,具体内容如下 思路:先用用system(“color 70”)改变控制台的背景色为灰白色,前...
    99+
    2024-04-02
  • JavaScript+canvas实现五子棋游戏
    本文实例为大家分享了JavaScript+canvas实现五子棋游戏的具体代码,供大家参考,具体内容如下 效果截图: 代码实现: <!DOCTYPE html> &l...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作