【在线五子棋对战】一、项目简介 环境搭建

article/2025/8/28 16:57:14

文章目录

  • Ⅰ. 项目简介
  • Ⅱ. 开发环境
  • Ⅲ. 核心技术
  • Ⅳ. 环境搭建
    • ① CentOS-7.6环境搭建
      • 1、安装wget工具
      • 2、更换软件源
      • 3、安装第三方软件源
      • 4、安装lrzsz传输工具
      • 5、安装高版本gcc/g++编译器
      • 6、安装gdb调试器
      • 7、安装git
      • 8、安装cmake
      • 9、安装boost库
      • 10、安装Jsoncpp库
      • 11、安装MySQL数据库服务及开发包
      • 12、安装Websocketpp库

在这里插入图片描述

Ⅰ. 项目简介

本项目主要实现⼀个网页版的五子棋对战游戏, 其主要支持以下核心功能:

  • 用户管理: 实现用户注册, 用户登录、获取用户信息、用户天梯分数记录、用户比赛场次记录等
  • 匹配对战: 实现两个玩家在网页端根据天梯分数匹配游戏对⼿,并进行五子棋游戏对战的功能
  • 聊天功能: 实现两个玩家在下棋的同时可以进行实时聊天的功能

Ⅱ. 开发环境

  • Linux(CentOS-7.6 / Ubuntu-22.04)
  • vscode/vim
  • g++/gdb
  • Makefile

Ⅲ. 核心技术

  • Http / Websocket
  • Websocket++
  • JsonCpp
  • Mysql
  • c++11
  • BlockQueue阻塞队列
  • HTML / CSS / JS / AJAX

Ⅳ. 环境搭建

① CentOS-7.6环境搭建

1、安装wget工具

wget 工具主要是为了下面我们去下载软件做准备的!如果已经安装过的,就不需要再安装了,因为我们对于 wget 来说并不需要对版本要太大要求。

​ 如果 rpm 指令来看看是否安装:

[liren@VM-8-7-centos ~]$ rpm -qa | grep wget
wget-1.14-18.el7_6.1.x86_64  #这样子代表已经安装

​ 下面是安装的指令:

[liren@VM-8-7-centos ~]$ sudo yum install wget

2、更换软件源

​ 更换软件源主要是为了下载速度的提升,因为默认下载文件都会到 CentOS 的官网去下载,这样子比较慢,所以我们可以换成国内的一些镜像软件源来提高下载速度。

​ 在更换软件源之前,我们要先将系统中的 yum 源给 备份起来,防止丢失,它的路径在 /etc/yum.repos.d/ 下面,.repo 文件表示的就是软件源,而系统官方的 yum 源是 CentOS-Base.repo,备份的话只需要在其名称后面加上一些后缀,比如这里会加 .bak1 后缀,防止后面我们更换软件源之后系统官方的 yum 源被覆盖了!

在这里插入图片描述

​ 然后就是更换为其它的官方软件源,这里更换的是阿里云的软件源:

在这里插入图片描述

​ 接着我们还要将之前的软件源缓存给清理一下:因为我们下载了新的软件源,那么之前的软件源的缓存就都没用了,直接清理即可:

在这里插入图片描述

​ 最后删除了之前的缓存,那么现在我们就要重新创建一个缓存给新的软件源使用

[liren@VM-8-7-centos ~]$ sudo yum makecache
……
……
Metadata Cache Created
[liren@VM-8-7-centos ~]$ 

3、安装第三方软件源

​ 因为下面安装软件的时候需要用到一些第三方软件源,所以这里也下载一下,主要是 scl、epel 软件源:

[liren@VM-8-7-centos ~]$ sudo yum install centos-release-scl-rh centos-release-scl[liren@VM-8-7-centos ~]$ sudo yum install epel-release

4、安装lrzsz传输工具

[liren@VM-8-7-centos ~]$ sudo yum install lrzsz[liren@VM-8-7-centos ~]$ rz --version
rz (lrzsz) 0.12.20

5、安装高版本gcc/g++编译器

​ 因为编写代码时候需要用到一些高版本的语法,所以要安装高版本的编译器,这和原来的 gcc 编译器是不冲突,直接安装就行!

​ 下面我们先列出软件源中的 gcc/g++ 编译器:

[liren@VM-8-7-centos ~]$ yum search devtoolset

​ 会弹出来很多版本的编译器,我们只需要安装版本 7 的就行了:

在这里插入图片描述

​ 接着我们就安装它:

[liren@VM-8-7-centos ~]$ sudo yum install -y devtoolset-7-all
[sudo] password for liren: 
……
……
Complete!

​ 安装完成之后,在 /opt/ 路径下就多了一个文件夹,我们来看看它的关系:

