Du kannst das über Low-Level-Input-Funktionen machen. Dafür benötigst du die <windows.h>
Zuerst musst du mit GetConsoleInputRecord() eine Struktur vom Typ INPUT_RECORD füllen. Ist das geschehen, musst du prüfen ob der Record vom Typ MOUSE_EVENT_RECORD ist.
Falls ja kannst du über die enthaltene Struktur "Event" Daten bekommen, wie und ob die Maus gedrückt wurde.
Achtung!: Falls es kein MOUSE_EVENT war, gibt es leider keinen Weg den Record wieder zurück in den Puffer zu bekommen. Er ist grundsätzlich mal gestorben!
Sieh dir dazu auch den Beitrag aus der FAQ an, welcher allerdings auch Keyboard-Eingabe verwaltet.
In der MSDN (findest du ja auch online) gibts Beispielfunktionen/programme dazu.
MfG SideWinder
hmm..
hast Du es mal mit der curses.h probiert (gcc)
oder mit der conio.h (borland)??
Diese Constream sagt mir ganrix.. ist wahrscheinlich kein ANSI..
cYa
DjR
Man lebt mit ofstream wirklich gut.
Ist sich schnell und angenehm.
WriteFile muß man eigentlich nie anfassen.
Treibt einen der Spieltrieb, sollte man an CreateFileMapping denken.
Der Zeichensatz bei qbasic ist aber der erweiterte ASCII zeichensatz, und nicht der ansi. Der ANSI-zeichensatz hat heine Blockgrafiken mehr, stattdessen liegen dort nationale zeichen wie Â,Ó oder ê.
Laut Petzold heißt der Zeichensatz offiziell "ANSI/ISO 8859-1-1987".
btw:
Der ASCII-zeichensatz definiert nur 7bit große zeichen.
Wenn Tastendruck: Automatisches Schließen verhindern.
Wenn Zeit: Pause-Funktion bzw. Warte-Funktion.
Alles in der Konsolen-FAQ.
Thread closed.
MfG SideWinder
@Kiamur: Es ist z.B. auch möglich ein 32bit-Unix-Programm zu erstellen. Ob es auf Windows läuft ist eine andere Frage ;).
DJGPP ist letztlich wahrscheinlich der richtige Compiler für dich.
MfG SideWinder
@Lars Skiba: system() ist keine sehr gute Lösung ... ähm ... ist eine sehr schlechte Lösung. Das Problem ist, dass system() von der Konsole ausgewertet wird (aber nicht jede Konsole muss "PAUSE" als Befehl für "Warte auf Tastendruck" kennen). Zweites Problem: Sehr langsam, da es eben erst von der Konsole ausgewertet werden muss.
MfG SideWinder
Was genau weißt du nicht, wie du zufällig ein Feld bestimmst (schau mal in der ANSI-C-FAQ nach Zufallszahlen) oder wie man das Feld farbig macht (schau mal in der Konsolen-FAQ (im Index) nach Farben).
MfG SideWinder
Hallo!
Wie wäre es, wenn du bei den case noch die klammern setzen würdest???
Also so:
case 0:
{
cout<<"\nWelche Karte willst du spielen?"<<endl;
cin>>karte;
spiel.karteSpielen(karte, 2);
break;
}
case 1:
{
cout<<"\nDu kannst keine Karte legen...*du ziehst eine Karte*"<<endl;
spiel.karteZiehen(2);
cout<<endl;
spiel.hand(2);
if(spiel.returnGehtNicht()==0)
{
cout<<"\nWelche Karte willst du spielen?"<<endl;
cin>>karte;
spiel.karteSpielen(karte, 2);
};
break;
}
case 7:
{
cout<<"\nDu musst "<<spiel.returnSieben()<<" Karten ziehen!\n"<<endl;
for(int i=0;i<spiel.returnSieben();++i)
spiel.karteZiehen(2);
break;
}
case 8:
{
cout<<"\nDu musst eine Runde aussetzen!"<<endl;
//Hier eventuell noch break; rein!
}