Diffstat (limited to 'noncore/games/tictac/tictac.cpp') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/games/tictac/tictac.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/noncore/games/tictac/tictac.cpp b/noncore/games/tictac/tictac.cpp index 12ce35f..db8ee1e 100644 --- a/noncore/games/tictac/tictac.cpp +++ b/noncore/games/tictac/tictac.cpp | |||
@@ -58,48 +58,49 @@ void TicTacButton::drawButtonLabel( QPainter *p ) | |||
58 | 58 | ||
59 | TicTacGameBoard::TicTacGameBoard( int n, QWidget *parent, const char *name ) | 59 | TicTacGameBoard::TicTacGameBoard( int n, QWidget *parent, const char *name ) |
60 | : QWidget( parent, name ) | 60 | : QWidget( parent, name ) |
61 | { | 61 | { |
62 | QPEApplication::showWidget( this ); | 62 | QPEApplication::showWidget( this ); |
63 | st = Init; // initial state | 63 | st = Init; // initial state |
64 | nBoard = n; | 64 | nBoard = n; |
65 | n *= n; // make square | 65 | n *= n; // make square |
66 | comp_starts = FALSE; // human starts | 66 | comp_starts = FALSE; // human starts |
67 | buttons = new TicTacButtons(n); // create real buttons | 67 | buttons = new TicTacButtons(n); // create real buttons |
68 | btArray = new TicTacArray(n); // create button model | 68 | btArray = new TicTacArray(n); // create button model |
69 | QGridLayout * grid = new QGridLayout( this, 3, 3, 4 ); | 69 | QGridLayout * grid = new QGridLayout( this, 3, 3, 4 ); |
70 | QPalette p( blue ); | 70 | QPalette p( blue ); |
71 | for ( int i=0; i<n; i++ ) { // create and connect buttons | 71 | for ( int i=0; i<n; i++ ) { // create and connect buttons |
72 | TicTacButton *ttb = new TicTacButton( this ); | 72 | TicTacButton *ttb = new TicTacButton( this ); |
73 | ttb->setPalette( p ); | 73 | ttb->setPalette( p ); |
74 | ttb->setEnabled( FALSE ); | 74 | ttb->setEnabled( FALSE ); |
75 | connect( ttb, SIGNAL(clicked()), SLOT(buttonClicked()) ); | 75 | connect( ttb, SIGNAL(clicked()), SLOT(buttonClicked()) ); |
76 | grid->addWidget( ttb, i%3, i/3 ); | 76 | grid->addWidget( ttb, i%3, i/3 ); |
77 | buttons->insert( i, ttb ); | 77 | buttons->insert( i, ttb ); |
78 | btArray->at(i) = TicTacButton::Blank; // initial button type | 78 | btArray->at(i) = TicTacButton::Blank; // initial button type |
79 | } | 79 | } |
80 | QTime t = QTime::currentTime(); // set random seed | 80 | QTime t = QTime::currentTime(); // set random seed |
81 | srand( t.hour()*12+t.minute()*60+t.second()*60 ); | 81 | srand( t.hour()*12+t.minute()*60+t.second()*60 ); |
82 | |||
82 | } | 83 | } |
83 | 84 | ||
84 | TicTacGameBoard::~TicTacGameBoard() | 85 | TicTacGameBoard::~TicTacGameBoard() |
85 | { | 86 | { |
86 | delete buttons; | 87 | delete buttons; |
87 | delete btArray; | 88 | delete btArray; |
88 | } | 89 | } |
89 | 90 | ||
90 | 91 | ||
91 | // -------------------------------------------------------------------------- | 92 | // -------------------------------------------------------------------------- |
92 | // TicTacGameBoard::computerStarts( bool v ) | 93 | // TicTacGameBoard::computerStarts( bool v ) |
93 | // | 94 | // |
94 | // Computer starts if v=TRUE. The human starts by default. | 95 | // Computer starts if v=TRUE. The human starts by default. |
95 | // | 96 | // |
96 | 97 | ||
97 | void TicTacGameBoard::computerStarts( bool v ) | 98 | void TicTacGameBoard::computerStarts( bool v ) |
98 | { | 99 | { |
99 | comp_starts = v; | 100 | comp_starts = v; |
100 | } | 101 | } |
101 | 102 | ||
102 | 103 | ||
103 | // -------------------------------------------------------------------------- | 104 | // -------------------------------------------------------------------------- |
104 | // TicTacGameBoard::newGame() | 105 | // TicTacGameBoard::newGame() |
105 | // | 106 | // |
@@ -308,48 +309,49 @@ TicTacToe::TicTacToe( QWidget *parent, const char *name, WFlags fl ) | |||
308 | 309 | ||
309 | QFrame *line = new QFrame( this ); | 310 | QFrame *line = new QFrame( this ); |
310 | line->setFrameStyle( QFrame::HLine | QFrame::Sunken ); | 311 | line->setFrameStyle( QFrame::HLine | QFrame::Sunken ); |
311 | l->addWidget( line ); | 312 | l->addWidget( line ); |
312 | 313 | ||
313 | // Create the combo box for deciding who should start, and | 314 | // Create the combo box for deciding who should start, and |
314 | // connect its clicked() signals to the buttonClicked() slot | 315 | // connect its clicked() signals to the buttonClicked() slot |
315 | 316 | ||
316 | whoStarts = new QComboBox( this ); | 317 | whoStarts = new QComboBox( this ); |
317 | whoStarts->insertItem( tr( "Computer starts" ) ); | 318 | whoStarts->insertItem( tr( "Computer starts" ) ); |
318 | whoStarts->insertItem( tr( "Human starts" ) ); | 319 | whoStarts->insertItem( tr( "Human starts" ) ); |
319 | l->addWidget( whoStarts ); | 320 | l->addWidget( whoStarts ); |
320 | 321 | ||
321 | // Create the push buttons and connect their clicked() signals | 322 | // Create the push buttons and connect their clicked() signals |
322 | // to this right slots. | 323 | // to this right slots. |
323 | 324 | ||
324 | newGame = new QPushButton( tr( "Play!" ), this ); | 325 | newGame = new QPushButton( tr( "Play!" ), this ); |
325 | connect( newGame, SIGNAL(clicked()), SLOT(newGameClicked()) ); | 326 | connect( newGame, SIGNAL(clicked()), SLOT(newGameClicked()) ); |
326 | quit = new QPushButton( tr( "Quit" ), this ); | 327 | quit = new QPushButton( tr( "Quit" ), this ); |
327 | connect( quit, SIGNAL(clicked()), qApp, SLOT(quit()) ); | 328 | connect( quit, SIGNAL(clicked()), qApp, SLOT(quit()) ); |
328 | QHBoxLayout * b = new QHBoxLayout; | 329 | QHBoxLayout * b = new QHBoxLayout; |
329 | l->addLayout( b ); | 330 | l->addLayout( b ); |
330 | b->addWidget( newGame ); | 331 | b->addWidget( newGame ); |
331 | b->addWidget( quit ); | 332 | b->addWidget( quit ); |
333 | move(0,0); | ||
332 | QPEApplication::showWidget( this ); | 334 | QPEApplication::showWidget( this ); |
333 | newState(); | 335 | newState(); |
334 | } | 336 | } |
335 | 337 | ||
336 | 338 | ||
337 | // -------------------------------------------------------------------------- | 339 | // -------------------------------------------------------------------------- |
338 | // TicTacToe::newGameClicked() - SLOT | 340 | // TicTacToe::newGameClicked() - SLOT |
339 | // | 341 | // |
340 | // This slot is activated when the new game button is clicked. | 342 | // This slot is activated when the new game button is clicked. |
341 | // | 343 | // |
342 | 344 | ||
343 | void TicTacToe::newGameClicked() | 345 | void TicTacToe::newGameClicked() |
344 | { | 346 | { |
345 | board->computerStarts( whoStarts->currentItem() == 0 ); | 347 | board->computerStarts( whoStarts->currentItem() == 0 ); |
346 | board->newGame(); | 348 | board->newGame(); |
347 | newState(); | 349 | newState(); |
348 | } | 350 | } |
349 | 351 | ||
350 | 352 | ||
351 | // -------------------------------------------------------------------------- | 353 | // -------------------------------------------------------------------------- |
352 | // TicTacToe::gameOver() - SLOT | 354 | // TicTacToe::gameOver() - SLOT |
353 | // | 355 | // |
354 | // This slot is activated when the TicTacGameBoard emits the signal | 356 | // This slot is activated when the TicTacGameBoard emits the signal |
355 | // "finished()", i.e. when a player has won or when it is a draw. | 357 | // "finished()", i.e. when a player has won or when it is a draw. |