在这里插入图片描述

​ 我们需要 去加载一下这个 enable 配置文件,因为虽然我们安装好了编译器,但是原来的 gcc/g++ 编译器默认使用的版本还是旧的那套,如下所示:

在这里插入图片描述

​ 但是在下面加载之前,有个问题,就是当前如果是通过命令行去手动加载的话,下次重新打开终端再编译的时候还是得重新加载,如果我们想要 让其永久有效,也就是启动终端就加载这个 enable 配置文件,我们就要 配置一下终端的启动初始化配置文件
在这里插入图片描述

在这里插入图片描述

6、安装gdb调试器

[liren@VM-8-7-centos ~]$ sudo yum install -y gdb
……
……
Complete!
[liren@VM-8-7-centos ~]$ gdb --version
GNU gdb (GDB) Red Hat Enterprise Linux 8.0.1-36.el7
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
……

7、安装git

[liren@VM-8-7-centos ~]$ sudo yum install -y git
……
……
Complete!
[liren@VM-8-7-centos ~]$ git --version
git version 1.8.3.1

8、安装cmake

[liren@VM-8-7-centos ~]$ sudo yum install -y cmake
……
……
Complete!
[liren@VM-8-7-centos ~]$ cmake --version
cmake version 2.8.12.2

9、安装boost库

​ 因为 boost 库中有很多的工具,如果要我们一个一个去安装不现实,所以我们直接安装 boost-devel.x86_64,这是一个 boost 库的开发包:

在这里插入图片描述

[liren@VM-8-7-centos ~]$ sudo yum install -y boost-devel.x86_64
……
……
Complete!

​ 安装完就能在头文件目录中看到 boost 库的文件:

在这里插入图片描述

10、安装Jsoncpp库

[liren@VM-8-7-centos ~]$ sudo yum install -y jsoncpp-devel
……
……
Complete!
[liren@VM-8-7-centos ~]$ ls /usr/include/jsoncpp/json/
assertions.h  autolink.h  config.h  features.h 
forwards.h  json.h  reader.h  value.h  version.h  writer.h

11、安装MySQL数据库服务及开发包

​ 这里安装 mysql 的工作,具体参考 mysql 的笔记,不再赘述,主要讲一下一些小细节:

​ 登录查看 mysql 字符集是否正常:

mysql> show variables like '%chara%';          
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |   #客⼾端使⽤的字符集
| character_set_connection | utf8                       |   #客⼾端连接时使⽤的字符集
| character_set_database   | utf8                       |	#数据库创建默认字符集
| character_set_filesystem | binary                     |	#⽂件系统编码格式
| character_set_results    | utf8                       |	#服务器返回结果时的字符
| character_set_server     | utf8                       |	#存储系统元数据的字符集
| character_set_system     | utf8                       |	#系统使⽤的编码格式,不影响
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)
mysql> 

​ 可以看到编码格式是统一的(文件系统编码不一致不影响),但是如果出现不统一的情况,我们就得去 /etc/my.cnf 配置文件进行修改:

[zwc@VM-8-12-centos workspace]$ sudo vim /etc/my.cnf// my.cnf 配置文件 //
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
……

​ 另外再安装一下 mysql 的开发包,也就是一些头文件和库函数:

[liren@VM-8-7-centos echo_server]$ sudo yum install -y mysql-community-devel

12、安装Websocketpp库

​ 这里采用源码安装的形式,将 github 上开源的 Websocketpp 克隆到本地:

[liren@VM-8-7-centos ~]$ git clone https://github.com/zaphoyd/websocketpp.git

​ 接下来进入到这个下载好的文件夹中进行安装:

[liren@VM-8-7-centos ~]$ ls
linux  protobuf-21.11  websocketpp
[liren@VM-8-7-centos ~]$ cd websocketpp/         
[liren@VM-8-7-centos websocketpp]$ ls
build         cmake           COPYING  Doxyfile  readme.md   SConstruct  tutorials    websocketpp-config.cmake.in
changelog.md  CMakeLists.txt  docs     examples  roadmap.md  test        websocketpp
[liren@VM-8-7-centos websocketpp]$ mkdir build
[liren@VM-8-7-centos websocketpp]$ cd build
[liren@VM-8-7-centos build]$ cmake -DCMAKE_INSTALL_PREFIX=/usr ..      #因为websocketpp依赖于cmake来编译,所以要用cmake工具,其中-DCMAKE_INSTALL_PREFIX=/usr表示设置安装路径,将websocketpp的头文件放到usr/include,库文件放到usr/lib/中去;而 .. 表示针对上个目录也就是websocketpp文件夹进行生成make
……
……
[liren@VM-8-7-centos build]$ ls
CMakeCache.txt  CMakeFiles  cmake_install.cmake  install_manifest.txt  Makefile  websocketpp
[liren@VM-8-7-centos build]$ sudo make install
[sudo] password for liren: 
……
……
[liren@VM-8-7-centos build]$

