一个长度为100的地图,要求每20格随机出现6个功能格。
程序如下:
public class Map {
String [] str1 = new String[20];
String [] str2 = new String[20];
String [] str3 = new String[20];
String [] str4 = new String[20];
String [] str5 = new String[20];
String [] map = new String[100];
static String [] map1 = new String[100];
public String[] small(String[] str){
String[] demo = {"__","**","||","^^","@@","=="};
for(int i = 0;i<str.length;i++){
str[i] = demo[i<str.length?i:0];
}
Random r = new Random(System.nanoTime());
for(int i = 0; i<str.length;i++){
int j = r.nextInt(str.length-i)+i;
if(!str[i].equals(str[j])){
String temp = str[j];
str[j] = str[i];
str[i] = temp;
}
}
return str;
}
public String[] getMap(){
Map ma = new Map();
str1 = ma.small(str1);
str2 =ma.small(str2);
str3 =ma.small(str3);
str4 =ma. small(str4);
str5 =ma. small(str5);
Arrays.fill(map, '_');
System.arraycopy(str1, 0, map, 0, 20);
System.arraycopy(str2, 0, map, 20, 20);
System.arraycopy(str3, 0, map, 40, 20);
System.arraycopy(str4, 0, map, 60, 20);
System.arraycopy(str5, 0, map, 80, 20);
for(String i:map){
System.out.println(i);
}
return map;
}
public void showMap(String[] m){
for( int i=0;i<100;i++){
map1[i] = map[i];
}
for(String i:map1){
System.out.print(i + ",");
}
}
public static void main(String[] args) {
Map a = new Map();
a.getMap();
}
}
打印不出地图。如何才能打印出来
你这个程序有几个错误:
1,getMap()方法里 Arrays.fill(map, '_');改为Arrays.fill(map, '“_”);
2,small()方法里的str[i] = demo[i<str.length?i:0]; 也不对,改为str[i] = demo[i<6?i:0]
3,你自己都没有调用showMap,怎么显示地图?
4,showMap还有一个没用的传入参数m[];
5,开始定义的static String [] map1 = new String[100]; 可以不用是静态变量,其中small方法可以是静态方法。这一点不修改代码也可以正常运行,只是我的建议