1. A battleship-style game
1)To figure out the general flow of the game:
a. create three dot coms
b. places onto a virtual grid
2)Game play begins:
a. prompt user for a guess
b. hit, miss, or kill
3)Game finishes
2. Developing a Class
a. Figure out what the class is supposed to do
b. List the instance variables and methods
c. Write precode for the methods.----------------instance variable declarations, method declarations, method logic.
d. Write test code for the methods.
e. Implement the class.
f. Test the methods.
g. Debug and reimplement as needed.
3.Simple DotCom game
1) Game starts, create one dotcom and gives it a location on three cells in the single row of seven cells.
2) Game play begins, Guess to see if hit, miss or kill.
3) Game finishes.
4. Precode:
Declare an int array to hold the location cells. call it locationcells
declare an int to hold the number of hits.
declare a checkyourself() method to take a String for the user's guess, check it
declare a setlocationcells() setter method that takes an int array locations as ints.
5. Testcode for the simpledotcom class
fake a user who guesses "2" to see the result:
public class SimpleDotComTestDrive {
public static void main(String[] args){
SimpleDotCom dot = new SimpleDotCom(); //instantiate a SimpleDotCom object
int[] locations = {2,3,4};
dot.setLocationCells(locations);
String userGuess = "2";
String result = dot.checkYourself(userGuess);
String testResult = "failed";
if (result.equals("hit")){
testResult = "passed" ;
}
System.out.println(testResult);
}
}
6.RealCode
public class SimpleDotCom {
int [] locationCells;
int numofHits = 0;
public void setLocationCells (int[] locs){
locationCells = locs;
}
public String checkYourself (String stringGuess){
int guess = Integer.parseInt(stringGuess);
String result = "miss";
for (int cell:locationCells){
if (guess == cell){
result = "hit";
numofHits++;
break;
}
}
if (numofHits == locationCells.length){
result = "kill";
}
System.out.println(result);
return result;
}
}
6. Prep Code for the Simple DotComGame class
declare an int variable to hold the number of user guesses, named numofGuesses, set it to 0.
Make a new SimpleDotCom intance
Compute a random number between 0 and 4 that will be the starting location cell position
MAKE an int array with 3 ints using the randomly-generated number, that number incremented by 1, and that number incremented by 2 (example: 3,4,5)
INVOKE the setLocationCells() method on the SimpleDotCom instance
DECLARE a boolean variable representing the state of the game, named isAlive. SET it to true
While isAlive==true, check
the realcode:
public class SimpleDotComGame {
public static void main(String[] args)
{
int numofGuesses = 0;
GameHelper helper = new GameHelper ();//???
SimpleDotCom theDotCom = new SimpleDotCom();
int randomNum = (int) (Math.random() * 5);
int[] locations = {randomNum, randomNum+1, randomNum+2};
theDotCom.setLocationCells(locations);
boolean isAlive = true;
while (isAlive == true)
{
String guess = helper.getUserInput("enter a number");
String result = theDotCom.checkYourself(guess);
numofGuesses++;
if(result.equals("kill"))
{
isAlive = false;
System.out.println("You took " + numofGuesses + " guesses");
}
}
}
}
GameHelper class is a special class that has the method for getting user input for now. available on wickedlysmart.com