"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

problem bei c++ (ärgeres anfängerproblem)

Killer00 19.02.2003 - 18:38 699 5
Posts

Killer00

Big d00d
Avatar
Registered: Jun 2002
Location: amstetten rulez
Posts: 247
Ich hab ein problem.
es soll ein zahlerate spiel werden.
nur ihrgendwas funktioniert noch nicht richtig.
man soll den schwierigkeitsgrad wählen können (zwischen 1-100)
je nach schwierigkeitsgrad wird eine zufalls zahl wischen 1-100 genommen die du dann erraten musst.
der computer hilft dir nach jedem tip indem er dir sagt ob die zufallszahl größer oder kleiner ist.
Nur das funktioniert was nicht.
BITTE HERLF MIR.
ich ertrete meinem compiler bald.

Zitat

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <dos.h>
#include <stdio.h>

void main()

{ char zeichen;
int SWG, zahl1, zahl2;
do
{
clrscr();
printf("Herzlich willkommen beim Ratespiel");
sleep(2);
getch();
clrscr();
printf("\n\n\nW„hlen sie eine Schwierigkeitsstufe von 1-100");
cin>>SWG;

randomize();
zahl2=rand()%SWG;
zahl2=zahl2+1;
}

while (SWG>100||SWG<1);
{
clrscr();
printf ("Ungltige Schwierigkeitsstufe, bitt eine Stufe zwischen 1-100 eingeben");
cin>>SWG;
}

do
{
clrscr();
cout<<"Bitte geben sie ihren Tipp (Zahl von 1 bis "<<SWG<<") ein";
cin>>zahl1;
}

while (zahl1>SWG);
{
clrscr();
printf("Ihr Tipp muss eine Zahl von 1-%d Sein!!!",SWG);
printf("\n\n\nBitte eine gltige Zahl eingeben!!");
cin>>zahl1;
}


if (zahl2==zahl1)
{
clrscr();
printf("Du hast richtig geraten!!");
cout<<"\n\n\nDie gesuchte Zahl war"<<zahl2;
printf("\n\n\nNeuer Versuch? (J/N)");
zeichen=getche();
getche();
}

else
{

clrscr();
printf("Ihr tipp war leider nicht richtig");
if (zahl1<zahl2)

{
cout<<"\n\n\nDie Zahl w„re gr”áer geweáen als"<<zahl1<<"gewesen. ";
printf("\n\n\nVERSUCHS EINFACH NOCHMAL!!!");

}
else if (zahl1>zahl2)
{
cout<<"\n\n\nDie Zahl w„re kleiner als "<<zahl1<<" geweáen";
printf("\n\n\nVERSUCHS EINFACH NOCHMAL!!!") ;
}
}

while (zahl1!=zahl2);


while(zeichen=='j');
}





:D:D:D

that

Moderator
Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11338
Zitat von Killer00
Ich hab ein problem.
nur ihrgendwas funktioniert noch nicht richtig.
Nur das funktioniert was nicht.
BITTE HERLF MIR.
ich ertrete meinem compiler bald.

Entferne systematisch Codeteile und finde dadurch das Problem. Dann entferne das Problem. :)

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
in dem ding scheint es gleich an mehreren stellen sehr seltsame sprachkonstrukte zu geben, bei der die gruppierung darauf hindeutet, daß du sie anders meinst, als du sie hingeschrieben hast zb:
Code:
 do
{
clrscr();
cout<<"Bitte geben sie ihren Tipp (Zahl von 1 bis "<<SWG<<") ein";
cin>>zahl1;
}

while (zahl1>SWG);
{
clrscr();
printf("Ihr Tipp muss eine Zahl von 1-%d Sein!!!",SWG);
printf("\n\n\nBitte eine g?ltige Zahl eingeben!!");
cin>>zahl1;
}
man währe dazu verleitet, das while dem zweiten code-block zuzuordnen, was aber nicht der fall ist!
es gibt entweder die fußgesteuerte schleife
do <Anweisung> while (bedingung);
oder die kopfgesteuerte
while (bedingung) <Anweisung>

dein konstrukt
Code:
do {...} while (..); {...}
<-------1---------->
                    <--2-->
ist eine fußgesteuerte schleife (1) mit einem zusätzlichen codeblock (2) dahinter. ich glaub nicht, daß das so gemeint war. du hast das gleich mehrmals ähnlich verwendet.

atrox

in fairy dust... I trust!
Avatar
Registered: Sep 2002
Location: HTTP/1.1 404
Posts: 2782
PS: du weißt eh, daß es eine totsichere methode bei deinem spiel gibt, bei der man bei der schwierigsten spielstufe maximal 7 schritte braucht, um jede beliebiege zahl zu erraten ?

moidaschl

Vollzeit-Hackler
Avatar
Registered: Aug 2002
Location: 1210, ABK-D/L
Posts: 4029
Zitat von atrox
PS: du weißt eh, daß es eine totsichere methode bei deinem spiel gibt, bei der man bei der schwierigsten spielstufe maximal 7 schritte braucht, um jede beliebiege zahl zu erraten ?
k 1) wenn du printf machst, dann mach auch scanf
oder hald cin, cout !
2) du hast unnötig bibliotheksdateien eingebunden!
3) welchen compiler hast du?
4) top-down methode anwenden ( ich hoff du weist was des is)
5) unterprogramme mit rückgabewerten erleichtern die lesbarkeit
( falls du die schon kannst! )
6) mach immer nur teile und lass sie laufen.. wenn die gehn mach des nächste!

du wirst sehn du kommst von alleine drauf!

Killer00

Big d00d
Avatar
Registered: Jun 2002
Location: amstetten rulez
Posts: 247
Hmmmm
ok vielen dank für die tips.
bin ein ziemlicher anfänger was C++ betrifft.

Ich werd das ding jetzt von grundauf nochmal neu schreiben und dabei eure tips befolgen.

:D:D:D
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz