【五子棋实战】第1章 项目架构与开发思路

简介: 五子棋是一种古老而受欢迎的棋类游戏,本博客将介绍如何使用前端和算法接口来制作一个五子棋游戏。此次实战项目包含项目的所有代码、教学的系列博客,分别放在公众号、CSDN,以便广大读者能够更好地学习、实践与二开。

前言

  五子棋是一种古老而受欢迎的棋类游戏,本博客将介绍如何使用前端和算法接口来制作一个五子棋游戏。

  此次实战项目包含项目的所有代码教学的系列博客,分别放在公众号、CSDN,以便广大读者能够更好地学习、实践与二开。


## 项目技术栈

  前端:Web基础知识、JQuery、AJAX、响应式设计;

  后端算法接口:Python、Flask库、Numpy库、博弈树极大极小值alpha-beta剪枝算法、Python项目部署(Windows平台打包exe、Linux平台部署服务)


## 项目可配置性

 · 支持只使用后端接口服务,界面自定义

 · 接口支持win、linux平台

 · 接口提供电脑攻击权重设置、棋盘大小、电脑递归深度设置

 · 前端页面支持响应式设计

 · 前端页面支持棋盘大小、背景、线宽、行距自适应配置

 · 提供五子棋“悔棋”功能,提供难度选择功能(只需要修改递归深度)

 · 项目二开自由度很高





博客目录

 【五子棋实战】第1章 项目架构与开发思路

 【五子棋实战】第2章 博弈树负值极大alpha-beta剪枝算法

 【五子棋实战】第3章 算法包装成第三方接口

 【五子棋实战】第4章 部署五子棋计算接口到Window、Linux上

 【五子棋实战】第5章 开发五子棋前端页面

 【五子棋实战】第6章 调用接口进行联调




项目预览


  本项目自适应各种设备屏幕大小,电脑端与手机端效果如下,支持更多自定义操作:




项目代码获取


本项目的文件结构如下:



  Gobang-api存放接口代码;Gobang-ui存放前端界面代码。




项目架构

## 架构:前端页面 + 算法接口


 为了实现一个完整的五子棋游戏,选择采用前端页面和算法接口相结合的架构。前端负责展示游戏画面和用户交互,而算法接口则负责实现五子棋的核心算法。


 目的是开发出一个前端页面和算法接口弱耦合性的项目,只要开发出一个后端接口,每次输入棋盘的值,接口就可以返回下一步要下棋的位置。这样大家可以自定义自己的前端页面,不必局限于语言,界面用QT、Web、Python做都可以。


## 前端页面


  技术选型:主要用Web基础写页面,五子棋绘图用的是canvas画布。额外注意一下响应式设计。


## 算法接口


 预期目标:以接口访问的形式去获取下一步应该落子的坐标。要无状态,就是说算法里面的一些变量不依赖棋局的进行一次次保存,而是每次输入一个棋局,它去计算当前最优点返回。


 输入输出:输入就是棋盘值,一个二维数组,每个位置存的值表示三种状态:黑、白、空。输出可能会多一些,但是最主要的就是下一步落子的x、y坐标,可能还会有当前的玩家是谁、棋局step等等,这个我们会在后续接口设计的章节里面详细介绍。


 封装接口:当算法设计好之后,我们期望能把它部署到服务器,作为一个第三方去调用,甚至你可以去提供按次收费的五子棋第三方服务。


 接口部署:接口开发好了之后,需要使用,可以在本地使用,也可以部署到服务器。所以还会讲解如何在Windows、Linux平台部署接口。


 技术选型:这种轻量级的算法,首先排除Java;C++应该是首选但是我不会;JS是次首选但是开放成接口不方便,而且我们的算法是很吃CPU的,JS性能也不好;最后考虑使用Python,写法简单,开放接口简单,部署简单。




开发思路

 在确定好项目的架构和技术选型之后,我们需要拆分任务,明确开发思路,给自己排期:


 1、了解博弈树极大极小值alpha-beta剪枝算法,代码实现;


 2、将算法包装成第三方接口的形式;


 3、实现接口在Win、Linux的部署;


 4、开发前端页面,注意响应式、面向对象设计、可配置性;


 5、实现游戏的业务逻辑并进行联调,完成五子棋游戏制作;



