第一次工作的小结
原创
©著作权归作者所有:来自51CTO博客作者wwwwcpcp的原创作品,请联系作者获取转载授权,否则将追究法律责任
在写这篇日记的时候我还是一个小菜鸟,关于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之路。。。。。。
下一篇:java模拟spring与aop
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Android初级第一次小结
eclipse所创工程的目录: src 源代码 gen R文件 注册资源ID (不用IO) assets 用来存放不需要编译的资源 (可以存在文件夹) bin
源代码 Android layout 新建文件夹 assets -
前端工作小结13-第一次组件封装
vue
前端 vue.js elementui 方法调用 封装 -
。。。第一次。。。职场 感情 情感 休闲