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

Seite 1 von 1 - Forum: Coding Stuff auf overclockers.at

URL: https://www.overclockers.at/coding-stuff/problem_bei_c_aergeres_anfaengerproblem_67999/page_1 - zur Vollversion wechseln!


Killer00 schrieb am 19.02.2003 um 18:38

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 schrieb am 19.02.2003 um 20:37

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 schrieb am 20.02.2003 um 04:24

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 schrieb am 20.02.2003 um 04:29

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 schrieb am 20.02.2003 um 09:06

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 schrieb am 20.02.2003 um 14:24

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




overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025