相关文章
|
5天前
|
敏捷开发 存储 运维
深入理解后端开发中的微服务架构
在现代软件开发领域,微服务架构已经成为一种重要的设计模式。它通过将复杂的应用程序分解为一套小的、独立的服务来促进敏捷开发和快速迭代。本文旨在探索微服务架构的核心概念、优势与挑战,并结合具体案例分析其在实际应用中的表现。我们将从服务划分策略、通信机制,到数据一致性保障等方面,逐一剖析微服务架构的实施细节。此外,文章还将讨论微服务架构与传统单体架构的区别,以及如何平滑地从传统架构迁移至微服务架构。
|
10天前
|
Kubernetes 持续交付 Docker
现代后端开发中的微服务架构与容器化技术
本文探讨了现代后端开发中微服务架构与容器化技术的重要性和应用。微服务架构通过服务的拆分和独立部署提升了系统的灵活性和可维护性,而容器化技术则为微服务的快速部署和管理提供了解决方案。文章深入分析了微服务架构的优势、挑战以及如何利用容器化技术来支持微服务架构的实现。最后,通过实际案例展示了微服务与容器化技术在提升应用开发效率和系统稳定性方面的应用实践。【7月更文挑战第5天】
|
10天前
|
存储 缓存 负载均衡
高效后端开发中的架构设计与优化策略
在当今快速发展的技术环境中,高效的后端开发不仅仅依赖于编程技能,更需要精心设计的架构和优化策略。本文探讨了如何通过合理的架构设计和优化策略,提升后端系统的性能和可维护性,以应对复杂的业务需求和大规模的用户访问。【7月更文挑战第5天】
19 1
|
11天前
|
数据管理 物联网 开发者
现代化后端开发中的微服务架构设计与实现
在当今快速发展的软件开发领域,微服务架构已成为构建高效、可扩展和灵活的后端系统的重要方式。本文将探讨微服务架构的设计原则、实现方法以及应用场景,帮助开发者理解如何在项目中成功应用微服务。【7月更文挑战第4天】
25 2
|
2天前
|
Kubernetes 监控 Docker
现代后端开发中的微服务架构与容器化技术
传统的单体应用架构在面对现代大规模应用需求时已显不足,微服务架构及其伴随的容器化技术因其灵活性和可伸缩性成为了主流选择。本文探讨了微服务架构的优势及其与传统架构的对比,详细分析了容器化技术如何支持微服务的部署与管理,以及实际应用中的最佳实践。 【7月更文挑战第13天】
6 2
|
5天前
|
运维 Kubernetes 开发者
现代后端开发中的微服务架构与容器化技术
在当今快速发展的软件开发领域中,微服务架构和容器化技术日益成为开发者关注的焦点。本文将探讨微服务架构的优势、常见的容器化解决方案以及它们如何共同推动后端开发的现代化进程。 【7月更文挑战第9天】
16 5
|
3天前
|
敏捷开发 监控 Kubernetes
现代后端开发中的微服务架构设计与实现
在当今快速发展的软件开发领域,微服务架构因其灵活性和可伸缩性而日益流行。本文探讨了微服务架构的设计原则、实现步骤以及其在后端开发中的应用,旨在帮助开发人员理解如何构建和优化现代化的后端服务系统。 【7月更文挑战第12天】
|
5天前
|
运维 Kubernetes 开发者
现代后端开发中的微服务架构与容器化技术
本文探讨了现代后端开发中微服务架构与容器化技术的重要性及其应用。微服务架构通过将复杂的应用拆分为独立的服务单元,提升了系统的可扩展性和灵活性。容器化技术(如Docker和Kubernetes)则为微服务的部署与管理提供了高效的解决方案,极大地简化了开发者的工作流程。文章还分析了微服务与容器化技术的优势、挑战以及实际应用场景,旨在帮助开发者更好地理解和应用这些技术,提升软件开发的效率和质量。 【7月更文挑战第9天】
|
6天前
|
设计模式 消息中间件 监控
如何在Java项目中实现可扩展性架构
如何在Java项目中实现可扩展性架构
|
6天前
|
消息中间件 监控 Java
在Java项目中实现事件驱动架构
在Java项目中实现事件驱动架构