​ 最后验证 websocketpp 是否安装成功:

[liren@VM-8-7-centos build]$ cd ../examples/echo_server
[liren@VM-8-7-centos echo_server]$ ls
CMakeLists.txt  echo_handler.hpp  echo_server.cpp  SConscript
[liren@VM-8-7-centos echo_server]$ g++ -std=c++11 echo_server.cpp -o echo_server -lpthread -lboost_system
[liren@VM-8-7-centos echo_server]$        #编译成功表示安装成功了

​ 编译成功,则表示安装成功了。

在这里插入图片描述


http://www.hkcw.cn/article/UcDtslULrd.shtml

相关文章

MFC坦克大战游戏制作

MFC坦克大战游戏制作 前言 现在的游戏制作一般是easyx&#xff0c;有没有直接只用mfc框架的&#xff0c;笔者研究了一番&#xff0c;做出了一个雏形&#xff0c;下面把遇到的问题总结出来 一、MFC框架制作游戏 初步设想&#xff0c;MFC可以选用 对话框 或者 单文档 结构&…

12:遨博机器人SDK二次开发

一、流程步骤 1.获取当前点关节坐标 2.走当前点关节坐标 1.获取目标点x,y,z&#xff08;位置坐标&#xff0c;以m为单位&#xff0c;需要*1000变成mm&#xff09;和四元素&#xff08;位姿坐标&#xff09; 2.四元素→欧拉角&#xff08;弧度制&#xff09; 3.欧拉角&#x…

XPlifeapp:高效打印,便捷生活

在数字化时代&#xff0c;虽然电子设备的使用越来越普遍&#xff0c;但打印的需求依然存在。无论是学生需要打印课表、资料&#xff0c;还是职场人士需要打印名片、报告&#xff0c;一个高效便捷的打印软件都能大大提高工作效率。XPlifeapp就是这样一款超级好用的手机打印软件&…

DeepSeekMath:突破开放式语言模型中数学推理能力的极限

摘要 由于数学推理具有复杂且结构化的特性&#xff0c;这对语言模型构成了重大挑战。在本文中&#xff0c;我们介绍了 DeepSeekMath 7B 模型&#xff0c;该模型在 DeepSeek-Coder-Base-v1.5 7B 模型的基础上&#xff0c;使用从 Common Crawl 获取的 1200 亿个与数学相关的标记…

OpenBayes 教程上新丨谷歌发布 MedGemma,基于 Gemma 3 构建,专攻医学文本与图像理解

在 Google I/O 2025 大会上&#xff0c;公司 CEO Sundar Pichai 在活动首日的主题演讲中便分享了多项创新&#xff0c;例如 Gemini 2.5 的全系列升级&#xff0c;Agent Mode 上线 Chrome&#xff0c;编码智能体 Jules 开启公测&#xff0c;Android XR 正式版亮相等等。而在一众…

【数据结构】栈和队列(下)

目录 一、队列&#xff08;先进先出的特殊结构&#xff09; 队列的概念与结构 二、代码实现 1、定义队列的结构 2、队列的初始化操作 3、判空操作 4、入队操作 5、出队操作 6、取队头、队尾操作 7、队列销毁操作 8、队列中有效数据个数 9、测试代码 10、.h文件 一…

基于卫星遥感数据识别互花米草及原生植被分布及生长的技术原理、关键方法

通过卫星遥感监测生态保护红线&#xff0c;基于卫星遥感数据识别互花米草及原生植被&#xff08;如芦苇&#xff09;的分布、面积及生长状况&#xff0c;主要利用不同植被类型的光谱特征差异、物候周期差异和遥感影像处理技术实现。 上星图地球开放平台获取更多生态保护解决方案…

可视化图解算法47:包含min函数的栈

1. 题目 牛客网 面试笔试 TOP101 | LeetCode 155. 最小栈 描述 定义栈的数据结构&#xff0c;请在该类型中实现一个能够得到栈中所含最小元素的 min 函数&#xff0c;输入操作时保证 pop、top 和 min 函数操作时&#xff0c;栈中一定有元素。 此栈包含的方法有&#x…

windows系统下通过visual studio使用clang tooling

vs吃上clang tooling 通过源码编译clang安装必备软件GnuWin32 Tools&#xff1a; 拉取/下载git仓库编译 在项目中使用clangTool 通过源码编译clang 教程参考安装教程 作者本人亲身使用流程&#xff1a; 安装必备软件 Git&#xff1a;作者已经有了&#xff0c;自己查CMake&am…

