java中如何产生n张相同的图片,并随机分布,求代码!!!! 求java程序代码:循环N次,随机生成M以内的整数,存放到集...

作者&投稿:须胥 (若有异议请与网页底部的电邮联系)
你这是问JAVA游戏连连看或者对对碰的算法吧?

这里有两个地方需要用到随机算法,一个是图片的随机,一个是位置的随机。

图片的随机比较容易,假如你一共只有20种图片,那你就用20做随机种子,生产随机整数,产出的随机数将大于等于0 并且小于20。 知道随机数字后就知道这次要生产哪一种图片。

图片位置的随机比图片种类的随机麻烦一点点,要看你具体的需求。
比如说你要做连连看游戏:
游戏中的位置或者叫地图是以 N*M个方格格子组成的。 比如10*10 共100个格子。
用最笨的方法生成是:
1。 定义一个类(数据结构),它表明一个格子的意思,有X,Y,ImageType分别代表,这个格子所处位置的行,列,和代表是哪一种图片
1。 两层循环生成所有的格子对象实例,用一个ArrayList或Vector保存起来。即:
for(int row=0;row<9;row++){
for(int col = 0; col <9;col ++){
Position p = new Position();
p.x = row;
p.y = col;
p.imageType = 你前面生成的随机图片种类0〜20之间的整数
positionList.add(p);
}
}

2。 现在你有了一个100长度的动态数组。假如你要随机产生1张图放在四个随机位置,这4个位置是随机的。
那么你只需循环4次。每次在循环体内从当前动态数组内随机找到一个元素取出来Positon实例,得到它的X,Y就完成任务了。
循环体有几个要点,每次随机种子设为产生 0〜当前实例数组长度 之间的数字,比如第一次时,我们产生 0〜99之间的数字,假如得到是10,那么就把positionList的10号元素取出并删除,这时候positionList的长度只有99了,下次就只能以99为随机数生成数字0〜98之间了。;
for(int i=0;i <4; i++){
int length = positionList.size();
int randomInt = XXX//生成0〜length之间的数字。
Position p = positionList.get(randomInt);
int row = p.x;
int col = p.y;
int imageIndex = p.imageType;
//这里用代码来完成你的逻辑,比如在第row行,第col列画上你的第imageIndex种图片
//TODO

positionList.remove(p);//要删除掉己选中的,免得下次相同的位置被复杂选种
}

这是我自己写的一个产生随机数的方法

public int[] randomP(int a,int b) {//a,b表示这个随机数的范围
int x5;
int[] x=new int[b-a+1];
int[] x1=new int[b-a+1];
Random x4=new Random();
for (int x2 =a ; x2 <b+1; x2++) {
x[x2]=x2;

}
for (int x3 = 0; x3 <b-a+1; x3++) {
x5=x4.nextInt(b-a+1-x3);
x1[x3]=x[x5];
x[x5]=x[x.length-x3-1];

}
return x1;

}

Math.random()方法是一个不错的选择!

求java代码,生成图表生成随机图,具有n个顶点的非负加权完全图。~


public static void main(String[] args) {

HashMap map = new HashMap();

for(int i = 0;i<50;i++){
Random rd = new Random();
int temp = rd.nextInt(50);
map.get(temp);
if(map.get(temp)!=null){
int count = map.get(temp)+1;
map.put(temp, count);
}else{
map.put(temp, 1);
}
}

Iterator keySetIterator = map.keySet().iterator();
while (keySetIterator.hasNext()) {
int key = keySetIterator.next();
int count = map.get(key);
System.out.println("数字"+key+"次数:"+count);
}

}

copy代码直接用就ok

c语言输出n个成绩中小于平均值并且最接近平均值的数.
答:include <iostream> include <cstdlib> using namespace std;int cmp(const void *a,const void *b)//快速排序的比较函数 { return *(int *)a - *(int *)b;} int main(){ int n,a[25],i,ans=-1;//ans是保存最终的答案 float count=0,ava;//ava是平均值 cin>>n;for(i=0; i...

