summaryrefslogtreecommitdiff
Side-by-side diff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/games/oyatzee/config.in4
-rw-r--r--noncore/games/oyatzee/main.cpp13
-rw-r--r--noncore/games/oyatzee/opie-oyatzee.control11
-rw-r--r--noncore/games/oyatzee/oyatzee.cpp214
-rw-r--r--noncore/games/oyatzee/oyatzee.h96
-rw-r--r--noncore/games/oyatzee/oyatzee.pro32
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 )