Zeichen an position lesen
-
Hallo Leute!
Ich will mir gerade ein Sufdoku spiel programmieren habe aber folgendes Problem:
Für das Programm müsste ich an einer Bestimmten x/y Koordinate ein Zeichen einlesen. d.h. Das Programm soll zur x/y Position gehen schauen ob dort eine Zahl steht wenn ja dan welche und diese in einen Array schreiben. Ich habe aber keine Ahnung wie ich das genau machen soll bite um Hilfe
-
Möchte mal annehmen dass die Zeichen dort nicht von selbst erscheinen. Möchte sagen dass dein Programm sie dort hinschreibt. Also sollte es genügen wenn du dir merkst was du an eine bestimmte Stelle geschrieben hast.
Kurt
-
so habe ich das auch schon Probiert habe aber dann das Problem das wenn ich den Input (ch) einfach in ein feld schreibe das ich auch die Steuerung in das Feld reinbekomme:
//---------------------------------Steuerung-------------------------------- ch = getch(); switch (ch){ case '1' : printf ("1"); break; case '2' : printf ("2"); break; case '3' : printf ("3"); break; case '4' : printf ("4"); break; case '5' : printf ("5"); break; case '6' : printf ("6"); break; case '7' : printf ("7"); break; case '8' : printf ("8"); break; case '9' : printf ("9"); break; default : { if (ch == 'a' && x > 26) x = x - 4; if (ch == 's' && y < 36) y = y + 4; if (ch == 'd' && x < 58) x = x + 4; if (ch == 'w' && y > 10) y = y - 4; }//default }//switch gotoxy (x,y); //----------------------------------Steuerung Ende--------------------------
-
Um das ganze zu präzesieren:
Ich benötige einen Befehl der prüft welches Zeichen an der aktuellen Cursorposition steht. Hoffe das es so was überhaupt gibt
-
Es geht sicher, wenn du tief genug im Konsolenpuffer gräbst
Aber einfacher dürfte es sein, wenn du dir ein 9*9 Array mit Zahlen anlegst und dort nachsiehst, was an der aktuellen Stelle steht.
btw, deine switch-Konstruktion sieht etwas merkwürdig aus
switch (ch){ case '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9': printf ("%c",ch); break; case 'a': if(x>26) x-=4;break; case 's': if(y<36) y+=4;break; case 'd': if(x<58) x+=4;break; case 'w': if(y>10) y-=4;break; }
-
Das klingt nach ner Guten lösung werds gleich mal probieren, Danke!!
nfg
Bauarbeiterjoe