TIC TAC TOE Spielfeld mit 2Dimensionalem Array ausgeben
-
Hallo, ich gebe offen zu das ich Hilfe bei meinen Hausaufgaben benötige!
Ich soll ein Tic Tac Toe Sielfeld, mithilfe eines 2Dimensionalen Arrays ausgeben. Das Feld soll in etwa so aussehen:
11 12 1321 22 23
31 32 33
Und man muss nacher jedes Feldelement einzeln ansprechen können.
Und das ihr seht das ich auch schon was probiert habe, hier mein erster (nicht erfolgreicher) Versuch:#include <conio.h> #include <stdio.h> void main() { int array[3][3]; int zeilen = 0, spalten = 0; for(zeilen = 0; zeilen < 3; zeilen++) for(spalten = 0; spalten < 3; spalten++) printf(" %i %i ", array[zeilen][spalten]); getch(); }
Danke, mfG, Anfänger01
-
hi,
also eines verstehe ich bei deiner loesung nicht:
wieso schreibst du bei deiner printf-ausgabe 2x das %i wenn du nur eine zahl ausgeben willst?
versuchs mal so:
#include <conio.h>
#include <stdio.h>void main()
{
int array[3][3];
int zeilen = 0, spalten = 0;for(zeilen = 0; zeilen < 3; zeilen++) {
printf("\n");
for(spalten = 0; spalten < 3; spalten++)
printf("%i ", array[zeilen][spalten]);
}
getch();
}das sollte das machen was du willst.
-
@mspNö, leider gibt es net das aus was ich will:
Ausgabe:
0 4202502 4199005
844554353 0 4202572
2147348480 844745036 1Es soll die Zahlen 11,12,13,21,22,23,31,32,33 in 3 reihen und 3 spalten ausgeben.
Danke, mfG, Anfänger01
-
hi,
klar gibt es das noch nicht aus was du willst, du musst ja erstmal den feldelementen einen wert zuweisen. momentan nimmt er den wert der in der speicheradresse von dem feldelement steht. deine aufgabe ist es sowas wie:
array[0][0]=11;
array[0][1]=12;
...zu machen, sprich werte zuweisen.
-
Kann man die Werte dem Array nicht irgendwie mit einer Schleife zuweisen, ansatt jede Zuweisung einzeln zu schreiben?
mfG, Anfänger01
-
hi,
klar kann man das, is aber dir ueberlassen, weis ja nicht wie du es haben willst. es geht auch so:
ersetze "int array[3][3];" durch
"int array[3][3]={11,12,13,21,22,23,31,32,33};"is das einfachste.
msp
-
Anfänger01 schrieb:
Hallo, ich gebe offen zu das ich Hilfe bei meinen Hausaufgaben benötige!
Kein Problem, solange aktiv mitgearbeitet wird.
Du lieferst ja auch nen Anfang.Warum nicht einfach so? Über die Koordinaten ist doch schon klar, was ausgegeben wird. Wozu mußt Du das im Feldinhalt noch extra vermerken?
#include <conio.h> #include <stdio.h> void main() { int array[3][3]; int zeilen = 0, spalten = 0; for(zeilen = 0; zeilen < 3; zeilen++) for(spalten = 0; spalten < 3; spalten++) printf(" %i %i ", zeilen+1, spalten+1); getch(); }
Aber eigentlich mußt Du doch nicht die Koordinaten, sondern den Inhalt des Felds (leer, kreuz, kreis) darstellen, oder?
MfG jester
-
Nö, das stimmt schon so, später soll wenn spieler 1 ein feld auswählt eine 1 statt der sich im Feld befindenden Zahl stehen, und für Spieler 2 die 2.
Mein einziges Problem ist noch das die Zahlen in einer Tabelle (3 Spalten und 3 Reihen) ausgegeben werden sollen.(Ein Spielfeld halt). Es soll ungefähr so aussehen:11 12 13 21 22 23 31 32 33
danke, mfg, Anfänger01
-
du musst das array erst initialisieren. Erstmal steht da ja nichts (bzw. Datenmüll) drin. Steht aber eigentlich in jedem C Buch
btw. heisst das int main. void main ist falsch
-
@ kingruedi:
Hast du dir den Thread komplett durchgelesen?
Wieso initialisieren? Das läuft prima so wie es jetzt is. Das Programm gibt die Zahlen aus die ich haben will. Allerdings nicht in der gewünschten Anordnung. Oder verstehe ich dich falsch? Wenn ja bitte ich um ein Beispiel.#include <conio.h> #include <stdio.h> void main() { int array[3][3]; int zeilen = 0, spalten = 0; for(zeilen = 0; zeilen < 3; zeilen++) for(spalten = 0; spalten < 3; spalten++) printf("%i%i\t", zeilen+1, spalten+1); getch(); }
Die Zahlen werden alle in einer Reihe mit Tabulator dazwischen ausgegeben.
es soll aber so aussehen:11 12 13 21 22 23 31 32 33
Wie muss ich den code dafür ändern?
Danke, mfG, Anfänger01
-
hi,
sorry, aber was willst du mit diesem quatsch? hier wird kein feldinhalt ausgegeben sondern nur zahlen. so wuerst du nie dahin kommen wo du hin willst. du benoetigst dein array ja gar nicht mehr, MAL DRÜBER NACHDENKEN.
nimm meine variante von oben und das wird funktionieren.
msp
-
Naja, da ich davon ausgehe, dass dein Programm an noch freien Positionen die Koordinaten ausgeben soll, um eine Tastatureingabe anzubieten, kannst du dir folgendes ja mal als Anregung ansehen:
#include <conio.h> #include <stdio.h> void Print(int (*array)[3]) { for(int zeilen = 0; zeilen < 3; zeilen++, printf ("\n\n")) // Freizeile for(int spalten = 0; spalten < 3; spalten++) if(array[zeilen][spalten]) // Wenn nicht 0, dann Zeichen printf(" %c\t", array[zeilen][spalten] == 1 ? 'X' : 'O'); else // sonst die Koordinaten printf("%i %i\t", zeilen+1, spalten+1); } int main() { int array[3][3] = {0}; // 0 -> leer; 1 -> X; 2 -> O Print(&array[0]); // Array zeichnen getch(); return 1; }
So kannst du nacheinander die Felder mit einsen oder zweien fuellen, und danach wieder zeichnen, viel Glueck...
mfG D1B