xmake-idea 插件深度集成了xmake和Intellij-IDEA,提供方便快速的跨平台c/c++构建。
并且它也支持其他基于Intellij的IDE环境, 例如:Clion, Android Studio等等。
注:使用此插件,需要先安装xmake,更多关于xmake的使用说明,请阅读:文档手册,项目源码:Github。
特性
快速开始
创建空工程向导
全局工程配置
运行环境配置
菜单栏工具
快捷的编译工具窗口
构建和运行
错误解析和跳转
快速开始
错误解析和跳转
继续阅读 »
游戏里有很多事件, 可能会随玩家, 或场景内某个物品或某个生物体的状态, 来触发这些事件。比如那种跟随主人走动的宠物,可以认为随主人的状态变更为STATE_MOVE来触发宠物的某个事件, 比如跟随主人,宠物类和宠物的AI类, 以及人物类, 均是独立的, 我们需要一个观察器来连接他们之间的关联:
继续阅读 »
首先安装fcitx输入法。
sudo apt-get install fcitx fcitx-config-gtk fcitx-sunpinyin fcitx-googlepinyin fcitx-module-cloudpinyin
sudo apt-get install fcitx-table-all
sudo apt-get install im-switch
im-switch -s fcitx -z default
可以选择安装搜狗拼音输入法。下载地址
安装C/C++的编译环境和gtk libgtk2.0-dev
sudo apt-get install build-essential libgtk2.0
继续阅读 »
为二维数组动态分配内存涉及以下两个问题:
数组元素是否需要连续
数组是否规则
在这里我们暂时不考虑数组是否规则,我们从数组元素的分配是否连续考虑。
已知第二维
c
// 数组指针
char (*a1)[COLUMNS];
a1 = (char(*)[COLUMNS])calloc(ROWS,sizeof(char*));
more
已知第一维
c
// 指针数组
char *a2[ROWS];
for(int i = 0; i < ROWS; i++) {
a2[i] = (char*)calloc(COLUMNS, sizeof(char));
}
已知第一维,一次分
继续阅读 »
A simplest xmake.lua
```lua
-- define a target with named 'demo'
target("demo")
-- set the target kind, .e.g 'binary' is a console program
-- - static: a static library
-- - shared: a shared library
set_kind("binary")
-- add all c source files in the directory: src
add_files("src/*.c"
继续阅读 »
比大小
解题思路:解此题需要使用到康托展开,康托展开的公式如下
$$X=a_n*(n-1)!+a_{n-1}*(n-2)!+\cdot\cdot\cdot+a_i*(i-1)!+\cdot\cdot\cdot+a_2*(2-1)!+a_1*(1-1)!$$
公式看不懂没关系,下面以一个例子来讲解公式的使用!
例如:有一个数组S=["a","b","c","d"],它的其中之一个排列是S1=["b","c","d","a"],现在欲把S1映射成X,需要怎么做呢?按如下步骤走起
$$X=a_4*3!+a_3*2!+a_2*1!+a_1*0!$$
首先计算n,n等于数组S的长度,n=4
再来计算a4="b"这个元素在数组[
继续阅读 »
这几个实验都是上课时候一两小时实现的,因为老师给出的参考代码有些惨不忍睹(虽然我写的也没好到哪去).因为时间有限,就没用C++.
同样是因为时间有限,仅供参考,有bug概不负责.
代码如下
# -- coding: utf-8 --
class Bank(object):
def init(self):
self.totalpro = 0
self.process = []
self.res_num = 4
self.res_type = ['A', 'B', 'C', 'D']
self.Resources = {'A':10,
继续阅读 »
Introduction
在[PHP设计模式(四):继承][2]中我们介绍了继承,利用extends来进行程序设计的方法。
在[PHP设计模式(二):抽象类和接口][3]中我们介绍了接口,事实上也存在利用interface的程序设计方法,那就是多态。
和C/C++,Java,Python等语言一样,PHP也支持多态。多态更多是是一种面向对象程序设计的概念,让同一类对象执行同一个接口,但却实现不同的逻辑功能
。
多态/Polymorphism
还是用动物、鲸鱼和鲤鱼来举例:
interface IEat {
function eatFish();
function eatMoss();
}
class Wha
继续阅读 »
之前的版本对编译控制粒度,只能到target这一级:
```lua
-- 全局根配置,所有target都会被影响
add_defines("ROOT")
target("test")
-- target目标配置,只对test目标下的所有源文件编译生效
add_defines("TEST")
add_files("src/*.c")
```
最近给2.1.6开发版本中的add_files进行了改进,支持基于files更细粒度的编译选项控制,例如:
lua
target("test")
add_defines("TEST1")
add_files("src/*.c")
add_files("test/*
继续阅读 »
tbox的vector容器沿用了stl库中vector的命名,说白了就是以数组方式存储元素,也是整个容器库中最基础的容器之一。
当然,在c中用tbox的vector跟用stl的vector其实差不了太多,用起来都很方便。
先看个简单的例子熟悉下:
```c
// 初始化一个维护大小写敏感字符串的vector容器,第一参数设置元素自动增长大小,这里使用0表示默认大小
tb_vector_ref_t vector = tb_vector_init(0, tb_element_str(tb_true));
if (vector)
{
// 在头部插入元素
tb_vect
继续阅读 »