class Board {
public:
bool checkWon(vector<vector<int> > board) {
for(int i = 0; i < 3 ;++ i)
{
int count1 = 0;
int count2 = 0;
for(int j = 0; j < 3; ++ j)
{
count1 += board[i][j];
count2 += board[j][i];
}
if(count1 == 3 || count2 == 3)
return true;
}
if(board[0][0] + board[1][1] + board[2][2] == 3 || board[0][2] + board[1][1] + board[2][0] == 3 )
return true;
return false;
}
};
设计思路:
1.涉及数据库(表结构)
2.设计前后端交互接口
3.实现服务器和客户端的逻辑
数据库设计
1.创建一个数据库(Linux下安装mysql)
2.创建一个博客表。
a.blog_id int
b.title varchar(50) 标题
c.content正文
d.creat_time varchar(50)时间
e.tag_id int 标签 //表示这篇博客属于哪个标签
3.创建一个标签表
a.tag_id int
b.tag_name varchar (50)
使用代码mysql c API 来完成数据库的具体操作
MySQL:关系型数据库
1>重定向(把标准输出进行了重定向)
2>标准错误重定向
<标准输出重定向
编译的时候
-L是指定库地路径 - l 是指定库名
MySQL API 核心思想: 拼SQL语句!!
============================================================================
设计前后端的交互API
基于HTTP协议进行扩展,创建自定制协议
博客管理:
1.新增博客
2.获取博客列表
3.获取某个博客的详细内容
4.修改博客
5.删除博客
标签管理
1.新增标签
2.删除标签
3.查看所有标签
传统的API 设计方式:使用query_string 来进行来传递信息例如:
GET/1233?dahih=hasuic&da…
将所有的东西就放在query_string中传递
我们使用的是restful风格的API设计方式,使用不同的HTTP方法来表达不同的语意
1.使用POST方法表示新增
2.使用GET方法表示查看
3.使用PUT方法来表示修改
4.使用DELETE方法表示删除
使用path表示要操作的资源
使用json来组是body中的数据
自定制协议HTTP,我们使用子定制的HTTP协议
==========================================================================
查看所有的博客(标题列表)
GET/blog 获取所有
GET/blog?tag_id=1 按照标签来筛选
============================================================================
单元测试,每一个函数,每一个功能去进行测试。模块化测试
单元测试 gtest 谷歌提供的单元测试框架
MVC
model:数据相关的存储和操作
view:界面相关的操作
controller: 控制部分,核心业务逻辑 ,把V和M串到一起
===========================================================================
实现服务器相关的接口和逻辑:
HTTP服务器:
HTTP协议:
基于TCP服务器,在HTTP协议的基础上,来我i昂错字符串的解析和拼接。
使用的库是来自于github上的
链接是:https://github.com/yhirose/cpp-httplib,使用的时候只需要下载httplib.h就OK了,使用的时候,只需要包含#include"httplib.h"就可以了
==========================================================================
正则表达式(任何语言里面都有正则表达式的相关操作)
正则表达式就是用来筛选字符串的
特征包括不限于:包含哪些特定字符串,以什么开头
以什么结尾,特定字符出现多少次
systemctl stop firewalld
HTML + CSS +JavaScript