Grafisches/Feststehendes Feld in Konsole erzeugen
-
Hallo,
In Spielen wie z.B. Snake benötigt man ja ein abgegrenztes Feld, in dem sich die Schlange bewegen kann:
######################################################## # # # # # # # # # # # # # # # # # # # # ########################################################
Wie erzeugt man denn ein solches?
Ich meine, einfach mit folgender Zeile ist zwar sowas grafisch erledigt, aber trotzdem fehlen mir dann doch noch die entsprechenden Koordinaten, oder?#include <iostream> using namespace std; int main() { cout << ########################################### << endl; cout << # # << endl; // ... und so weiter return 0; }
Es wäre schon hilfreich für mich den Quellcode eines Snakespiels (mit Konsole realisiert) mal zu sehen. Mit Google hab ich lediglich welche mit DirektX gefunden, oder in einer anderen Programmiersprache als C++
Vielen Dank schonmal
NewProggie
-
Mit reinem C kommst du hier nicht weit, aber in den meisten Systemen gibt es Spezialbibliotheken zur Konsolensteuerung (unter anderem auch hier im Board die "Improved Console" auf WinAPI-Basis).
-
wenn du so einen rahmen gemacht hast nimmst du halt bestimmte feste abstände und greift über ein 2d array drauf zu, wenn w gedrückt wird ein array -1 usw. das wäre ziemlich "schlecht" gemacht würde aber gehen
[0][1] [0][2] [0][3] [0][4] [0][5] [0][6] [0][7] [0][8]
[1][1]//hups 0,0 vergessen aber egal
-
#include <stdio.h> #include <stdlib.h> #include <conio.h> int main(int argc, char *argv[]) { int i, j, iWidth, iHeight, iCurrentHeight; iCurrentHeight = 1; printf("Bitte Werte eingeben, ( Hoehe, Breite )\n"); scanf("%d",&iHeight); scanf("%d",&iWidth); clrscr(); for(i = 1; i <= iHeight; i++) { if( (iCurrentHeight == 1) || (iCurrentHeight%iHeight == 0)) { for(j = 1; j <= iWidth; j++) { printf("#"); } printf("\n"); } else { gotoxy(1,iCurrentHeight); printf("#"); gotoxy(iWidth,iCurrentHeight); printf("#\n"); } iCurrentHeight++; } getch(); }
Ich hoffe das hilft dir ein wenig ..
Jetzt fehlt nur noch ein 2d Array für die Funktionalität aber das ist eine andere Geschichte ..Grüße eF