— Scott McNealy, Sun Microsystems Chairman, President and ceo


B DotComBust class (the game) § Create three DotComs instead of one



Download 40,57 Mb.
Pdf ko'rish
bet142/555
Sana26.05.2022
Hajmi40,57 Mb.
#609235
1   ...   138   139   140   141   142   143   144   145   ...   555
Bog'liq
Head First Java (Kathy Sierra, Bert Bates) (z-lib.org)

B
DotComBust class (the game)
§
Create three DotComs instead of one.
§
Give each of the three DotComs a name.
Call a setter method on each DotCom 
instance, so that the DotCom can assign the 
name to its name instance variable.
Plus 4 
ArrayLists: 1 for 
the DotComBust 
and 1 for each 
of the 3 DotCom 
objects.


142
 
chapter 6
Who does what in the DotComBust game 
(and when)
1
detailed structure of the 
game 
DotComBust
The game 
class. 
DotComBust 
object
instantiates
The main() method 
in the DotComBust 
class instantiates the 
DotComBust object that 
does all the game stuff.
2
instantiates
The DotComBust (game) 
object instantiates an 
instance of GameHelper, 
the object that will help 
the game do its work.
helper
DotComBust 
object
GameHelper 
object
3
ArrayList object (to 
hold DotCom objects)
The DotComBust object 
instantiates an ArrayList 
that will hold the 3 DotCom 
objects.
helper dotComsList
DotComBust 
object
GameHelper 
object


get to know the 
Java API 
you are here
4
143
4
ArrayList object to 
hold DotCom objects
The DotComBust object 
creates three DotCom 
objects (and puts them in 
the ArrayList)
helper dotComsList
DotComBust 
object
GameHelper 
object
dotCom
0
dotCom
1
dotCom
2
cells
cells
cells
DotCom 
objects
5
ArrayList object to 
hold DotCom objects
The DotComBust object asks the 
helper object for a location for a 
DotCom (does this 3 times, one for 
each DotCom)
helper dotComsList
DotComBust 
object
GameHelper 
object
ma
k

lo
cation
dotCom
0
dotCom
1
dotCom
2
cells
cells
cells
DotCom 
objects
here it
is
The DotComBust object gives each of the Dot-
Com objects a location (which the DotComBust 
got from the helper object) like “A2”, “B2”, 
etc. Each DotCom object puts his own three 
location cells in an ArrayList
ArrayList object 
(to hold DotCom 
cell locations)
cell
0
cell
1
cell
2
ArrayList 
object 
ArrayList 
object 
cell
0
cell
1
cell
2
cell
0
cell
1
cell
2
6
ArrayList object to 
hold DotCom objects
The DotComBust object asks the helper 
object for a user guess (the helper 
prompts the user and gets input from 
the command-line)
helper dotComsList
DotComBust 
object
GameHelper 
object
get
user gu
ess
dotCom
0
dotCom
1
dotCom
2
cells
cells
cells
DotCom 
objects
ch
e
ck 
this
guess
here it
is
ArrayList object 
(to hold DotCom 
cell locations)
cell
0
cell
1
cell
2
ArrayList 
object 
ArrayList 
object 
cell
0
cell
1
cell
2
cell
0
cell
1
cell
2
“hit”
The DotComBust object loops through the list 
of DotComs, and asks each one to check the user 
guess for a match. The DotCom checks its locations 
ArrayList and returns a result (“hit”, “miss”, etc.)
And so the game continues... get-
ting user input, asking each DotCom 
to check for a match, and continuing 
until all DotComs are dead


144
 
chapter 6
GameHelper helper
ArrayList dotComsList
int numOfGuesses
setUpGame()
startPlaying()
checkUserGuess()
finishGame()
 prep code test code
real code
 prep code
DECLARE 
and instantiate the 
GameHelper
 
instance variable, named 
helper.
DECLARE 
and instantiate an 
ArrayList 
to hold the list of DotComs (initially three) Call it 
dotComsList
.
DECLARE 
an int variable to hold the number of user guesses (so that we can give the user a 
score at the end of the game). Name it 
numOfGuesses 
and set it to 0.
DECLARE 

setUpGame() 
method to create and initialize the DotCom objects with names 
and locations. Display brief instructions to the user.
DECLARE 

startPlaying()
method that asks the player for guesses and calls the 
checkUserGuess() method until all the DotCom objects are removed from play.
DECLARE 

checkUserGuess()
method that loops through all remaining DotCom objects and 
calls each DotCom object’s checkYourself() method.
DECLARE 

fi nishGame()
method that prints a message about the user’s performance, based 
on how many guesses it took to sink all of the DotCom objects.
METHOD
:
void setUpGame()
 
// make three DotCom objects and name them
CREATE 
three DotCom objects.
SET 
a name for each DotCom.
ADD 
the DotComs to the 
dotComsList 
( the ArrayList).
REPEAT 
with each of the DotCom objects in the 
dotComsList 
array 
CALL 
the 
placeDotCom()
method on the helper object, to get a randomly-selected
location for this DotCom (three cells, vertically or horizontally aligned, on a 7 X 7 grid).
SET 
the location for each DotCom based on the result of the 
placeDotCom()
call.
END REPEAT
END METHOD
DotComBust
The DotComBust class has three main jobs: set up the game, play the game 
until the DotComs are dead, and end the game. Although we could map 
those three jobs directly into three methods, we split the middle job (play the 
game) into 
two methods, to keep the granularity smaller. Smaller methods 
(meaning smaller chunks of functionality) help us test, debug, and modify 
the code more easily.
Prep code for the real DotComBust class
Variable
Declarations
Method
Declarations
Method
Implementations
the 
DotComBust 
class (the game)


get to know the 
Java API 
you are here
4
145
METHOD
:
void checkUserGuess(String userGuess)
 
// fi nd out if there’s a hit (and kill) on any DotCom

Download 40,57 Mb.

Do'stlaringiz bilan baham:
1   ...   138   139   140   141   142   143   144   145   ...   555




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish