Sie sind auf Seite 1von 13

CSCI 1480

University of Central Arkansas


Bonus Lab (Optional)
opi!" Files - Worth 1#A$$itional (Bonus) Points applied to the lab portion of your grade
(35%). %is assi&n'ent is !o'pletely optional ( it )ill not !ount a&ainst
you if you $o not sub'it it* You can receive up to 5 additional points if you
successfully co!plete it.

%e Bonus Lab 'ust bot% !o'pile an$ run )it%out any un%an$le$
e+!eptions in or$er to re!eive any Bonus ,oints*
-ea$in&" "h. #
*Note: Include the following set of comments at the top of your source code for
all assignments.
//Your Name
//Assignment # (Eample: !onus Assignment"
//!rief description of the purpose of the program (Eample: //#alculates the
area of a s$uare."
Overvie)
$he %onus assign!ent i!ple!ents a ga!e na!ed The Falling Banana Game. $he user is
re&uired to guess letters for a rando!ly selected 'ord si!ilar to the Wheel of Fortune
television ga!e sho'. $he ga!e utili(es data that is stored in a file na!ed words1.txt.
$his file is the sa!e as used in la%)in and consists of *+ uni&ue 'ords placed on each
line as sho'n %elo',
a%ility
account
accu!ulated
accu!ulating
accuracy
--..
'indo's
'ithin
'oll%orn
'or.shop
'or.shops
yello'
$he sa!e set of i!ages used in la%)in that corresponds to the alpha%et is provided in
alpha.(ip. /0a!ples of the i!ages are sho'n %elo',
--
a.bmp b.bmp y.bmp z.bmp - /ach letter is 3#.03#
$he follo'ing class1 !odified fro! la%)in1 Game is used 'hen i!ple!enting this la%.
#ifndef GAME_H
#define GAME_H
#include "GenPoint.h"
class Game
{
private:
char* fileame!
char* "ord!
int* #ananas! $$Arra% of o#&ect num#ers for each #anana ima'e
GenPoint* (e%s_ul! $$Arra% of GenPoint for upper left coordinates
GenPoint* (e%s_lr! $$Arra% of GenPoint for lo"er ri'ht coordinates

pu#lic:
Game)*!
+Game)*!
char* 'et,ileame)*!
void set,ileame)char* fn*!
void set-ord)int rand_no*!
char* 'et-ord)*!
void dra")*!
void pla%)*!
.!
#endif
$he guidelines for !ain involve the follo'ing steps,
. 2eclare Game o%3ect
#.Pro!pt the user for the file na!e containing the 'ords to %e processed.
3. 4nvo.e setFile5a!e !ethod that sets the file5a!e private data field.
*. 6enerate rando! nu!%er %et'een ) and *7
5. 4nvo.e setWord !ethod that selects a rando! 'ord fro! the file and sets the private
data field word.
5. 4nvo.e the draw !ethod that displays the %anana tree1 %ananas1 te0t !essages1 a
colored line1 %lan. rectangles1 and a virtual .ey%oard consisting of the alpha%etic i!ages.
8. 4nvo.e the play !ethod that allo's the user to play the ga!e %y selecting letters. $he
specific rules of the ga!e are given in a su%se&uent section.
$he e0a!ple pro!pt fro! !ain is sho'n %elo',
$he resulting graphics display as created fro! the draw !ethod is sho'n,
$he draw !ethod displays the initial scene for the ga!e. $he ele!ents of this initial
scene are created %y the draw !ethod as outlined %elo',
. $he rando!ly selected 'ord for this e0a!ple has 9 letters1 thus 9 'hite rectangle are
displayed starting fro! ())1#5)) each 'ith 'idth of 3# and height of 3#.
#. : %anana for each letter of the rando!ly selected 'ord is also displayed in the %anana
tree - 9 %ananas for this e0a!ple - alt%ou&% only . bananas are visible. /ach %anana is
%anana;tree.%!p
())1))
()1+))
"olor, (#)51#81#+)
())1#5))
())13)))
(*))1)))
%anana.%!p
(#5185)
%anana.%!p
(3#185)
nu!%ered fro! ) to N-1 'here N is the length of the 'ord. /ach even nu!%ered %anana
is displayed at (#5185) using the i!age banana.bmp. /ach o$$ nu!%ered %anana is
displayed at (3#185) using the i!age banana1.bmp. Banana i'a&es are t%erefore
sta!ke$ on top of ea!% ot%er / only $isplayin& t%e 'ost re!ently $isplaye$ o$$0even
banana*
3. $he te0t infor!ation indicating the nu!%er of %ananas is sho'n at (*))1))).
*. $he bananatree.bmp i!age is displayed at ())1))
5. $he virtual .ey%oard consists of #8 i!ages - a.bmp thru z.bmp. /ach i!age has the
di!ensions of 3#03#. $he i!age a.bmp is displayed at ())13))). /ach su%se&uent i!age
is displayed 'ith an offset of 33 in the x direction.
,layin& t%e 1a'e
$he user can %egin playing the Falling Banana Game after the initial scene for the ga!e
is displayed %y invo.ing the dra' the scene. $he user plays the ga!e %y selecting (i.e.1
!li!"ing) on letters of the virtual .ey%oard. For e0a!ple1 suppose the user clic.s on the #
%utton. $he resulting display is sho'n %elo',
$he letter of # of the virtual .ey%oard is grayed out indicating that it cannot %e used
again. :ll occurrences of the letter # 'ithin the rando!ly selected 'ord are displayed at
the corresponding 'hite rectangles. $he letter / occurs in # locations for the e0a!ple
given a%ove. $he e0a!ple 'ord %egins 'ith the letter / and has the letter / in the 8
position. <uppose the user clic.s on the letter $ as sho'n %elo',
$he letter $ is not found in the 'ord. $he last %anana added - =8 - falls fro! the even
(left) side as sho'n a%ove. >se mo%e&b'e!t in order to !a.e the %anana fall. $he letter $
is also grayed out. $he %anana is re!oved once it reaches the ground (y-coordinate ?
95) and the nu!%er of %ananas re!aining is e&ual to 8. $he resulting display once the
%anana reaches the ground is sho'n %elo',
Banana falls fro! even
(left) side. $he %anana
!oves fro! (#5185) to
(#51 95)
5ote the total nu!%er of %ananas has %een decre!ented %y . <uppose the user clic.s on
the letter (. ( 'as not found in the 'ord1 and the %anana falls fro! the odd (right) side
this ti!e as sho'n %elo',
Banana falls fro! odd
(right) side fro! (3#185)
to (3#195)
@nce the %anana has fallen to the ground (y-coordinate ? 95)1 the nu!%er of %ananas is
again decre!ented as sho'n %elo',
$he ga!e continues as the player clic.s on the letters that he %elieves are in the 'ord.
$he results for clic.ing on "151A141>1W1$1B are sho'n %elo',
5ote only %anana is left %ecause the user has in!orre!tly guessed 8 letters. @nly one letter
re!ains in the 'ord as 'ell. <uppose the user guesses the letter ) as sho'n %elo',
$he player is also pro!pted to play the ga!e again as sho'n %elo',
>pon entering CyD1 the console is cleared along 'ith the graphics 'indo'. : ne'
rando!ly selected 'ord is selected and the dra' !ethod displays the follo'ing scene,
$he user plays the ga!e as %efore. <uppose the user cannot guess the 'ord as sho'n
%elo', (only %anana left)
4f the player clic.s on #1 the last %anana falls and the follo'ing is displayed,
$he user can then e0it the progra! %y entering CnD.
2ata 3iel$ 2es!ription
char* fileame!
$he na!e of the file containing the 'ords used %y the ga!e. For our la%1 it 'ill %e
words1.txt.
char* "ord!
$he rando!ly selected 'ord fro! the file containing the 'ord. <et %y the
void set-ord)int rand_no*!
!ethod.
int* #ananas! $$Arra% of o#&ect num#ers for each #anana ima'e
2yna!ically allocated array of integers containing the o%3ect nu!%er for each displayed
%anana. $his array should %e allocated and set %y the dra" !ethod.
GenPoint* (e%s_ul! $$Arra% of GenPoint for upper left coordinates
: dyna!ically allocated array of 6enPoints containing the upper left coordinate for each
displayed i!age (i.e.1 letter) of the virtual .ey%oard. >seful for detecting 'hich letter 'as
pressed. Parallel array 'ith (e%s_lr. $his array should %e allocated and initiali(ed %y
the dra" !ethod.
GenPoint* (e%s_lr!
: dyna!ically allocated array of 6enPoints containing the lo'er right coordinate for
each displayed i!age (i.e.1 letter) of the virtual .ey%oard. >seful for detecting 'hich
letter 'as pressed. Parallel array 'ith (e%s_ul. $his array should %e allocated and
initiali(ed %y the dra" !ethod.
4et%o$s 2es!ription
Game)*!
2efault "onstructor. <ets datafields to 5>EE.
char* 'et,ileame)*!
6etter for fileame field.
void set,ileame)char* fn*!
<etter for fileame field.
void set-ord)int rand_no*!
<etter for "ord data field. $his !ethod perfor!s the follo'ing steps.
. @pens a file associated 'ith the fileame data field for reading (input)
#. $ests the file strea! to assure it is opened correctly
3. Beads one 'ord at a ti!e fro! the file
*. :ccu!ulates a counter for the nu!%er of 'ords in the file
5. <tops reading once the counter is e&ual to input para!eter rand_no
8. :ssigns the "ord data field to rando!ly selected 'ord
char* 'et-ord)*!
6etter for the "ord data field.
void dra")*!
2ra's the initial scene for a rando!ly selected 'ord as sho'n on page 3.
void pla%)*!
:llo's the user to play the Falling Banana 6a!e %ased on the rulesFscenarios outlined on
pages * thru ). $he user plays the ga!es %y perfor!ing the follo'ing steps,
. $he player guesses letters in the 'ord %y clic.ing on i!ages (i.e.1 letters) of the virtual
.ey%oard.
#. 2isplay all occurrences of the clic.ed letter in the corresponding 'hite rectangles
located a%ove the virtual .ey%oard.
3. : %anana is dropped fro! the tree for each guessed letter that is not found.
*. $he player looses once the total nu!%er of %ananas in the tree is ).
5. $he player 'ins if he correctly guesses all letters in the 'ord.
5%at you Sub'it
<u%!it all source code via Blac.%oard.
1ui$elines
You 'ill %e graded according to the follo'ing guidelines,
You are re&uired to su%!it all source (.cpp) files via Blac.%oard.
Your source file should %e ade&uately co!!ented and !ust contain the re&uired
header at its top.

Das könnte Ihnen auch gefallen