-rw-r--r-- | noncore/games/oyatzee/config.in | 4 | ||||
-rw-r--r-- | noncore/games/oyatzee/main.cpp | 13 | ||||
-rw-r--r-- | noncore/games/oyatzee/opie-oyatzee.control | 11 | ||||
-rw-r--r-- | noncore/games/oyatzee/oyatzee.cpp | 214 | ||||
-rw-r--r-- | noncore/games/oyatzee/oyatzee.h | 96 | ||||
-rw-r--r-- | noncore/games/oyatzee/oyatzee.pro | 32 |
6 files changed, 370 insertions, 0 deletions
diff --git a/noncore/games/oyatzee/config.in b/noncore/games/oyatzee/config.in new file mode 100644 index 0000000..32b6eac --- a/dev/null +++ b/noncore/games/oyatzee/config.in @@ -0,0 +1,4 @@ + config WORDGAME + boolean "wordgame" + default "y" + depends ( LIBQPE || LIBQPE-X11 ) && LIBOPIE diff --git a/noncore/games/oyatzee/main.cpp b/noncore/games/oyatzee/main.cpp new file mode 100644 index 0000000..6e5002c --- a/dev/null +++ b/noncore/games/oyatzee/main.cpp @@ -0,0 +1,13 @@ +#include "wordgame.h" + +#include <qpe/qpeapplication.h> + +int main( int argc, char ** argv ) +{ + QPEApplication a( argc, argv ); + + OYatzee mw; + a.showMainWidget(&mw); + + return a.exec(); +} diff --git a/noncore/games/oyatzee/opie-oyatzee.control b/noncore/games/oyatzee/opie-oyatzee.control new file mode 100644 index 0000000..8249fed --- a/dev/null +++ b/noncore/games/oyatzee/opie-oyatzee.control @@ -0,0 +1,11 @@ +Package: opie-oyatzee +Files: bin/oyatzee apps/Games/oyatzee.desktop pics/oyatzee +Priority: optional +Section: opie/games +Maintainer: Carsten Niehaus <cniehaus@handhelds.org> +Architecture: arm +Depends: task-opie-minimal +Description: Yatzee-like game + A Yatzee game for the Opie environment. + Play against the computer or human opponents. +Version: $QPE_VERSION$EXTRAVERSION diff --git a/noncore/games/oyatzee/oyatzee.cpp b/noncore/games/oyatzee/oyatzee.cpp new file mode 100644 index 0000000..7940b89 --- a/dev/null +++ b/noncore/games/oyatzee/oyatzee.cpp @@ -0,0 +1,214 @@ +#include "oyatzee.h" + +#include <qpe/applnk.h> +#include <qpe/global.h> +#include <qpe/filemanager.h> +#include <qpe/resource.h> +#include <qpe/config.h> + +#include <qapplication.h> +#include <qmessagebox.h> +#include <qcombobox.h> +#include <qdatetime.h> +#include <qfileinfo.h> +#include <qfile.h> +#include <qdir.h> +#include <qiconset.h> +#include <qlabel.h> +#include <qlineedit.h> +#include <qpushbutton.h> +#include <qtextstream.h> +#include <qtimer.h> +#include <qpe/qpetoolbar.h> +#include <qtoolbutton.h> +#include <qvbox.h> +#include <qwidgetstack.h> +#include <qpainter.h> +#include <qlayout.h> +#include <qregexp.h> + +#include <stdlib.h> +#include <unistd.h> +#include <pwd.h> +#include <sys/types.h> + +OYatzee::OYatzee( QWidget *parent , const char *name, WFlags fl ) : QMainWindow( parent , name , fl ) +{ + QWidget *thing = new QWidget( this ); + setCentralWidget( thing ); + + QVBoxLayout *vbox = new QVBoxLayout( thing ); + + sb = new Scoreboard( thing , "sb" ); + dw = new DiceWidget( thing , "dw" ); + + + vbox->addWidget( sb ); + vbox->addWidget( dw ); + + setPlayerNumber( 2 ); + setRoundsNumber( 1 ); + + connect( dw->rollButton, SIGNAL( clicked() ), this , SLOT( slotRollDices() ) ); +} + +OYatzee::~OYatzee() +{ +} + +void OYatzee::detectPosibilities() +{ + Dice *d = dw->diceList.first(); + + QValueList<int> numbers; + + for ( ; d != 0 ; d = dw->diceList.next() ) + { + numbers.append( d->Value ); + } +} + +void OYatzee::setPlayerNumber( const int num ) +{ + numOfPlayers = num; +} + +void OYatzee::setRoundsNumber( const int num ) +{ + numOfRounds = num; +} + +void OYatzee::slotStartGame() +{ +} + +void OYatzee::slotRollDices() +{ + Dice *d = dw->diceList.first(); + + for ( ; d != 0 ; d = dw->diceList.next() ) + { + d->roll(); + } + + detectPosibilities(); +} + +/* + * Scoreboard + */ +Scoreboard::Scoreboard( QWidget *parent, const char *name ) : QWidget( parent , name ) +{ +} + +void Scoreboard::paintEvent( QPaintEvent * ) +{ + QPainter p; + p.begin( this ); + + p.drawRect( 0,0, this->width() , this->height() ); +} + +/* + * Dice + */ +Dice::Dice( QWidget *parent , const char *name ) : QFrame( parent , name ) +{ + QTime t = QTime::currentTime(); // set random seed + srand(t.hour()*12+t.minute()*60+t.second()*60); + + connect( this , SIGNAL( selected() ), this , SLOT( slotSelected() ) ); +} + +void Dice::slotSelected() +{ + qDebug( QString::number( Value ) ); +} + +int Dice::hasValue() +{ + return Value; +} + +void Dice::roll() +{ + Value = rand()%6; + Value += 1; + + update(); +} + +void Dice::mousePressEvent( QMouseEvent* /*e*/ ) +{ + emit selected(); +} + +void Dice::paintEvent( QPaintEvent * ) +{ + QPainter p; + p.begin( this ); + + p.drawRect( 0,0, this->width() , this->height() ); + + paintNumber( &p ); +} + +void Dice::paintNumber( QPainter *p ) +{ + switch ( Value ) + { + case 1: + p->drawText( 10,10,"1"); + break; + case 2: + p->drawText( 10,10,"2"); + break; + case 3: + p->drawText( 10,10,"3"); + break; + case 4: + p->drawText( 10,10,"4"); + break; + case 5: + p->drawText( 10,10,"5"); + break; + case 6: + p->drawText( 10,10,"6"); + break; + } +} + +/* + * DiceWidget + */ +DiceWidget::DiceWidget( QWidget *parent , const char *name ) : QWidget( parent , name ) +{ + rollButton = new QPushButton( tr( "Roll" ) , this ) ; + + for ( int i = 0 ; i < 5 ; i++ ) + { + //appending the 5 dices of the game + diceList.append( new Dice( this, "wuerfel" ) ); + } + + QHBoxLayout *hbox = new QHBoxLayout( this ); + + Dice *d = diceList.first(); + + for ( ; d != 0 ; d = diceList.next() ) + { + d->roll(); + hbox->addWidget( d ); + } + + hbox->addWidget( rollButton ); +} + +/* + * Player + */ +Player::Player( QString name ) +{ + playerName = name; +} + diff --git a/noncore/games/oyatzee/oyatzee.h b/noncore/games/oyatzee/oyatzee.h new file mode 100644 index 0000000..7be9407 --- a/dev/null +++ b/noncore/games/oyatzee/oyatzee.h @@ -0,0 +1,96 @@ +#ifndef WORDGAME_H +#define WORDGAME_H + +#include <qmainwindow.h> +#include <qlabel.h> +#include <qlist.h> + +#include <stdlib.h> // rand() function +#include <qdatetime.h> // seed for rand() + +class Dice; +class Game; +class Scoreboard; +class DiceWidget; + +typedef QList<Dice> dicesList; + +class OYatzee : public QMainWindow { + Q_OBJECT + public: + OYatzee( QWidget* parent = 0, const char* name = 0, WFlags fl = 0 ); + ~OYatzee(); + + Game *g; + DiceWidget *dw; + Scoreboard *sb; + + + void setPlayerNumber( const int num ); + void setRoundsNumber( const int num ); + + public slots: + void slotStartGame(); + void slotRollDices(); + + private: + int numOfPlayers; + int numOfRounds; + + void detectPosibilities(); +}; + +class Dice : public QFrame +{ + Q_OBJECT + public: + Dice( QWidget* parent = 0, const char* name = 0 ); + + int Value; + + int hasValue(); + void roll(); + virtual void mousePressEvent( QMouseEvent* ); + + private slots: + void slotSelected(); + + signals: + void selected(); + + protected: + void paintEvent( QPaintEvent *e ); + void paintNumber( QPainter *p ); +}; + +class DiceWidget : public QWidget +{ + Q_OBJECT + public: + DiceWidget( QWidget *parent = 0, const char* name = 0 ); + + QPushButton *rollButton; + + dicesList diceList; +}; + +class Scoreboard : public QWidget +{ + Q_OBJECT + public: + Scoreboard( QWidget *parent = 0, const char* name = 0 ); + + protected: + void paintEvent( QPaintEvent *e ); +}; + +class Player +{ + public: + Player( QString name ); + + QString playerName; + int totalPoints; +}; + +#endif // WORDGAME_H diff --git a/noncore/games/oyatzee/oyatzee.pro b/noncore/games/oyatzee/oyatzee.pro new file mode 100644 index 0000000..08f842e --- a/dev/null +++ b/noncore/games/oyatzee/oyatzee.pro @@ -0,0 +1,32 @@ +TEMPLATE = app +CONFIG = qt warn_on release +DESTDIR = $(OPIEDIR)/bin +HEADERS = wordgame.h +SOURCES = main.cpp \ + wordgame.cpp +TARGET = oyatzee +INCLUDEPATH += $(OPIEDIR)/include +DEPENDPATH += $(OPIEDIR)/include +LIBS += -lqpe + +TRANSLATIONS = ../../../i18n/de/oyatzee.ts \ + ../../../i18n/nl/oyatzee.ts \ + ../../../i18n/da/oyatzee.ts \ + ../../../i18n/xx/oyatzee.ts \ + ../../../i18n/en/oyatzee.ts \ + ../../../i18n/es/oyatzee.ts \ + ../../../i18n/fr/oyatzee.ts \ + ../../../i18n/hu/oyatzee.ts \ + ../../../i18n/ja/oyatzee.ts \ + ../../../i18n/ko/oyatzee.ts \ + ../../../i18n/no/oyatzee.ts \ + ../../../i18n/pl/oyatzee.ts \ + ../../../i18n/pt/oyatzee.ts \ + ../../../i18n/pt_BR/oyatzee.ts \ + ../../../i18n/sl/oyatzee.ts \ + ../../../i18n/zh_CN/oyatzee.ts \ + ../../../i18n/zh_TW/oyatzee.ts + + + +include ( $(OPIEDIR)/include.pro ) |