X-Git-Url: https://git.ralfj.de/multypo.git/blobdiff_plain/a3b03eee588a798498c5da563938690402ed302a..e52cebeda021cf4e76330eabd3777ec6136720d3:/qt/multypo.cpp diff --git a/qt/multypo.cpp b/qt/multypo.cpp index 8dea3e0..c9e7101 100644 --- a/qt/multypo.cpp +++ b/qt/multypo.cpp @@ -12,15 +12,16 @@ MultypoWindow::MultypoWindow(QWidget *parent) : QWidget(parent), - xiInited(false) + xiInited(false), + gameStarted(false) { /* Prepare colors */ - setStyleSheet("background-color: black; color: green; font-size: 30pt"); + setStyleSheet("background-color: black; color: green; font-size: 55pt"); /* Prepare conents */ setLayout(new QVBoxLayout(this)); - mainLabel = new QLabel("Hit to quit", this); + mainLabel = new QLabel("Namen eingeben, dann Return", this); layout()->addWidget(mainLabel); /* Fullscreen, no cursor */ @@ -28,6 +29,8 @@ MultypoWindow::MultypoWindow(QWidget *parent) : setCursor(QCursor(Qt::BlankCursor)); words.open(stdin,QIODevice::ReadOnly); + + typingPlayers = 0; } MultypoWindow::~MultypoWindow() @@ -43,6 +46,7 @@ void MultypoWindow::resetPlayerText() { void MultypoWindow::nextWord() { QByteArray tmp = words.readLine().trimmed(); QString word = QString::fromUtf8(tmp); + qDebug() << "New word" << word; if (word.isEmpty()) { // game over mainLabel->setText("GAME OVER"); for (QMap::Iterator it = players.begin(); it != players.end(); ++it) { @@ -66,14 +70,16 @@ void MultypoWindow::handleKeyPress(int device, QString string) } if (!players.contains(device)) { + if (gameStarted) + return; players[device] = new Player(this); } - players[device]->handleKey(string); + bool newChar = players[device]->handleKey(string); if (gameStarted) { // ingame - qDebug() << players[device]->getCurrentLine(); - qDebug() << mainLabel->text(); - if (players[device]->getCurrentLine() == mainLabel->text()) { + qDebug() << "current player line" << players[device]->getCurrentLine(); + qDebug() << "current word" << mainLabel->text(); + if (newChar && players[device]->getCurrentLine() == mainLabel->text()) { players[device]->score += typingPlayers; QString readyString = QString("READY: %1 points").arg(typingPlayers); players[device]->setWaiting(readyString); @@ -85,6 +91,7 @@ void MultypoWindow::handleKeyPress(int device, QString string) } } } else { // name entering phase + qDebug() << "checking for game started"; bool allHaveNames = true; for (QMap::Iterator it = players.begin(); it != players.end(); ++it) { if (! it.value()->hasName()) { @@ -92,6 +99,7 @@ void MultypoWindow::handleKeyPress(int device, QString string) break; } } + qDebug() << "Players empty?" << players.empty() << "All have names?" << allHaveNames; if (!players.empty() && allHaveNames) { gameStarted = true; nextWord();