终于看了两天才摸 熟悉,还是有点笨啊。。。
GameHelper.java
import java.io.*; import java.util.*; public class GameHelper { int comCount = 0; public String getUserInput(String prompt) { String inputLine = null; System.out.println(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) { final String alphabet = "abcdefg"; int gridLength = 7; int gridSize = 49; int [] grid = new int[gridSize]; ArrayList<String> alphaCells = new ArrayList<String>(); String temp = null; int [] coords = new int[comSize]; int attempts = 0; boolean success = false; int location = 0; int incr; if (((int) (Math.random() * 2) % 2) == 1) { incr = gridLength; } else { incr = 1; } //System.out.println("incr is: " + incr); while ( !success & attempts++ < 200) { location = (int) (Math.random() * gridSize); //System.out.println("location: " +location); int x = 0; success = true; while (success && x < comSize) { if (grid[location] == 0) { coords[x++] = location; location += incr; //System.out.println("location: " +location); if (location >= gridSize) { success = false; } if (x > 0 && (location % gridLength == 0)) { success = false; } } else { success = false; } //System.out.println("sucess status is :" + success); //System.out.println("x value is :" + x); } } //System.out.print("coords array is :"); //for (int item : coords) { // System.out.print(item + " "); //} //System.out.println(""); int x = 0; int row = 0; int column = 0; while (x < comSize) { grid[coords[x]] = 1; row = (int) (coords[x] / gridLength); //System.out.println("row value is :" + row); column = (int) (coords[x] % gridLength); temp = String.valueOf(alphabet.charAt(column)); //System.out.println("temp value is :" + temp); alphaCells.add(temp.concat(Integer.toString(row))); x++; } //for (String item : alphaCells) { // System.out.print(item + " "); //} return alphaCells; } }
DotCom.java
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 getName() { return name; } 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; } }
DotComBurst.java
import java.util.*; public class DotComBust { private GameHelper helper = new GameHelper(); private ArrayList<DotCom> dotComsList = 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"); dotComsList.add(one); dotComsList.add(two); dotComsList.add(three); System.out.println("Your goal is to sink three doc coms."); System.out.println("Pets.com, eToys.com, Go2.com"); System.out.println("Try to sink them all in the fewsest number of guesses."); for(DotCom dotComToSet : dotComsList) { ArrayList<String> newLocation = helper.placeDotCom(3); dotComToSet.setLocationCells(newLocation); for (String item : newLocation) { System.out.print( item +" "); } System.out.println(dotComToSet.getName()); System.out.println(); } } private void startPlaying() { while (!dotComsList.isEmpty()) { String userGuess = helper.getUserInput("Enter a guess"); checkUserGuess(userGuess); } finishGame(); } private void checkUserGuess(String userGuess) { numOfGuesses++; String result = "miss"; for (DotCom dotComToTest : dotComsList) { result = dotComToTest.checkYourself(userGuess); if (result.equals("hit")) { break; } if (result.equals("kill")) { dotComsList.remove(dotComToTest); break; } } System.out.println(result); } private void finishGame(){ System.out.println("All Dot Coms are dead! Your stock is now worthless."); if (numOfGuesses < 18) { System.out.println("It‘s 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 you options.."); } } public static void main (String[] args) { DotComBust game = new DotComBust(); game.setUpGame(); game.startPlaying(); System.out.println("Finish"); } }
时间: 2024-12-28 01:02:33