路由器、网关和光猫三种设备有啥区别?

无论是家中Wi-Fi信号的覆盖&#xff0c;还是企业网络的高效运行&#xff0c;路由器、网关和光猫这些设备都扮演着不可或缺的角色。然而&#xff0c;对于大多数人来说&#xff0c;这三者的功能和区别却像一团迷雾&#xff0c;似懂非懂。你是否曾疑惑&#xff0c;为什么家里需要光…

攻防世界János-the-Ripper

打开压缩包是一个文件&#xff0c;用010Editor打开可以发现里面有隐藏文件flag.txt 此时想到分离文件&#xff0c;利用binwalk工具 利用binwalk生成出的是一个压缩包&#xff0c;解压缩但是发现竟然解压需要密码 这里就可以开始暴力破解密码了&#xff0c;这里我用的是ARCHPR工…

酷派Cool20/20S/30/40手机安装Play商店-谷歌三件套-GMS方法

酷派Cool系列主打低端市场&#xff0c;系统无任何GMS程序&#xff0c;也不支持直接开启或者安装谷歌服务等功能&#xff0c;对于国内部分经常使用谷歌服务商店的小伙伴非常不友好。涉及机型有酷派Cool20/Cool20S /30/40/50/60等旗下多个设备。好在这些机型运行的系统都是安卓11…

本地部署大模型llm+RAG向量检索问答系统 deepseek chatgpt

项目视频讲解: 本地部署大模型llm+RAG向量检索问答系统 deepseek chatgpt_哔哩哔哩_bilibili 运行结果:

并查集 c++函数的值传递和引用传递 晴神问

目录 学校的班级个数 手推7个班级&#xff0c;答案17&#xff1f;怀疑人生 破案了&#xff0c;应该是6个班。 破案了&#xff0c;原来写的是 unionxy(a, b, father); c if两个数同时为正或为负 简洁写法 可以用位运算&#xff1f; c可以这样赋值吗&#xff1f;ab2 典型…

Dynamics 365 Business Central AI Sales Order Agent Copilot

#AI Copilot# #D365 BC 26 Wave# 最近很多客户都陆续升级到 Dynamics 365 Business Central 26 wave, Microsoft 提供一个基于Copilot 的Sales Order Agent&#xff0c;此文将此功能做个介绍. Explorer: 可以看到26版本上面增加了这样一个新图标。 Configuration: 配置过程…

Webug4.0靶场通关笔记03- 第3关SQL注入之时间盲注(手注法+脚本法 两种方法)

目录 一、源码分析 1.分析闭合 2.分析输出 &#xff08;1&#xff09;查询成功 &#xff08;2&#xff09;查询失败 &#xff08;3&#xff09;SQL语句执行报错 二、第03关 延时注入 1.打开靶场 2.SQL手注 &#xff08;1&#xff09;盲注分析 &#xff08;2&#xf…

NodeJS 基于 Koa, 开发一个读取文件,并返回给客户端文件下载,以及读取文件形成列表和文件删除的代码演示

前言 在上一篇文章 《Nodejs 实现 Mysql 数据库的全量备份的代码演示》 中&#xff0c;我们演示了如何将用户的 Mysql 数据库进行备份的代码。但是&#xff0c;这个备份&#xff0c;只是备份在了服务器上了。 而我们用户的真实需求&#xff0c;是需要将备份文件下载到本地进行…

中国自然灾害影响及损失数据

自然灾害往往会导致大量的人员伤亡和财产损失&#xff0c;数据集详细记载了2014-2020年中国自然灾害影响以及灾害造成的损失情况。其中包括地震、台风、雨雪、阵雨、雪灾、暴雨、旱灾、龙卷风、泥石流、山崩、泥石流、滑坡、洪涝等灾害事件。 数据集主要以excel的格式存储。属性…

UE5.5 pixelstreaming插件打包报错

文章目录 错误内容如下解决方案推流服务器不能使用 错误内容如下 The following files are set to be staged, but contain restricted folder names ("Linux"): CTZ5_5/Samples/PixelStreaming/WebServers/Extras/FrontendTests/dockerfiles/linux/Dockerfile CTZ5…

UE5打包项目设置Project Settings(打包widows exe安装包)

UE5打包项目Project Settings Edit-Project Settings- Packaging-Ini Section Denylist-Advanced 1&#xff1a;打包 2&#xff1a;高级设置 3&#xff1a;勾选创建压缩包 4&#xff1a;添加要打包地图Map的数量 5&#xff1a;选择要打包的地图Maps 6&#xff1a;Project-Bui…