Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Errschaffer

Alter Hase

  • »Errschaffer« ist der Autor dieses Themas

Beiträge: 865

Wohnort: Frankfurt

  • Private Nachricht senden

1

24.11.2008, 16:20

2 in 1. Switch und Parameter liste

Hallo,
heute habe ich mal 2 Porbleme auf einmal die aber unabhänig voneinander sind.

Porblem 1:
Also das Porblem ist das er bei der Parameterliste streikt und sagt die Zeiger wären nicht deklariert.

C-/C++-Quelltext

1
2
3
4
5
if ((Auswahl==1) && (Rang==3))
    {
          Cheatkonsole (&Highscore_Spieler1,&Highscore_Spieler2,&Highscore_Pc);

    }


Aber die Prototypen sind korrekt also weiss ich nicht woran das liegt.
Im Hautmenü mach ich das ja auch so....

C-/C++-Quelltext

1
2
3
4
5
6
case (4):
    {
         Speichern_Highscore (&Highscore_Spieler1,&Highscore_Spieler2,&Highscore_Pc);


     } break;


Ich habe das ganze mal bei case (4) eingesetzt (ohne die if bedigung) und da gehts.

Porblem 2:
Ich habe eine Funktion die ,die Spielränge bestimmt und ausgibt.

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
11
12
//Rang bestimmen

    if ((Spielzeit < 0) && (Spielzeit<10))
    Rang=0;

    else if ((Spielzeit > 10) &&(Spielzeit<30))
    Rang=1;

    else if ((Spielzeit > 30) && (Spielzeit<60))
    Rang=2;

    else if (Spielzeit > 60)
    Rang=3;



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
//Rang anzeigen


    switch (Rang)
    {
    case (0):
        {
            system("cls");
            cout<<"Sie haben keinen Rang erreicht"<<endl;
            cout<<"[1] fuer zurueck"<<endl;
            cin>>Auswahl;
        }

     case (1):
        {
            cout<<"Sie haben den Rang als Downloader erreicht"<<endl;
            cout<<"[1] fuer zurueck"<<endl;
            cin>>Auswahl;
        }


    case (2):
        {
            cout<<"Sie haben den Rang als Gamer erreicht"<<endl;
            cout<<"[1] fr zurueck"<<endl;
            cin>>Auswahl;
        }
 
     
    case (3):
        {
            cout<<" Sie haben den Rang als Zocker erreicht"<<endl;
            cout<<endl<<endl;
            cout<<"Ihnen steht die Cheatkonsole zuverfügung"<<endl;
            cout<<"[1]Starten"<<endl;
            cout<<"[2]Zurueck"<<endl;
            cin>>Auswahl;
        } 



Ja und immer wenn ich was eingebe also "Auswahl" springt er weiter zum nächsten Rang. Liegt es vieleicht am cin? Weil im Hautmenue gehts ja.

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

2

24.11.2008, 16:33

Problem1:
Wo sind die Zeiger deklariert und wo steht die If-Anweisung mit dem fehlerhaften Code?

Problem2:
Da fehlen einige break.
@D13_Dreinig

K-Bal

Alter Hase

Beiträge: 703

Wohnort: Aachen

Beruf: Student (Elektrotechnik, Technische Informatik)

  • Private Nachricht senden

3

24.11.2008, 17:27

Quellcode

1
2
3
//Rang bestimmen
    if ((Spielzeit < 0) && (Spielzeit<10))
    Rang=0;


Hat zwar nicht wirklich was mit deinem Problem zu tun, aber wenn Spielzeit < 0 true ist dann ist Spielzeit < 10 erst recht erfüllt.

Errschaffer

Alter Hase

  • »Errschaffer« ist der Autor dieses Themas

Beiträge: 865

Wohnort: Frankfurt

  • Private Nachricht senden

4

25.11.2008, 16:53

Zitat von »"David_pb"«

Problem1:
Wo sind die Zeiger deklariert und wo steht die If-Anweisung mit dem fehlerhaften Code?

Problem2:
Da fehlen einige break.

Also ich will die Funktion inerhalb der Funktion Spielrang aufrufen.
Naja und die Zeiger werden in beid en Protoypen erstellt.

Meinst du das?

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

5

25.11.2008, 16:57

Zeig mal den Code dazu.
@D13_Dreinig

Errschaffer

Alter Hase

  • »Errschaffer« ist der Autor dieses Themas

Beiträge: 865

Wohnort: Frankfurt

  • Private Nachricht senden

6

25.11.2008, 17:16

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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
void Spielrang ()
{ 
    
    int Auswahl=0;
    

    
    
    
    //Rang bestimmen

    if ((Spielzeit < 0) && (Spielzeit<10))
    Rang=0;

    else if ((Spielzeit > 10) &&(Spielzeit<30))
    Rang=1;

    else if ((Spielzeit > 30) && (Spielzeit<60))
    Rang=2;

    else if (Spielzeit > 60)
    Rang=3;

    

    
    

    //Rang anzeigen


    switch (Rang)
    {
    case (0):
        {
            system("cls");
            cout<<"Sie haben keinen Rang erreicht"<<endl;
            cout<<"[1] fuer zurueck"<<endl;
            cin>>Auswahl;
        }break;

     case (1):
        {
            cout<<"Sie haben den Rang als Downloader erreicht"<<endl;
            cout<<"[1] fuer zurueck"<<endl;
            cin>>Auswahl;
        }break;


    case (2):
        {
            cout<<"Sie haben den Rang als Gamer erreicht"<<endl;
            cout<<"[1] fr zurueck"<<endl;
            cin>>Auswahl;
        }break;
 
     
    case (3):
        {
            cout<<" Sie haben den Rang als Zocker erreicht"<<endl;
            cout<<endl<<endl;
            cout<<"Ihnen steht die Cheatkonsole zuverfügung"<<endl;
            cout<<"[1]Starten"<<endl;
            cout<<"[2]Zurueck"<<endl;
            cin>>Auswahl;
        } break;

    default:
        {
            cout<<"Error"<<endl;
            Timer ();
        } 
       
    }//Switch



    //Nun die Auswhal verwzeigen zum Starten der Cheatkonsole oder für zurück

    if ((Auswahl==1) && (Rang==3))
    {
          Cheatkonsole (&Highscore_Spieler1,&Highscore_Spieler2,&Highscore_Pc);

    }

    else if (Auswahl==2)
    {
        //Zurück zum Hautmeü

    
    }

    else

    {
        cout<<"Error"<<endl;
        Timer ();
    }


}


Ich weiss das mit der Eingabe der Zahlen ist noch unlogisch aber hatte gestern keine lust mehr.

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

7

26.11.2008, 06:48

Ja, aber WO sind Highscore_Spieler1 usw. den deklariert? Ich sehe das hier nirgendwo. Sind das globals?

Dann wäre auch noch die exakte Fehlermeldung + exakte Position im Code hilfreich.

Errschaffer

Alter Hase

  • »Errschaffer« ist der Autor dieses Themas

Beiträge: 865

Wohnort: Frankfurt

  • Private Nachricht senden

8

26.11.2008, 16:59

Naja ich weiss nicht wie ich das erklären soll, ich hab jetzt keine feste Stelle im Code wo der zeiger erstellt wird. Die Zeiger werden bei den Prototypen erstellt.

Die Fehler dritt im oben geposteten Code bei der If bedigung auf wo ja die Cheatkonsole aufgerufen werden soll.

Fehler Meldung:
1>e:\porgrammieren\c++\projekte\tic-tac-toe\tic-tac-toe\main.cpp(966) : error C2065: 'Highscore_Spieler1': nichtdeklarierter Bezeichner
1>e:\porgrammieren\c++\projekte\tic-tac-toe\tic-tac-toe\main.cpp(966) : error C2065: 'Highscore_Spieler2': nichtdeklarierter Bezeichner
1>e:\porgrammieren\c++\projekte\tic-tac-toe\tic-tac-toe\main.cpp(966) : error C2065: 'Highscore_Pc': nichtdeklarierter Bezeichner

9

26.11.2008, 18:12

zeigs doch einfach ;)

