读书人

大家帮忙解释上这段程序!

发布时间: 2013-01-20 10:22:41 作者: rapoo

大家帮忙解释下这段程序!!

import java.io.*;
import java.util.*;
public class GameHelper {

private static final String alphabet="abcdefg";
private int gridLength=7;
private int gridSize=49; //49的网格 7*7
private int[] grid=new int[gridSize]; //定义一个49个元素的数组
private int comCount=0;





public String getUserInput(String prompt){
//输入函数,返回,带提示功能,返回用户在键盘上输入
String inputLine=null; //保存返回值
System.out.print(prompt+" "); //通过prompt参数,提示信息

try{
BufferedReader is=new BufferedReader(new InputStreamReader(System.in));
//标准输入
inputLine=is.readLine();
//将参数传递给inputline变量

if(inputLine.length()==0){
return null; //输入数据的长度为0,则返回空值
}

}
catch(IOException e){
System.out.println("IOException: "+e); //错误处理
}

return inputLine.toLowerCase(); //转换为小写,并返回
}

public ArrayList<String> placeDotCom(int comSize){
//函数返回值为字符串的数组,参数为Int数据表示大小
ArrayList<String> alphaCells=new ArrayList<String>(); //定义一个空的数组
String[] alphacoords =new String[comSize]; //字母的坐标
String temp=null; //空字符串
int[] coords=new int[comSize]; //定义Int坐标
int attempts=0; //定义一个数字
boolean success=false; //判断
int location=0; //

comCount++; //计数器
int incr=1; //增长值为 1
if(1==(comCount%2)){
incr=gridLength; //如果comCount为奇数,则incr为gridLength???
}

while(!success&attempts++<200){
location=(int)(Math.random()*gridSize);

int x=0;
success=true;

while(success&&x<comSize){
if(grid[location]==0){
coords[x++]=location;
location+=incr;

if(location>=gridSize){
success=false;
}

if(x>0&&(location%gridLength==0)){
success=false;
}
}else{
success=false;
}

}
}

int x=0;
int row=0;
int column=0;

while(x<comSize){
grid[coords[x]]=1;
row=(int)(coords[x]/gridLength);
column=coords[x]%gridLength;

temp=String.valueOf(alphabet.charAt(column));

alphaCells.add(temp.concat(Integer.toString(row)));
x++;
}
return alphaCells;
}
}

------解决方案--------------------


关键是你是什么地方不懂

读书人网 >J2SE开发

热点推荐