<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- /home/espenr/tmp/qt - 3.3.8 - espenr - 2499/qt - x11 - free - 3.3.8/doc/tutorial.doc:2378 -->
< html >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=ISO-8859-1" >
< title > t14/gamebrd.cpp Example File< / title >
< style type = "text/css" > < ! - -
fn { margin-left: 1cm; text-indent: -1cm; }
a:link { color: #004faf; text-decoration: none }
a:visited { color: #672967; text-decoration: none }
body { background: #ffffff; color: black; }
-->< / style >
< / head >
< body >
< table border = "0" cellpadding = "0" cellspacing = "0" width = "100%" >
< tr bgcolor = "#E5E5E5" >
< td valign = center >
< a href = "index.html" >
< font color = "#004faf" > Home< / font > < / a >
| < a href = "classes.html" >
< font color = "#004faf" > All Classes< / font > < / a >
| < a href = "mainclasses.html" >
< font color = "#004faf" > Main Classes< / font > < / a >
| < a href = "annotated.html" >
< font color = "#004faf" > Annotated< / font > < / a >
| < a href = "groups.html" >
< font color = "#004faf" > Grouped Classes< / font > < / a >
| < a href = "functions.html" >
< font color = "#004faf" > Functions< / font > < / a >
< / td >
< td align = "right" valign = "center" > < img src = "logo32.png" align = "right" width = "64" height = "32" border = "0" > < / td > < / tr > < / table > < h1 align = center > t14/gamebrd.cpp Example File< / h1 >
< pre > /****************************************************************
**
** Implementation of GameBoard class, TQt tutorial 14
**
****************************************************************/
#include "gamebrd.h"
#include < < a href = "qfont-h.html" > ntqfont.h< / a > >
#include < < a href = "qapplication-h.html" > ntqapplication.h< / a > >
#include < < a href = "qlabel-h.html" > ntqlabel.h< / a > >
#include < < a href = "qaccel-h.html" > ntqaccel.h< / a > >
#include < < a href = "qpushbutton-h.html" > ntqpushbutton.h< / a > >
#include < < a href = "qlcdnumber-h.html" > ntqlcdnumber.h< / a > >
#include < < a href = "qlayout-h.html" > ntqlayout.h< / a > >
#include < < a href = "qvbox-h.html" > ntqvbox.h< / a > >
#include "lcdrange.h"
#include "cannon.h"
< a name = "f139" > < / a > GameBoard::GameBoard( < a href = "ntqwidget.html" > TQWidget< / a > *parent, const char *name )
: < a href = "ntqwidget.html" > TQWidget< / a > ( parent, name )
{
< a href = "ntqpushbutton.html" > TQPushButton< / a > *quit = new < a href = "ntqpushbutton.html" > TQPushButton< / a > ( "& Quit", this, "quit" );
quit-> < a href = "ntqwidget.html#setFont" > setFont< / a > ( TQFont( "Times", 18, TQFont::Bold ) );
< a href = "ntqobject.html#connect" > connect< / a > ( quit, SIGNAL(< a href = "ntqbutton.html#clicked" > clicked< / a > ()), qApp, SLOT(< a href = "ntqapplication.html#quit" > quit< / a > ()) );
LCDRange *angle = new LCDRange( "ANGLE", this, "angle" );
angle-> setRange( 5, 70 );
LCDRange *force = new LCDRange( "FORCE", this, "force" );
force-> setRange( 10, 50 );
< a href = "ntqvbox.html" > TQVBox< / a > *box = new < a href = "ntqvbox.html" > TQVBox< / a > ( this, "cannonFrame" );
box-> < a href = "ntqframe.html#setFrameStyle" > setFrameStyle< / a > ( TQFrame::WinPanel | TQFrame::Sunken );
cannonField = new CannonField( box, "cannonField" );
< a href = "ntqobject.html#connect" > connect< / a > ( angle, SIGNAL(valueChanged(int)),
cannonField, SLOT(setAngle(int)) );
< a href = "ntqobject.html#connect" > connect< / a > ( cannonField, SIGNAL(angleChanged(int)),
angle, SLOT(setValue(int)) );
< a href = "ntqobject.html#connect" > connect< / a > ( force, SIGNAL(valueChanged(int)),
cannonField, SLOT(setForce(int)) );
< a href = "ntqobject.html#connect" > connect< / a > ( cannonField, SIGNAL(forceChanged(int)),
force, SLOT(setValue(int)) );
< a href = "ntqobject.html#connect" > connect< / a > ( cannonField, SIGNAL(hit()),
this, SLOT(hit()) );
< a href = "ntqobject.html#connect" > connect< / a > ( cannonField, SIGNAL(missed()),
this, SLOT(missed()) );
< a href = "ntqpushbutton.html" > TQPushButton< / a > *shoot = new < a href = "ntqpushbutton.html" > TQPushButton< / a > ( "& Shoot", this, "shoot" );
shoot-> < a href = "ntqwidget.html#setFont" > setFont< / a > ( TQFont( "Times", 18, TQFont::Bold ) );
< a href = "ntqobject.html#connect" > connect< / a > ( shoot, SIGNAL(< a href = "ntqbutton.html#clicked" > clicked< / a > ()), SLOT(fire()) );
< a href = "ntqobject.html#connect" > connect< / a > ( cannonField, SIGNAL(canShoot(bool)),
shoot, SLOT(< a href = "ntqwidget.html#setEnabled" > setEnabled< / a > (bool)) );
TQPushButton *restart
= new < a href = "ntqpushbutton.html" > TQPushButton< / a > ( "& New Game", this, "newgame" );
restart-> setFont( TQFont( "Times", 18, TQFont::Bold ) );
< a href = "ntqobject.html#connect" > connect< / a > ( restart, SIGNAL(clicked()), this, SLOT(newGame()) );
hits = new < a href = "ntqlcdnumber.html" > TQLCDNumber< / a > ( 2, this, "hits" );
shotsLeft = new < a href = "ntqlcdnumber.html" > TQLCDNumber< / a > ( 2, this, "shotsleft" );
< a href = "ntqlabel.html" > TQLabel< / a > *hitsL = new < a href = "ntqlabel.html" > TQLabel< / a > ( "HITS", this, "hitsLabel" );
TQLabel *shotsLeftL
= new < a href = "ntqlabel.html" > TQLabel< / a > ( "SHOTS LEFT", this, "shotsleftLabel" );
< a href = "ntqaccel.html" > TQAccel< / a > *accel = new < a href = "ntqaccel.html" > TQAccel< / a > ( this );
accel-> < a href = "ntqaccel.html#connectItem" > connectItem< / a > ( accel-> < a href = "ntqaccel.html#insertItem" > insertItem< / a > ( Key_Enter ),
this, SLOT(fire()) );
accel-> < a href = "ntqaccel.html#connectItem" > connectItem< / a > ( accel-> < a href = "ntqaccel.html#insertItem" > insertItem< / a > ( Key_Return ),
this, SLOT(fire()) );
accel-> < a href = "ntqaccel.html#connectItem" > connectItem< / a > ( accel-> < a href = "ntqaccel.html#insertItem" > insertItem< / a > ( CTRL+Key_Q ),
qApp, SLOT(< a href = "ntqapplication.html#quit" > quit< / a > ()) );
< a href = "qgridlayout.html" > TQGridLayout< / a > *grid = new < a href = "qgridlayout.html" > TQGridLayout< / a > ( this, 2, 2, 10 );
grid-> < a href = "qgridlayout.html#addWidget" > addWidget< / a > ( quit, 0, 0 );
grid-> < a href = "qgridlayout.html#addWidget" > addWidget< / a > ( box, 1, 1 );
grid-> < a href = "qgridlayout.html#setColStretch" > setColStretch< / a > ( 1, 10 );
< a href = "qvboxlayout.html" > TQVBoxLayout< / a > *leftBox = new < a href = "qvboxlayout.html" > TQVBoxLayout< / a > ;
grid-> < a href = "qgridlayout.html#addLayout" > addLayout< / a > ( leftBox, 1, 0 );
leftBox-> < a href = "qboxlayout.html#addWidget" > addWidget< / a > ( angle );
leftBox-> < a href = "qboxlayout.html#addWidget" > addWidget< / a > ( force );
< a href = "qhboxlayout.html" > TQHBoxLayout< / a > *topBox = new < a href = "qhboxlayout.html" > TQHBoxLayout< / a > ;
grid-> < a href = "qgridlayout.html#addLayout" > addLayout< / a > ( topBox, 0, 1 );
topBox-> < a href = "qboxlayout.html#addWidget" > addWidget< / a > ( shoot );
topBox-> < a href = "qboxlayout.html#addWidget" > addWidget< / a > ( hits );
topBox-> < a href = "qboxlayout.html#addWidget" > addWidget< / a > ( hitsL );
topBox-> < a href = "qboxlayout.html#addWidget" > addWidget< / a > ( shotsLeft );
topBox-> < a href = "qboxlayout.html#addWidget" > addWidget< / a > ( shotsLeftL );
topBox-> < a href = "qboxlayout.html#addStretch" > addStretch< / a > ( 1 );
topBox-> < a href = "qboxlayout.html#addWidget" > addWidget< / a > ( restart );
angle-> setValue( 60 );
force-> setValue( 25 );
angle-> < a href = "ntqwidget.html#setFocus" > setFocus< / a > ();
newGame();
}
void < a name = "f140" > < / a > GameBoard::fire()
{
if ( cannonField-> gameOver() || cannonField-> isShooting() )
return;
shotsLeft-> < a href = "ntqlcdnumber.html#display" > display< / a > ( shotsLeft-> < a href = "ntqlcdnumber.html#intValue" > intValue< / a > () - 1 );
cannonField-> shoot();
}
void < a name = "f141" > < / a > GameBoard::hit()
{
hits-> < a href = "ntqlcdnumber.html#display" > display< / a > ( hits-> < a href = "ntqlcdnumber.html#intValue" > intValue< / a > () + 1 );
if ( shotsLeft-> < a href = "ntqlcdnumber.html#intValue" > intValue< / a > () == 0 )
cannonField-> setGameOver();
else
cannonField-> newTarget();
}
void < a name = "f142" > < / a > GameBoard::missed()
{
if ( shotsLeft-> < a href = "ntqlcdnumber.html#intValue" > intValue< / a > () == 0 )
cannonField-> setGameOver();
}
void < a name = "f143" > < / a > GameBoard::newGame()
{
shotsLeft-> < a href = "ntqlcdnumber.html#display" > display< / a > ( 15 );
hits-> < a href = "ntqlcdnumber.html#display" > display< / a > ( 0 );
cannonField-> restartGame();
cannonField-> newTarget();
}
< / pre > <!-- eof -->
< p > < address > < hr > < div align = center >
< table width = 100% cellspacing = 0 border = 0 > < tr >
< td > Copyright © 2007
< a href = "troll.html" > Trolltech< / a > < td align = center > < a href = "trademarks.html" > Trademarks< / a >
< td align = right > < div align = right > TQt 3.3.8< / div >
< / table > < / div > < / address > < / body >
< / html >