Errschaffer

Alter Hase

  • »Errschaffer« ist der Autor dieses Themas

Beiträge: 865

Wohnort: Frankfurt

  • Private Nachricht senden

10

26.11.2008, 18:26

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
//Prototypen

int Menue ();
void SpielenM (int *pHighscore_Spieler1,int *pHighscore_Spieler2,int *pHighscore_Pc);
void SpielenKI (int *pHighscore_Spieler1,int *pHighscore_Spieler2,int *pHighscore_Pc);
void Feldloeschen ();
void Feldzeichnen_M ();
void Feldzeichnen_KI();
void Spielernamen ();
void Pruefen_Spieler1();
void Pruefen_Spieler2();
void Pruefen_Pc ();
void Pc_Zug();
void Timer ();
void Info ();
void unentschieden ();
void Highscore (int *pHighscore_Spieler1,int *pHighscore_Spieler2,int *pHighscore_Pc);
void Speichern_Highscore (int *pHighscore_Spieler1,int *pHighscore_Spieler2,int *pHighscore_Pc);
void Laden_Highscore (int *pHighscore_Spieler1,int *pHighscore_Spieler2,int *pHighscore_Pc);
//funktionen nur für die Spielränge

void zeit_beginn ();
void zeit_ende ();
void berechne_gespielte_zeit();
void Speichern_Zeit ();
void Laden_Zeit ();
void Spielrang ();
void Cheatkonsole (int *pHighscore_Spieler1,int *pHighscore_Spieler2,int *pHighscore_Pc);


Das ist die Stelle wo die Zeiger dekalriert werden

Werbeanzeige