Cocos2dx学习笔记
cocos2dx是一个开源的C++游戏开发框架,实现了很多开发游戏常用的底层封装,我们可以通过调用框架实现的api来根据自己的想法构建游戏。
cocos2dx是跨平台的,使用cmake构建同一套源代码在不同平台下不同编译环境的项目结构,在相应的平台打包就可以得到相应的可执行程序。
本文使用windows平台进行开发,需要cmake生成visual studio2019的项目结构,并使用vs2019打包出win32平台的可执行程序。
(其实也尝试了在Android Studio中生成Android平台安装包,但是由于中文编码问题失败了)
搭建开发环境
必要工具
cmake3.7
这个可以直接在vs2019中的工具里获取
然后在单个组件里搜索cmake,安装那个用于windows的cmake然后保存修改就好了
python2.7
https://www.python.org/downloads/release/python-2718/
在这个网址里面安装下面列表中的这个版本
cocos2dx
https://www.cocos.com/cocos2dx
下载这个里面的4. ...
大富翁
仓库地址
https://github.com/li-letian/Monopoly
成员信息
GitHub:
li-letian
is-not-matter
long200329
游戏概述
本游戏是模仿大富翁4,实现的一个复(jian)刻(dan)版的大富翁。
本游戏主要由鼠标操作,目前只有Windows版本,后期可能会考虑移植Android等其他平台。点击monopoly.exe运行,按照提示操作即可。
目前版本为单机版,加入了AI角色,玩家在选择界面点击switch可切换玩家或者AI。后续可能会考虑联网功能以及存档功能。
下载与操作说明
下载本链接中Assets中的release.zip解压后运行monopoly.exe即可
地图与小地图
基本交互
地图为一个循环路径,路径上的位置存在不同的地产,会触发不同的效果。
在允许操作时,鼠标点击路径的格子,即可显示当前位置的地产信息。
在允许操作时,鼠标拖动非路径的格子,即可实现地图拖拽。
在允许操作时,鼠标点击小地图相应位置,即可实现视角跳转。
地图选点
道具的相关操作可能会涉及到地图选点,在相应文字提示下点击路径上的有效 ...
国际跳棋AI
大一上学期作业项目,用C语言实现一个有一定棋力的国际跳棋AI。
首先:传 统 艺 能
:建议雇一批人日夜破坏嘉定电网
:建议连夜盗取某曾姓dl的代码
:大家好,我叫zch。其实我叫什么名字并不重要,你叫我神也可以,叫我渣男也可以,反正你知道我是同济大学2019级新生院最牛B的那个人就可以了。
知乎刚学了2个月C语言的萌新如何写出国际跳棋程序?
好了皮完了进入正题:
成绩
在dl们更新代码的间隙体验了一把榜一,蛮爽的:sleeping:。
最终只有Rank11,比较菜。
仓库
GitHub仓库地址
游戏规则与平台说明
下面一大大大大大段是俺抄的助教写的说明。
项目简介
该项目是个人项目,学生需要独立完成。学生需要使用 C 语言实现一个“国际跳棋”走子程序(以下称为大脑程序),使用 stdin 来接收对手落子情况、通过计算后使用 stdout 输出自己的落子(见输入输出格式)。算法不限,但有时间和内存上的限制(见比赛规则)。
学生需要将大脑程序的源码递交到指定的在线评测平台。平台会对所有同学的大脑程序两两进行机-机“国际跳棋”对抗比赛。比赛获胜方可获得积分。学生在该项目 ...
通过Git与GitHub进行版本控制与多人协作
这篇是ppt转的html,凑合看看吧(X_X 下次一定认真写
Git与GitHub
@page { }
table { border-collapse:collapse; border-spacing:0; empty-cells:show }
td, th { vertical-align:top; font-size:12pt;}
h1, h2, h3, h4, h5, h6 { clear:both;}
ol, ul { margin:0; padding:0;}
li { list-style: none; margin:0; padding:0;}
/* "li span.odfLiEnd" - IE 7 issue*/
li span. { clear: both; line-height:0; width:0; height:0; margin:0; padding:0; }
span.footno ...
写文档常用语法
Markdown
标题
123456# 一级标题## 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题
字体
123456789*斜体*_斜体_ **粗体**__粗体__ ~~删除线~~_斜体**加粗**斜体_
效果:
斜体
斜体
粗体
粗体
删除线
斜体加粗斜体
列表
无序列表
无序列表使用 -、+ 和 * 作为列表标记:
1234567891011- Red- Green- Blue* Red* Green* Blue+ Red+ Green+ Blue
效果:
Red
Green
Blue
有序列表
1231. first2. second3. third
效果:
first
second
third
引用
123456> 引用一句名言多级引用> 一级引用> > 二级引用> > > 三级引用
效果:
引用一句名言
一级引用
二级引用
三级引用
代码
123行内`代码`块三个`号后紧跟语言名称可以开启多行代码块
效果:
行内代码块
上面那个就是多 ...
洛谷春季多校训练
天坑待填
洛谷自己出的题目质量非常的不错,而且适合我这种菜鸡选手玩耍。希望经过5场团队合作的比赛,算法能力能够有一些提升吧。
Round1
第一次多人比赛,还蛮有意思的。三个人群电话讨论,体验很不错,感觉比自己一个人做题有趣多了。
整个比赛8道题,乱序。
A À la Volonté du Peuple
T122393
这题是我做的,感觉是这场比赛里自己最有贡献的题了。
题目概述
大概就是一个带重边和自环的无向带权图,点n,边m,1号点有火焰,每秒不停的向没有火焰的地方扩散,两个以及两个以上的火焰的前沿在相遇时会产生一次爆炸,统计在火焰烧便每一条边和每一个点之前会发生的爆炸总数。
1≤n≤3e5
1≤m≤1e6
题解
考虑火焰碰撞的地点:
在边上碰撞
在这种情况下,火焰肯定是从两个已经相邻的有火焰的点传入边上的。所以考虑有火焰的点,易得火焰传入的路径是从源点到本点的最短路。
如果这条边不属于从源点到边两边点的任意一条最短路,那么两边的火焰一定会在这里碰撞。显然,不属于最短路的边一定大于两边最短路之差,这就是判断的依据。
如果这条边属于两边点的最短路,那么这条边一定会 ...
C++学习笔记
天坑待填
正在C++ Primer配合CSAPP食用
命名
使用google标准
函数实现
尽量用默认参数列表
开始一定要参数校验
函数返回值返回是否能够信任
static保证变量生命周期
尽量使用局部变量
大量使用对常量的引用来传递参数
尽量返回常量引用实现封闭性
大量使用函数指针实现算法无关
大量使用模板实现类型无关
大量使用stl来解决问题
保证好一点的时间复杂度
可以使用尾置返回类型声明复杂指针
尾部可声明throw性质
使用function object中重载的括弧运算符
容器和函数的adaptor
lambda可以当作bind函数用
bind可以绑定某个函数的某些参数
fuction type
函数表
使用function object中重载的括弧运算符
lambda可以当作bind函数用
bind可以绑定某个函数的某些参数
类设计
可变成员加mutable可无视const
函数加const维持this的常量性质
类内初始值
委托构造函数
声明和定义
friend声明开放private的友元
explicit放在声明前抑制由单参数构造函数确定的隐式转换
stat ...
常用算法套路
常见数据结构与维护策略
栈
$O(n)$表达式求值
双队列
$O(n)$维护一些分裂或者合并具有单调性的更新,如:合并果子、定比例切断、二路归并
单调队列单调栈
$O(n)$离线计算序列中每个位置之前出现的第一个比当前位置值小(单调增栈)或者大(单调减栈)的位置
$O(n)$离线计算带限制的最大子段和
$O(n)$离线计算横坐标单调的情况下的凸包
链表
对于具有可以转化为删除的性质的问题或许有奇效,有序的链表其前驱和后继记录了与当前值最接近的值
优先队列
$O(n\log n)$计算哈夫曼编码
可以用来维护带反悔的贪心,例如两两不相邻的最小k个元素的和
$O(\log n)$动态维护最小值
可并堆
$O(\log n)$合并两个堆
哈希
映射有用的信息,保持一定的可识别性
常用P: 131 13331 13131
常用MOD: 998244353 1e9+7
也可以采用unsigned long long自然溢出,可以双哈希
性质:$H(T)=(H(S+T)-H(S)*P^{length(T)})\mod MOD$
字典树
$O(ns)$计算最大的两两异或
常见贪心策略
区 ...
用Vscode+Cmder写代码
什么样的代码编辑器用起来最舒服呢:question:
当然是按照自己的需要组装起来的编辑器用起来最舒服辣:smile:。因此在这里我介绍Vscode以及我自己使用的Vscode配置和大概的配置步骤。
安装Vscode和Cmder
Visual Studio Code(简称VS Code)是一个由微软开发,同时支持Windows 、 Linux和macOS等操作系统且开放源代码的代码编辑器[4],它支持测试,并内置了Git 版本控制功能,同时也具有开发环境功能,例如代码补全(类似于 IntelliSense)、代码片段和代码重构等。该编辑器支持用户个性化配置,例如改变主题颜色、键盘快捷方式等各种属性和参数,同时还在编辑器中内置了扩展程序管理的功能。
WikipediaVisual Studio Code
Vscode丰富的扩展插件允许我们亲手组装出让自己满意的生产环境,自定义程度非常高,非常好用。除了安装一些必要的代码管理工具,编译、调试、运行扩展外,我还会安利一些我非常喜欢的花里胡哨的功能性扩展。
同时我们在写代码时经常需要使用终端,Vscode中的集成终端甚至也可以自定义 ...
GithubPages+Hexo搭建静态博客
第一篇博客当然是用来记录搭建博客的过程辣:smile:
我们采用GitHub Pages+Hexo+Typora来完成整个博客的搭建、运行和创作
整个过程需要以下一些软件、插件或者网站的支持
GitHub Pages提供静态博客的远程服务器
Node.js提供Hexo运行环境和更多功能的插件扩展
Git提供Hexo提交文件并部署到GitHub Pages功能
Hexo提供博客网页文件的生成和预览
BNXB提供第三方DNS解析服务商接入Cloudflare的CDN接口
Typora提供优秀的markdown写作环境
全程免费稳定,自定义程度极高
最终生成的博客网址是 你的GitHub用户名.github.io
当然也支持绑定自己购买的付费域名
安装Node.js
安装Node.js环境并在Path中添加环境变量
具体教程见链接
安装完毕后在命令行中检查版本,输入
1npm -v
出现版本号证明安装成功
安装Git并配置SSH key
安装Git并在Path中添加环境变量
然后需要配置电脑本机的SSH key到你的GitHub账号
具体教程见链接
安装Hexo
在命令行中 ...