-
人生不会没有意义。
只要干了事情,哪怕是玩游戏,看动画片,翻小人书,都是有价值的人生片段,说不定某天就能用上。
什么都没干才是人生的真正缺失。
-
以后这里不再更新什么游戏工程了。
日期:2009年02月28日 | 分类:桌表面
我还是无法忍受网上网下两个身份的交叠。
在blog处两个身份的重叠总是让我很尴尬。虽然别人应该不会这么觉得。
以后那些丢人现眼的东西不会再在这里出现了。我的脑残,我的竭斯底里,我的愚蠢,都去死吧。
顺便文章隐藏全部取消。
不再隐藏啥身份了。以后这里就是一个真实的废材。
我就是个死宅。我就算再不承认我也是个死宅。社会能力缺失的死宅,不配称为人类的废材。
就算我自己再歧视宅,我自己也就是个死宅。
咋的你也歧视我?随意吧这不是你的问题。
-
一直一来把游走于愤青与汉奸之间的行为当作个性。
把自己当作社会和解的桥梁啥的。
其实结果是两边都不讨好。
人还是单纯点好。
学日语真的可以和抵制日货不相冲突吗?
如果真的可以做到,那么这个人的城府也真是深到一定地步了。
-
今天团委搞培训,于是在同学拜托之下去给小朋友们讲了讲photoshop的基础。
结果自然是理所当然的悲剧了。
终究还是无法顺畅的与人类交流。
人类语真TMD太难了。
要演讲至少也找个人类语的native speaker吧拜托……
在此呼吁一下,人类朋友们请不要介意当面指出我语句中不可理解的地方。像钟同学那样就做得很好。
-
我真TMD不了解自己是啥了。这个博客充斥的NC言论居然也能是我写的。
-
忽然发现百度空间其实也挺好用,于是——
收回前言。我啥都没说。
-
【雷】【Wc3魔兽模型】远坂凛
日期:2008年09月15日 | 分类:桌表面
本来看到网上流传的雷属性模型,自己想做一个好一点的。结果做出一个超·雷属性模型……
啊啊啊啊啊为什么怎么做都没有进步啊……越想改进技术结果水平就越差。终于也到了个人智商的极限了吗。看来3D这种事情还是留给专业人员去做吧……我都佩服我自己敢把一个完成度这么低的东西弄上来……
本来自以为模型建得还可以,一加动作怎么就走样了呢……有谁有能力完善它的话可以拿去(估计没人屑于这么干……)
连摄像机都没加,完成度<20%的模型……但是已经不想再做下去了……
还是改模型这种侵犯知识产权的事情轻松高效……
雷之下载地址
-
Antizephyr Project - 第一规划
日期:2008年09月01日 | 分类:桌表面
项目名称:东风计划 Antizephyr Project
根本目标:
推广我国文化,反击文化入侵,发动对他国的文化侵略。或者至少为以上目标尽一份力。
文化如水,无孔不入。就如渗透作用,不需要刻意的组织,水自然会从丰富的一方渗透至稀薄的一方。那么怎么抵抗呢?依靠外来的重压,不是不可以,但最好的方法,还是增加自己的水浓度。只要这么做,反渗透也不是不可能。
此心思已存多年,但一直没有实质性的行动,甚至一件完整的作品都那不出来。所以,更多的细节多说无益。关键是从现在开始,走出第一步。
所谓中文英化的梦想,也许不能全部由我实现,但是我至少要能和其他有志的人一起,为之作出一点贡献。第一规划: 英雄四连
计划做成一个简单的游戏。工具C++。音乐美工自己完成。
音乐使用Cakewalk,做几首简单的midi即可。
预计游戏的CG都以抽象性的简笔画为主,对美工的需求量不大。所以自己Photoshop即可。
虽然说起来简单,但是都是自己从来没有做过的东西。刚好以此为锻炼。毕竟一直以来,技术都是在实际项目进程中学到的。
以上其实都好说。其实最重要的瓶颈有二,一是游戏的规划,二是编程方面的问题。
编程方面,先对照买来的教材,从简单的五子棋做起。熟悉操作以后,就开始制作游戏,同时看情况再继续做多几个教材上的样例,作为进一步的熟悉。
最为关键的游戏规划:
1、游戏类型:姑且认为是竞速类RAC
1A、目标受众:极小受众。为了保证影响力,基本上只面对本校本学院同学。不期待能够流传开去,尽情EG。
1B、游戏风格:囧式风格。
2、游戏背景:某高校组织军训学生大会于广场之上,不期天雨大作,雷鸣交加。我们作为全校最英雄的四连将士,为了替国家保留精锐,决定先行撤退。不料,由于我连公务缠身,日理万机,之前乃最后一个入场,地利不佳,被各正在整队并且正在为女生连让路的杂牌部队堵住去路。为了以实际行动教育他们临机应变的优秀传统,为了惩戒他们虚伪的封建的骑士作风,也为了替国家保留精锐(?),我们决定忽略他们,自行先行撤退。
最终,在没有人的带领下,我们冲散了阻挡我连前进的落后分子,成功地安全地顺利第一个返回大本营。为了表彰我们自己的英雄行为,让我们三呼“雄霸”以勉之。3、游戏系统
玩家操控我方角色(四连),避开障碍物并吃掉(也就是冲散)敌方队伍向终点前进。
敌方队伍分为男生连及女生连两种。
障碍物分为质点、刚体、胶质、流体。
有道具:连旗,锅巴(回复气力),吉米多维奇数学分析习题集(全6册)。
游戏中各方使用的武器均为板凳。吉米多维奇数学分析习题集(全6册):
这是游戏中主要的增幅道具。捡到以后本队的数学能力上升,从而能够更好地精确计算移动。对玩家的移动力有提升,集齐六册可以发动传说中的隐藏大招。赛道规划:很简单的直道,简直不能叫RAC,就是STG式的直道。虽然有障碍物,赛道边缘也不平齐,但是还是直道。有点像开飞机游戏那种。
质点障碍物:在玩家角色撞上之后障碍物本身会被撞飞出地图,不影响玩家角色的运动,但是HP还是要扣除。如果障碍物路径上有敌队那么敌队也会被撞散,委琐值还是归玩家。
刚体障碍物:在玩家角色撞上之后障碍物本身不动,玩家碰撞方向分速度反向(镜面弹射),HP照扣。
胶质障碍物:可穿过的障碍物。在玩家角色撞上之后障碍物本身不动,会玩家速率减低。不扣HP。
流体障碍物:可穿过的障碍物。在玩家角色撞上之后障碍物本身不动,会造成玩家暂时性的失控(2秒吧),撞上瞬间速率随机增加1~1.5倍,移动方向也会被随机地折射0~30度(毕竟不确定是什么种类的流体)。不扣HP,不过在失控过程中撞上些什么就很难免了。
玩家撞上障碍后扣除的HP,是根据其碰撞方向的分速度根据动量动能关系计算而得的。我方角色属性:
按键盘方向键可使角色移动。前进方向有惯性,平移无惯性(为游戏性考虑)。
猥琐值:相当于得分。撞散敌方队伍能提高委琐值(屏幕上以敌队喊出的猥琐字样的数目来表示)。越高速的撞击能产生更多的委琐值,撞到女生连提高的委琐值更高。
生命值:如其名。无法增加只会不断减少,但依靠下限的降低可以造成补HP的效果。有上限,下限不确定(初始为0,允许负值,通过雄霸撞击可以使生命值下限降低)。如果撞到障碍物会减少HP(同时视乎障碍物性质不同,对我方角色的行动造成影响)。撞开敌方队伍时,根据碰撞位置,损害生命值大小不同。基本是敌方队伍越厚的地方撞上去损害生命值越多。
气力值:有上限100。吃锅巴可回复。使用技能时气力会减少,气力不足时无法发动技能。我方角色的特殊技能:
后脚尖踢前脚跟(固有技能):无损速率,改变速度方向。其弹射面法线方向和主道路切线方向一致。两次发动之间有冷却时间1秒。
英雄战歌(固有技能):齐唱委琐歌曲,暂时提高队伍的机动力,即加速度大小。但是发动期间会遭到屏幕范围内未被撞散的敌队的远程攻击。相对地女生连攻击力更高。
雄霸!:捡到连旗后可以发动。全连齐呼三声雄霸,依靠委琐之力瞬间撞散屏幕上所有敌队和障碍物并收得其委琐值,而自身生命值不损耗。效果消失时显示文字“连旗又不见了”,同时在玩家道具库中减去连旗,重新随机放置在赛道前方某处。若在发动的瞬间同时撞到敌队,将能发动完整的四连口号,从而在达到以上效果的同时降低HP下限(会在屏幕上显示)。降低的数值依照撞击瞬间本队速度而定,速度越高,降低下限越多,且至少能降低相当于初始值的1/2的数值。
>>>>>>
吉米多维奇的复活(隐藏特技):集齐全六册吉米多维奇数学分析习题集后可以发动。以10秒钟之内做完全套吉米多维奇为媒介召唤英雄·吉米多维奇(这10秒内不能有任何碰撞)。技能的魔法效果思考中,也许是打开隐藏关。游戏目标:玩家首先到达终点,并尽可能提高猥琐值。游戏最终会把损耗的HP折算成委琐值,简而言之HP消耗越多越好只要别挂了就行。同时消耗的时间会扣除委琐值。
根据委琐值的大小,玩家能得到不同的评价。越高的委琐值可以得到越猥琐的评价。游戏失败条件:生命值跌破下限即是失败。
游戏过程中可以录像,也就是把玩家键盘的操作完全记录下来的回放。
4、游戏UI
游戏启动界面,有游戏教程,开始游戏,观看录像,委琐英雄榜,推出游戏四个选项。
游戏教程为SRPG式的展示,介绍游戏的玩法。
开始游戏就是开始游戏。
观看录像,进入后跳出录像读取界面,选择要重播的录像后就播放。
萎缩英雄榜,自然是委琐值最高的10猥人名录。
推出就推出了。屏幕整个出现一个被推掉的效果,然后翻滚着掉进背景的垃圾桶……规划仍在进行中。其实已经废坑了。
-
有史以来最快的求0~n阶出栈序列的方法发布
日期:2008年05月23日 | 分类:废纸篓
这个是我学期Project的一部分……
因为出栈序列的特点,算法复杂度最好也就是O(4^n/n)。现在这个算法已经是了。单纯生成n阶序列的方法也许还有更快的,但这个能够同时生成0到n阶的所有可能序列。在这方面估计不会有更快的方法了。
自己感觉参考了动态规划的思想……虽然不知道谈不谈得上。
算法由四个函数组成。 输入字符窜s,运行时调用 OstackSequence(s)即可。
肤浅的是算法空间复杂度也是O(4^n/n)……偶2G内存也只能算到17阶……
//#define PRINTSEQUENCE
//此处控制是否打印求得序列#define PRINTNUM
//此处控制是否打印求得数量/*
动态规划思想求出栈序列
优化了空间使用
2008.05.23
*/void OstackSequence (char * s) //优化算法入口
{
long * catalan; //Catalan数组
char *** arr; //出栈序列表
int len;
int i;
long j,t;
char * a;
// clock_t ct;
len = strlen (s);
// printf("\n申请空间中……");
// timer(0,&ct);
catalan = (long *) malloc ((len+1) * sizeof(long));
for (i=0; i<=len; i++) catalan[i] = catalanNum (i);
arr = (char ***) malloc (len * sizeof(char **));
t = 0;
for (i=1; i<=len; i++) t += ((catalan[i]+1) / 2);
arr[0] = (char **) malloc (t * sizeof(char *));
t = 0;
for (i=1; i<=len; i++) t += i * ((catalan[i]+1) / 2);
arr[0][0] = (char *) malloc (t * sizeof(char));
for (i=1; i<len; i++)
{
arr[i] = arr[i-1] + (catalan[i]+1)/2;
arr[i][0] = arr[i-1][(catalan[i]+1)/2-1] + i;
for (j=1; j<(catalan[i+1]+1)/2; j++) arr[i][j] = arr[i][j-1] + i + 1;
}
a = (char *) malloc((len + 1) * sizeof(char));
// timer(1,&ct);
// printf("\n申请成功开始运算");
//优化
// timer(0,&ct);
OsearchSequence (arr,a,catalan,s);
#ifdef PRINTSEQUENCE
printf("\n");
for (j=0; j<(catalan[len]+1)/2; j++)
{
inverseSequence(arr[len-1][j],a,len);
for(i=0; i<len; i++) printf ("%c",s[arr[len-1][j][i]]);
printf ("\n");
for(i=0; i<len; i++) printf ("%c",s[a[i]]);
printf ("\n");
}
#endif
#ifdef PRINTNUM
printf ("%ld",catalan[len]);
#endif
// printf("\n计算用时:");
// timer(1,&ct);
free (a);
free (arr[0][0]);
free (arr[0]);
free (arr);
free (catalan);
}
void OsearchSequence (char *** arr, char * a, long * catalan, char * s)
{
int len;
int h,i,k;
long j,t;
long m,n;
len = strlen (s);
for (i=0; i<len; i++)
{
if (i == 0)
{
arr[0][0][0] = 0;
continue;
}
j = 0;
t = (catalan[i+1] + 1) / 2;
for (k=0; k<=i && j<t; k++)
{
for (n=0; n<catalan[i-k]; n++)
{
for (m=0; m<catalan[k]; m++)
{
if (j < t) arr[i][j][k] = 0;
else break;
if (k > 0)
{
if (m < (catalan[k]+1) / 2)
{
for (h=0; h<k; h++) arr[i][j][h] = arr[k-1][m][h] + 1;
}
else
{
inverseSequence(arr[k-1][catalan[k]-m-1],a,k);
for (h=0; h<k; h++) arr[i][j][h] = a[h] + 1;
}
}
if (k < i)
{
if (n < (catalan[i-k]+1) / 2)
{
for (h=0; h<i-k; h++) arr[i][j][h+k+1] = arr[i-k-1][n][h] + k + 1;
}
else
{
inverseSequence(arr[i-k-1][catalan[i-k]-n-1],a,i-k);
for (h=0; h<i-k; h++) arr[i][j][h+k+1] = a[h] + k + 1;
}
}
j++;
}
}
}
}
}
void inverseSequence (char * s1, char * s2, int len)//unused
{
int i;
int k = 0;
if (len <= 1)
{
s2[0] = s1[0];
return;
}
while (s1[k] != 0 && k < len) k ++;
s2[len-k-1] = 0;
for (i=0; i<len-k-1; i++) s2[i] = s1[k+i+1] - k;
for (i=len-k; i<len; i++) s2[i] = s1[i+k-len] + (len - 1) - k;
}long catalanNum (int n)
{
int i;
double s = 1;
for (i=0; i<n; i++)
{
s = s * (2 * n - i) / (1 + i);
}
s /= (n + 1);
return (long) s;
}













