schiffe versenken
-
ich versuche das spiel schiffe versenken zu programmieren(in C). Doch heute morgen ist mir aufgefallen, das ich zwar schiffe auf die meisten koordinaten setzen kann, aber beim Buchstaben h ist das ganze immer um einen Kaste nach unten verschoben.
Falls jemand Zeit hat könnte er mir vieleicht mal den Code durchgehen, wäre sehr dankbar dafür
um folgende funktionen gehts:
// <----------------------------------------------------------------------------------------- void zweierschiff() { int ykoor,feldnummer1,feldnummer1old=0,z=0; char xkoor; do{ do{ GoTo(1,40); printf("Gib Koordinaten ein(2er Schiff)"); GoTo(17,41); printf(" \n\n "); GoTo(1,41); printf("X/Y-Koordinate: "); xkoor=getchar(); scanf("%i",&ykoor); fflush(stdin); GoTo(1,43); if(!((toupper(xkoor)=='A'||toupper(xkoor)=='B'||toupper(xkoor)=='C'||toupper(xkoor)=='D'||toupper(xkoor)=='E'||toupper(xkoor)=='F'||toupper(xkoor)=='G'||toupper(xkoor)=='H')&&ykoor>0&&ykoor<9)) { printf(">>Error! Ung%cltige Koordinaten",129); getchar(); } }while(!((toupper(xkoor)=='A'||toupper(xkoor)=='B'||toupper(xkoor)=='C'||toupper(xkoor)=='D'||toupper(xkoor)=='E'||toupper(xkoor)=='F'||toupper(xkoor)=='G'||toupper(xkoor)=='H')&&ykoor>0&&ykoor<9)); feldnummer1=umwandeln(xkoor,ykoor); if(feldnummer1old==0) { feld1[feldnummer1]=1; schiffezeichnen_feld1(); feldnummer1old=feldnummer1; } else { if(feldnummer1old-1==feldnummer1||feldnummer1old+1==feldnummer1||feldnummer1old-8==feldnummer1||feldnummer1old+8==feldnummer1) { feld1[feldnummer1]=1; schiffezeichnen_feld1(); z=1; } } }while(z==0); } // <----------------------------------------------------------------------------------------- int umwandeln(char xkoor, int ykoor) { int cnt,feldnummer; char buchstabe[9]; int ziffer[8]; strcpy(buchstabe,"ABCDEFGH"); for(cnt=0;cnt<8;cnt++) { ziffer[cnt]=cnt+1; } for(cnt=0;cnt<8;cnt++) { if (buchstabe[cnt]==toupper(xkoor)) { feldnummer=cnt+1; } } for(cnt=0;cnt<8;cnt++) { if (ziffer[cnt]==ykoor) { feldnummer=feldnummer+(cnt*8); } } return(feldnummer); // Berechnet aus den Koordinaten die Feldnummer } // <----------------------------------------------------------------------------------------- void schiffezeichnen_feld1() { int t; int xkoor; int ykoor; int xvor; int yvor; int z=0; for(t=1;t<65;t++) { if(feld1[t]==1) { yvor=t/8; xvor=xkoordinate(t); xkoor=3+(xvor*4); ykoor=2+(yvor*3); GoTo(xkoor,ykoor); printf("X"); } } }
feld1 ist ein globales array
ich hoffe das alles wichtige hier steht, sonst häng ich dann den gesamten code dran!
Vielen Dank schon für jeden Tipp
-
Ich glaube, du hast mehr Glück, wenn du deine Code-Beispiele nochmal mit den entsprechenden Tags setzt.
void main() { }
Ansonsten ist mir das nämlich auch zu mühselig das zu lesen...
Nichts für ungut.
-
hmm, wie kann ich das aus visual studio rauskopieren, damit man die tag sieht?
-
habs jetzt doch gefunden..