Hi Leute,
hab da folgendes Problem: Ich programmiere derzeit ein Memoryspiel mithilfe von QT.........
Nun bin ich fast schon fertig, habe aber ein Prob mit dem eventTimer...
Mit der Schummelfunktion drehe ich alle noch nicht aufgedeckten karten für ca 2 sekunden um........solange kein kartenpaar aufgedeckt wurde, funzt das auch wunderbar.........der dreht alle karten für 2 sekunden um und danach verdeckt er sie wieder.........aber wenn bereits ein paar aufgedeckt wurde, dreht er die restlichen karten zwar um, aber nicht wieder zurück........ich habe absolut keinen plan, warum das so is.........
genug gequatscht, hier der quellcode (auzug):
|
C-/C++-Quelltext
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
void memoryspiel::Schummeln()
{
// zähle gesamtes Spielfeld durch (42 Karten)
for(int i = 0; i < 7; i++)
{
for(int j = 0; j < 6; j++)
{
// überprüfe, ob Karte "back.bmp"
if(SpielFeld[i][j] == 22)
SpielFeld[i][j] = InitFeld[i][j]; // drehe um
}
}
NeuZeichnen();
if(!derTimer)
derTimer2 = startTimer(2000);
}
void memoryspiel::timerEvent(QTimerEvent *e)
{
QString s;
if(e->timerId() == derTimer)
{
killTimer(derTimer);
SchliesseKarten();
s = s.number(Paare[0],10);
punkteMensch = atoi(s);
label3->setText(s);
s = s.number(Paare[1],10);
punkteComputer = atoi(s);
label4->setText(s);
NeuZeichnen();
}
else if(e->timerId() == derTimer2)
{
for(int i = 0; i < 7; i++)
{
for(int j = 0; j < 6; j++)
{
if(!(SpielFeld[i][j] == 21))
SpielFeld[i][j] = 22;
}
}
NeuZeichnen();
killTimer(derTimer2);
}
}
|
InitFeld[7][6] beinhaltet hierbei die bildinizies (insgesamt 21)........da diese jeweils 2mal vorhanden sind, macht das 42.........hinzu kommt noch ein bild für den aufstand "aufgeckt" sowie für "umgedreht".....macht dann insgesamt 23 bilder......
SpielFeld[7][6] bekommt die Karten von InitFeld[7][6] zugewiesen.......
Wenn nochwas unklar sein sollte, könnt ihr gerne Fragen....Ich schick euch auch gern den kompletten Quelltext zu, aber ich denke, dass verkompliziert die sache nur noch mehr
Ich hoffe, Ihr könnt mir helfen mit meinem Problem......