您的位置:首页 > 运维架构 > 网站架构

final 攻击网站的游戏

2015-07-30 11:07 597 查看
import java.util.*;
public class DotComBust
{
private GameHelper helper=new GameHelper();
private ArrayList<DotCom> dotComList=new ArrayList<DotCom>();
private int numOfGuesses=0;
private void setUpGame()
{
DotCom one=new DotCom();
one.setName("Pets.com");
DotCom two=new DotCom();
two.setName("eToys.com");
DotCom three=new DotCom();
three.setName("Go2.com");
dotComList.add(one);
dotComList.add(two);
dotComList.add(three);
System.out.println("Your goal is to sink three dot coms.");
System.out.println("Pets.com,eToys.com,Go2.com");
System.out.println("Try to sink them all in the fewest number of guesses.");
for(DotCom dotComToSet:dotComList)
{
ArrayList<String> newLocation=helper.placeDotCom(3);
dotComToSet.setLocationCells(newLocation);
}
}
private void startPlaying()
{
while(!dotComList.isEmpty())
{
String userGuess=helper.getUserInput("Enter a guess");
checkUserGuess(userGuess);
}
finshGame();
}
private void checkUserGuess(String userGuess)
{
numOfGuesses++;
String result="miss";
for(DotCom dotComToTest:dotComList)
{
dotComToTest.checkYourself(userGuess);
if(result.equals("hit"))
break;
if(result.equals("kill"))
{
dotComList.remove(dotComToTest);
break;
}
}
System.out.println(result);
}
private void finshGame()
{
System.out.println("All Dot Coms are dead!Your stock is now worthless.");
if(numOfGuesses<=18)
{
System.out.println("It only took you "+numOfGuesses+" guesses.");
System.out.println("You got out before your options sank.");
}else
{
System.out.println("Took you long enough. "+numOfGuesses+" guesses.");
System.out.println("Fish are dancing with your options");
}
}
public static void main(String [] args)
{
DotComBust game=new DotComBust();
game.setUpGame();
game.startPlaying();
}
}


import java.util.*;
public class DotCom
{
private ArrayList<String> locationCells;
private String name;
public void setLocationCells(ArrayList<String> loc)
{
locationCells=loc;
}
public void setName(String n)
{
name=n;
}
public String checkYourself(String userInput)
{
String result="miss";
int index=locationCells.indexOf(userInput);
if(index>=0)
{
locationCells.remove(index);
if(locationCells.isEmpty())
{
result="kill";
System.out.println("Ouch!You sunk "+name+" :(");
}
else
result="hit";
}
return result;
}
}


import java.io.*;
import java.util.*;
public class GameHelper
{
private static final String alphabet="abcdefg";
private int gridLength=7;
private int gridSize=49;
private int [] grid=new int[gridSize];
private int comCount=0;
public String getUserInput(String prompt)
{
String inputLine=null;
System.out.print(prompt+" ");
try
{
BufferedReader is=new BufferedReader(new InputStreamReader(System.in));
inputLine=is.readLine();
if(inputLine.length()==0)
{
return null;
}
}catch(IOException e)
{
System.out.println("IOException: "+e);
}
return inputLine.toLowerCase();
}

public ArrayList<String> placeDotCom(int comSize)
{
ArrayList<String> alphaCells=new ArrayList<String>();
String [] alphacoords=new String [comSize];//保存字符串
String temp=null;//临时字符串
int [] coords=new int[comSize];//现有字符串
int attemps=0;//目前测试的字符串
boolean success=false;//找到合适的位置吗?
int location=0;//目前起始位置
comCount++;//现在处理第几个com
int incr=1;//水平增量
if((comCount%2)==1)
{
incr=gridLength;//垂直增量
}
while(!success&attemps++<200)//主要搜索循环
{
location=(int)(Math.random()*gridSize);//随机起点
int x=0;//第n个位置
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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: