HILFE - Zufallszahlen - Komische Symbole

sorry, hatte es glaub ich übersehen..aber jetzt rechnet er es richtig! danke dir!
sag mal, gibt es eine möglichkeit die zufallszahlen zu sehen und die beim tastendruck anzuhalten
also wenn ich taste drücke, soll das ding los laufen (0-9 und abc) anzeigen, sobald eine nächste taste gedrückt wird, soll die anzeige stoppen und in das näcchste feld gehen.
hättest da ne idee

aber vielen dank nochmals für die hinweise, man lernt immer dazu!!
 
Schon, aber da müsstest du dein Programm ziemlich umstrukturieren
Das Wichtigste dran ist eine Funktion kbhit(), die Findet heraus, ob eine Taste gerückt wurde
Den Wert kannst dann mit getch bekommen

while(!kbhit()){...}
Und dadrin immer eine neue Zufallszahl holen und ausgeben...Sobald eine Taste gedrückt wurde
wird die Schleife beendet...Aber wie gesagt, da musst du einiges ändern

Hmmm...Ich werd dir ein Beispiel schreiben, kommt dann später
 
kbhit() kam mir auch in den kopf...und sleep(400) (sind 400ms oder) so das man es kurz anhält wenn die zahlen los laufen und man überhaupt was sieht.
ich versuch das auch mal...wenn du was geschrieben hast oder tips hast, kannst ja posten.
danke!

gruß
manda
 
Mir fällt gerade auf, ich weiß nicht welches Betriebssystem du hast
Hier eine Lösung für Windows:

Ich hab jetzt alle Änderungen mit // versehen
C++:
void spielStarten(void)
{
                     HANDLE han=GetStdHandle(STD_OUTPUT_HANDLE);//Zeile neu
                     DWORD nix;//
                     COORD pos;//
                     char hstr[2];//
                     hstr[1]='\0';//
	char zeichen[3] = { '0', '0', '0' };
	int i = 0;
	int j = 0;
	char eingabe = 0;
	int punkte = 0;

	printf("-------------------");
	printf("\n|");
	
	for(i=0; i<3; i++)
	{
		printf("%3c  |", zeichen[i]);
	}
	printf("\n-------------------");
	printf("\n(Dr\201cken Sie eine beliebige Taste)");
	printf("\n\n");		
		
	i = 0;
	eingabe = getch();	
	//Hier ist ein Teil herausgenommen, dafür der Block unten neu
                     for(i=0;i<3;i++)
                     {//Hier die ... durch Koordinaten von den drei ausgegebenen Nullern 
                      //ersetzen, muss man halt ausprobieren
                       if(i==0){pos.X=...;pos.Y=...;}
                       if(i==1){pos.X=...;pos.Y=...;}
                       if(i==2){pos.X=...;pos.Y=...;}
                       while(!kbhit())
                       {
                         (*hstr)=zeichen[i]=getZeichen();
                         WriteConsoleOutputCharacter(han,hstr,1,pos,&nix);
                       }
                     }
                     //Neu-Block Ende
	punkte = berechneErgebnis(zeichen[0], zeichen[1], zeichen[2]);
	printf("\n\n");
	printf("Ihre Punkte: %d", punkte);
}
Bei den ... musst du halt die Koordinaten herausfinden und einsetzen

Hab das ganze nicht getestet, sollte aber laufen
Sonst melde dich halt nocheinmal
 
boa ey ... da sind sachen drin die ich überhaupt nicht kenne...
achja, hab ein windows BS
kannst du mir das mal erklären:
HANDLE han=GetStdHandle(STD_OUTPUT_HANDLE);//Zeile neu
DWORD nix;//
COORD pos;//
char hstr[2];//
hstr[1]='\0';// HIER gibt er einen Fehler aus
sollte da auch ein char vor dann hats aber den gleichen namen, oder meinst du es so: char hstr1[1] = {'\0'};

und das noch bitte erklären:
if(i==0){pos.X=...;pos.Y=...;}
if(i==1){pos.X=...;pos.Y=...;}
if(i==2){pos.X=...;pos.Y=...;}
könntest du ein bsp mal geben wie du es meinst, mit nullern ersetzen
muss da erstmal bisschen durch steigen :confused:

aber danke erstmal!!
 
Wegen dem Cmpilerfehler bin ich komplett ratlos...
Schreib statt der Zeile einmal ein
strcpy(hstr,"a");
Hatt auch den gleichen Effekt

Und wegen den Punkten: Schreib einmal an allen 6 Stellen 0 rein und dann Starte das Programm

Wenn Er zum Durchlaufen anfangt, macht er das jetzt nicht bei der der ersten von den 3 Zahlen, sondern in der linken oberen Ecke
Und je höher der Y-Wert ist, den du bei if(i==0) einträgst, desto tiefer macht er das ganze
Und der X-Wert verschiebt das ganze nach rechts
Und da hab ich gemeint, dass du ein paar Werte ausprobierst, bis es genau an der passenden Stelle (bei der Ersten Zahl, die das printf oben ausgegeben hat) das ganze macht
Beim i==1 und i==2 ist das gleiche dann für die 2. und 3. Zahl
 
ok habs verstanden...ich probiers mal...
er zeigt ganz oben links schon mal was an, das schon mal gut lol
allerdings, beim nächsten tasten druck ist das programm gleich zu ende...
liegt das am kbhit()

trotzdem großes danke!
 
Ich hab was vergessen...in das while(!kbhit()) hinein kommen noch zwei Sachen:
getch();Sleep(400);

So...
 
danke für die hilfe...ich mach das noch fertig und ergänz das noch um ein paar sachen...
schöne grüße

manda
 
Zurück