恐龙的资料
答:恐龙化石被发现近年了,一个个新的种类被不断地发现,一批批科学家对它们的研究乐此不彼,一代代少年儿童和他们的家长们对这些神秘的远古生物产生着强烈的兴趣。这是为什么呢? 现在我们还知道,恐龙根本就不是蜥蜴。它们虽然都属于爬行动物,但是在门类繁杂的爬行动物大家族中,恐龙与蜥蜴的亲缘关系相差得还相当远呢!

电脑游戏中怎么截图
答:问题三:电脑在玩游戏的时候怎样截图 先把你的qq登进去,然后一起按住键盘上的crl+alt+a(在键盘的左下角)就可以了 问题四:PC游戏里怎么截图 键盘F12右边有一个printscreen键,任何时候都可以截屏,自动复制到剪切板,可以打开画图等软件直接ctrl+v粘贴,但只能保存一张 问题五:游戏里怎么截图(...

...回答下列问题:IAⅡAⅢAⅣAVAⅥAⅦA01①2③④3②⑤
答:由元素在周期表中位置,可知①为H、②为Na、③为C、④为N、⑤为Cl、⑥为Ar、⑦为K.(1)同周期自左而右元素金属性减弱、同主族上而下金属性增强,上述元素中K的金属性最强,Al与氢氧化钾溶液反应生成偏铝酸钾与氢气,反应方程式为:2Al+2KOH+2H2O=2KAlO2+3H2↑,故答案为:K;2Al+2KOH...

战地之王生化模式简介!
答:紧张刺激的攻防战 变异进行时,生化地图全线揭秘 相比较于AVA传统版本,此次“变异之灾”在地图配置方面有了较大的革新。“变异场”以及“失落的圣殿”两张新地图一改FPS中规中矩的地图设计模式,对整体风格,战局点,障碍物等方面进行了“一体化”构筑。冷色调的氛围渲染配合生化角色狰狞的形象界定,...

AVA为什么进入频道失败 附图片!!!求解答
答:结果,因为你的延迟,网络不稳定,进入通道将被挤压在后面的其他球员,只要你重新启动游戏就OK了,不是一个大问题 速度还是不错的,所有这是一回事儿,在TX服务器上出了问题,你的速度不管怎么没用,我的房子是10M宽带一旦出现,系统不可避免的漏洞,进入其他人的领域,仍然有听的,我们可以只告诉你您...

C语言编程题,输入N 个正整数(10 < Ν≤20 )存入数组 a 中,输出 a 中...
答:include "stdafx.h"include <iostream> using namespace std;int main(){ int N=1;int num[20] = { 0 };int max, min, sum=0;float ava=0;while (!(N > 10 && N <= 20)){ cout << "请输入N的值:" << endl;cin >> N;} cout << "请输入N个正整数,回车键结束!" <...

ava里哪把狙能一枪打死人??
答:AVA点的推荐FR-F2,游戏币的推荐DSR_1,狙击枪打人一般都能一枪打死,威力最大的是TGP了,不过太笨重了,SV98感觉准确度不怎么好,可能是我没改,AWM我觉得它也重,打枪跟打炮似的,咚一下咚一下的,不过威力还不错。还有不常见到的枪英雄狙击和kar98(毛瑟98),我自己比较喜欢英雄狙击,威力大,...

ava里改地图如何改成沙漠风暴和生化实验室?文件夹里怎么找不到这两个...
答:设密码,进去按C4即可 重点!!怎么做到13S一局呢!!!其实就是开加速了,非会员也不会被T的就和刷峡谷是一样的!呵呵就这些了猪大家早日刷到永久武器!对了开加速下包一定要快,再时间结束前引爆C4不然就悲剧了,会提示你任务失败,不过熟能生巧,永久武器不是梦 改别的图诸如此类啊 ...

AVA好玩么?
答:自己玩了几天。还可以,不需要太高的电脑配置,画面不太好,相比CF很好。但是AVA有了战车模式,这是个亮点哦