001
04.10.2017, 21:02 Uhr
cprogcoder
|
Der Programm Memoryspiel konnte ich nicht beifügen, füge das Programm "memoryspiel.cpp" bei. Mein ergänzter Programmcode ist in "ButtonSchummeln"
Part_1 - Programmcode ("memoryspiel.cpp")
C++: |
//die Header-Datei der eigenen Klasse #include "memoryspiel.h" #include "memorykarte.h" #include <QHeaderView> #include <QMessageBox> #include <algorithm> #include <ctime>
//für die Grafiken QString bildNamen[] = { ":/bilder/apfel.bmp", ":/bilder/birne.bmp", ":/bilder/blume.bmp", ":/bilder/blume2.bmp", ":/bilder/ente.bmp", ":/bilder/fisch.bmp", ":/bilder/fuchs.bmp", ":/bilder/igel.bmp", ":/bilder/kaenguruh.bmp", ":/bilder/katze.bmp", ":/bilder/kuh.bmp", ":/bilder/maus1.bmp", ":/bilder/maus2.bmp", ":/bilder/maus3.bmp", ":/bilder/melone.bmp", ":/bilder/pilz.bmp", ":/bilder/ronny.bmp", ":/bilder/schmetterling.bmp", ":/bilder/sonne.bmp", ":/bilder/wolke.bmp", ":/bilder/maus4.bmp" };
//der Konstruktor memoryspiel::memoryspiel() { //die Größe setzen resize(394, 550); //und den Titel setWindowTitle("Memoryspiel");
//den Timer erstellen timerUmdrehen = new QTimer(); //er soll nur einmal ausgeführt werden timerUmdrehen->setSingleShot(true);
//die Attribute initialisieren //es ist keine Karte umgedreht umgedrehteKarten = 0; //der Spieler 0 - der Mensch - fängt an spieler = 0; //es hat noch keiner Punkte menschPunkte = 0; computerPunkte = 0; //die Spielstärke setzen spielstaerke = 10;
//gemerkteKarten wird mit -1 initialisiert for (int aussen = 0; aussen < 2; aussen++) for (int innen = 0; innen < 21; innen++) gemerkteKarten[aussen][innen] = -1;
//eine neue Tabelle mit sieben Zeilen und sechs Spalten erzeugen spielfeld = new QTableWidget(7, 6, this);
//die Spalten- und Zeilenköpfe ausblenden spielfeld->horizontalHeader()->hide(); spielfeld->verticalHeader()->hide();
//das Gitternetz ausblenden spielfeld->setShowGrid(false);
//die Auswahl deaktivieren spielfeld->setSelectionMode(QTableWidget::NoSelection);
//die Höhe und Breite der Zellen setzen for (int zeile = 0; zeile < 7; zeile++) spielfeld->setRowHeight(zeile, 64); for (int spalte = 0; spalte < 6; spalte++) spielfeld->setColumnWidth(spalte, 64);
//die Größe anpassen spielfeld->resize(394, 458);
//die Labels erzeugen und positionieren labelTextMensch = new QLabel(this); labelTextMensch->setText("Mensch"); labelTextMensch->setGeometry(10, 460, 50, 25); labelMensch = new QLabel(this); labelMensch->setText("0"); labelMensch->setGeometry(100, 460, 50, 25); labelTextComputer = new QLabel(this); labelTextComputer->setText("Computer"); labelTextComputer->setGeometry(10, 480, 50, 25); labelComputer = new QLabel(this); labelComputer->setText("0"); labelComputer->setGeometry(100, 480, 50, 25);
//den Label für den aktuellen Spieler labelTextaktuellerSpieler = new QLabel(this); labelTextaktuellerSpieler->setText("Aktueller Spieler"); labelTextaktuellerSpieler->setGeometry(10, 500, 150, 25); labelaktuellerSpieler = new QLabel(this); labelaktuellerSpieler->setText("Mensch"); labelaktuellerSpieler->setGeometry(100, 500, 50, 25);
//den PushButton für das "Schummeln" erstellen ButtonSchummeln = new QPushButton(this); ButtonSchummeln->setText("Schummeln"); ButtonSchummeln->setGeometry(250, 460, 100, 25);
//den PushButton für das "Abbrechen" erstellen ButtonAbbrechen = new QPushButton(this); ButtonAbbrechen->setText("Abbrechen"); ButtonAbbrechen->setGeometry(250, 500, 100, 25);
//die Karten erstellen int bildZaehler = 0; for (int schleife = 0; schleife < 42; schleife++) { karten[schleife] = new memorykarte(bildNamen[bildZaehler], bildZaehler); if ((schleife + 1) % 2 == 0) bildZaehler++; }
//die Karten durcheinander werfen srand(time(NULL)); //die Karten durcheinander werfen srand(time(NULL)); std::random_shuffle(karten, karten + 42);
//die Größe der Icons einstellen spielfeld->setIconSize(QSize(64,64)); //die Karten in die Tabelle stellen for (int zeile = 0; zeile < 7; zeile++) for (int spalte = 0; spalte < 6; spalte++) { spielfeld->setItem(zeile, spalte, karten[(spalte * 7) + zeile]); //die Position setzen karten[(spalte * 7) + zeile]->setBildPos((spalte * 7) + zeile); }
//das Anklicken einer Zelle mit dem Slot mausKlickSlot verbinden QObject::connect(spielfeld,SIGNAL(cellClicked(int, int)), this, SLOT(mausKlickSlot(int, int))); //den Timer mit dem Slot verbinden QObject::connect(timerUmdrehen,SIGNAL(timeout()), this, SLOT(timerSlot()));
//das Anklicken des Schummeln Buttons QObject::connect(ButtonSchummeln, SIGNAL(clicked()), this, SLOT(ButtonfuerSchummeln()));
//das Anklicken des Abbrechen Buttons QObject::connect(ButtonAbbrechen, SIGNAL(clicked()), this, SLOT(close())); }
|
Dieser Post wurde am 04.10.2017 um 21:17 Uhr von FloSoft editiert. |