您的位置:首页 > 其它

第一次工作的小结

2012-12-13 23:16 162 查看
在写这篇日记的时候我还是一个小菜鸟,关于java的小菜鸟。自己连ssh都没怎么学,只是看了点皮毛而已。但是工作是残酷的。
前段时间接到主程的一个任务,做的是一个游戏程序的开发,主要是有关装备这一块的。看了策划结的文档之后,准备下手。主要情况是这样的,大家玩过杀怪的游戏都知道,装备有的是要鉴定的,鉴定的时候要给予一定的属性,先是属性的条数。一次鉴定,给多少条属性,随机性的。还需要给什么属性,比如伤害、MP、HP什么的,下面就分析一下思路。
给多少条属性,这个好解决,比如1条属性的机率是40%,2条属性的机率是25%,可以用Random随机产生一个100以内数,然后看看这个数在1到40之间就给1条属性,在41到65之间就给2条属性。
然后是要给什么属性,这个比较麻烦一点,因为鉴定的属性是不能重复的,于是有了一个方案,比如产生十个数,放进数组里面,当然,每加进一条都要与之前加入的做个比较,看看有没有重复的,如果有,则不用,重新random一个数。看到这个逻辑,真得有点头疼
int[] arr = new int[10];
for(int i=0;i<10;i++){
Random random=new Random;
int a = random.nextInt(10);
arr[i]=a;
}
写到这里似乎有点卡壳了,接着就蛋疼了,如果在里面加一个循环的话……
int[] arr = new int[10];
for(int i=0;i<10;i++){
Random random=new Random;
int a = random.nextInt(10);
for(int j=0;j<i;i++){
if(a==arr[j]) break;
}
arr[i]=a;
}
后来发现这样的代码几乎就是狗屎,没办法,谁叫我以前不努力呢,当然,对于这样的问题也不能抛给别人,只好去外面抽支烟,缓一缓。就是这一步,我折腾了好久的。
后来偶尔想到了一点什么,比如高中的时候,大家应该有听老师说过,集合有个特性就是互异性(当然还有无序性), 这下来劲了。
建立一个集合,然后把这些数装入集合里面,如果集合的大小(size())小于给定值,比如4的话,则继续random这样问题就解决了。看来有问题不可怕,关键还是要动脑子。一个小菜鸟的java之路。。。。。。本文出自 “明镜高悬” 博客,请务必保留此出处http://chpn208.blog.51cto.com/3115852/1088747
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: