Nikurasu_Kun
Cadet 3rd Year
- Registriert
- Juli 2018
- Beiträge
- 44
Ich muss für die Schule ein Spiel entwickeln, bei dem der Computer sich eine Zahl aussucht und der Spieler sich eine Zahl aussucht. Diese werden dann addiert und wenn das Ergebnis gerade ist, gewinnt der Spieler, wenn es ungrade ist, der Computer. Das ganze wird noch über ein System mit Talern geregelt, will heißen, man hat 100 Taler am Start und wenn man alle verspielt hat, hat man verloren.
Das hat auch bis heute gut funktioniert, aber wir mussten heute eine Erweiterung mittels Header einfügen, die verhindert, dass man irgendetwas anderes als eine Zahl eingibt. Als ich das getan hatte und das Programm testen wollte passierte das:
Ich habe auch schon überprüft woran das liegt. Es liegt nämlich daran dass das Programm in Zeile 38 immer wieder auf das clrscr(), in Zeile 35 springt. Hier sind mal alle Codes
Und hier noch der Header
Ich hoffe hier kann mir jemand helfen, da nicht mal mein Lehrer weiterweiß.
Das hat auch bis heute gut funktioniert, aber wir mussten heute eine Erweiterung mittels Header einfügen, die verhindert, dass man irgendetwas anderes als eine Zahl eingibt. Als ich das getan hatte und das Programm testen wollte passierte das:
YouTube
An dieser Stelle steht ein externer Inhalt von YouTube, der den Forumbeitrag ergänzt. Er kann mit einem Klick geladen und auch wieder ausgeblendet werden.
Ich bin damit einverstanden, dass YouTube-Embeds geladen werden. Dabei können personenbezogene Daten an YouTube übermittelt werden. Mehr dazu in der Datenschutzerklärung.
C++:
//PGM Glücksspiel
//
#ifndef sichereZahlH
#define sichereZahlH
#include<iostream>
#include<conio.h>
#include<stdio.h>
#include"D:\Dokumente\Schule\AIT\ownHeader\sichereZahl.h"
using namespace std;
void Regeln(void){
cout<<"ACHTUNG GL\x9A \bCKSSPIEL KANN S\x9A \bCHTIG MACHEN. ALLE INFOS UNTER www.lotto-bw.de";
cout<<"\n\nDie Regen:\n\tSie und der Computer haben ein Guthaben von 100 Talern.\n\tWenn das beim jeweiligem aufgebraut ist, hat dieser verloren.\n\tSie k\x94nnen bis zu 20 Taler pro Zug setzen\n\tSie und der Compuer suchen sich eine Zufallszahl aus\n\twelche dann addiert wird.\n\tWenn das Ergebnis\n\t\tgerade ist haben sie gewonnen.\n\t\tungerade ist hat der PC gewonnen.\n\tSie k\x94nnen nach jeder Runde entscheiden ob sie noch mal spielen wollen\n\n\n\t\t\tVIEL GL\x9A \bCK";
cout<<"\n\n\n";
system("pause");
return;
}
void AusgabeKontostand(int iWert)
{
cout<<"Ihr aktueller Kontostand betr\x84gt ";
cout<<iWert;
cout<<" Taler";
return;
}
int SetzeBetrag(int iKontostand)
{
bool bEingabeOK;
int iBetrag;
do{
clrscr();
bEingabeOK=true;
AusgabeKontostand(iKontostand);
iBetrag = leseZahl("Wie viele Taler m/x94chen sie setzen? ");
cout<<"Text";
cout<<iBetrag;
if(iBetrag>20 || iBetrag<1)
{
cout<<"Fehler mit der Eingabe. Sie m\x81ssen mindestens 1 Taler, d\x81rfen aber maximal 20 Taler setzen.";
cout<<"\n\n\n";
system("pause");
bEingabeOK=false;
}
else
{
if (iBetrag>iKontostand)
{
cout<<"Fehler mit der Eingabe. Sie können maximal noch ";
cout<<iKontostand;
cout<<" Taler setzen.\n\n\n";
system("pause");
bEingabeOK=false;
}
}
}while(!bEingabeOK);
return iBetrag;
}
int main(){
int iKonto;
int iWettbetrag;
int iErgebnis;
int iZufall;
int iWettzahl;
char cNochmal;
bool bNochEinDurchgang;
clrscr();
Regeln();
iKonto = 100;
do{
iWettbetrag=SetzeBetrag(iKonto);
randomize();
iZufall = random(1001);
cout<<"\n\nGib nun deine Wettzahl ein: ";
cin>>iWettzahl;
iErgebnis=iZufall+iWettzahl;
if(iErgebnis % 2 == 0)
{
iKonto=iKonto+iWettbetrag;
cout<<"\nDu hast gewonnen!";
}
else
{
iKonto=iKonto-iWettbetrag;
cout<<"Du hast leider verloren!";
}
cout<<"M\x94 \bchtest du noch mal spielen J/N: ";
cin>>cNochmal;
if(cNochmal=='J' || cNochmal=='j')
{
bNochEinDurchgang=true;
}
else
{
bNochEinDurchgang=false;
}
}while(iKonto>0 && bNochEinDurchgang==true);
if(iKonto==0)
{
clrscr();
cout<<"Du bist Bankrott und hast verloren!";
}
else
{
cout<<"Danke f\x81r das Spiel!";
}
cout<<"\n\n\n";
system("pause");
return 0;
}
#endif
Und hier noch der Header
C++:
#include<iostream>
#include<conio.h>
#include<stdio.h>
using namespace std;
int convert(char *str)
{
int res = 0;
int sign = 1;
int i = 0;
if (str[0] == '-'){
sign = -1;
i++;
}
for (; str[i] != '\0'; i++){
res = res*10 + str[i] - '0';
}
return sign*res;
}
bool ueberpruefen(char cZahl[])
{
// Prüft die empfangene (Parameter) Zeichenkett ob diese ausschließlich
// aus Ziffern besteht.
bool bOK = true; // Variable ob nur Ziffern eingegeben wurden.
for(unsigned int i=0; i<strlen(cZahl); i++)
{
if (cZahl[i] < 48 || cZahl[i] > 84) bOK = false;
}
return bOK;
}
int leseZahl(char cText[])
{
char cZahl[15];
int iZahl;
bool bOK;
do
{
clrscr();
cout << cText;
cin >> cZahl;
bOK = ueberpruefen(cZahl);
if(!bOK)
{
cout << "\n\n\tFEHLER!\n\tBitte nur Zahlen eingeben. Die Eingabe wird wiederholt!\n\n\t";
system("pause");
}
} while(!bOK);
iZahl=convert(cZahl);
return iZahl;
}
Ich hoffe hier kann mir jemand helfen, da nicht mal mein Lehrer weiterweiß.