-
Hallo zusammen!!
Also ich muss ehrlich sagen dass Programmieren Neuland für mich ist, und ich komm ehrlich net klar...
Also ich muss das Programm Tic Tac Toe über C# programm schreiben..
Also ich muss ehrlich sagen ich habe keine Ahnung wo und wie ich Anfangen soll.. Kann mir da wer bitte helfen, wäre sehr net von euch. Aufgabenstellung häng ich als Anlage mit bei..
Danke schon mal im voraus.
Danke!!
-
hi,
du solltest dir erstmal überlegen wie du intern das spielfeld handeln willst,
ich würde hier ein 2d array vorschlagen.
anschließend brauchst du eine variable (toggle) die angiebt welcher spieler an der reihe ist.
damit solltest du schonmal in der lage sein abwechselnd "O" bzw "X" an bestimmte stellen des Arrays zu schreiben.
nach jeder eingabe musst du überprüfen ob jemand drei in der reihe hat.
da du keine funktionen nutzen darfst, ist es wohl etwas schreibkram.
1. du musst 3 mal alle senkrecht prüfen (schleife)
2. du musst 3 mal alle wagerecht prüfen (schleife)
3. du musst 1 mal diagonal oben links unten rechts prüfen
4. du musst 1 mal diagonal oben rechts unten links prüfen
dies sind 4 verschiedene überprüfungen, du kannst sie nicht zu sammen fassen, zumindest sehe ich das grade nicht.
die überprüfung selbst kannst du mit "&&" machen also einer AND verknüfpfung
if((Array[0,0])&&(Array[1,0])&&(Array[2,0])&&(Array[0,0] == "X"))
so müsste die überprüfung aussehen ob alle in der ersten reihe gleich sind und ob spieler mit X gewonnen hat.
wenn diese überprüfung erfüllt ist, dann den spieler ausgeben wer gewonnen hat, evt noch einen zähler erhöhen und das array wieder mit einer schleife auf irgendwas neutralen setzen damit das spiel von vorne begonnen werden kann.
bei fragen...
gruß
-
Deine Überlegungen sind leider nicht korrekt, da nur ein 1D-Array benutzt werden darf
-
dann eben, gleiche überlegung und ein 1d array mit 9 feldern
-
Danke dass ihr mir geantwortet habt..
Eine blöde frage, was genau bedeutet array, wenn ich fragen darf... Wie gesagt ist Neuland für mich..
-
C# ist also deine erste Programmiersprache?
Und als erstes Programm gleich sowas?
Hast du nicht schon in der Vergangenheit andere Programme zur Übung erstellt, in denen sowas
int[] array=new int[123];
vorkommt?
Bis wann musst du diese Aufgabe eigentlich fertighaben?Geändert von sheel (30.12.10 um 18:07 Uhr)
-
ok?
was hast du den bisher programmiert?
sind die if-anweisungen geläufig?
-
Also zuletzt haben wir strings geübt, aber seit anfang der schleifen tue ich mir schon schwer beim programmieren.. aber sowas wie array haben wir net benutzt...
-
Ja C# ist meine erste Programmiersprache..
Ich muss das heute in 2wochen abgeben...
also ich kenne sowas wie int feld [3]; z.b.
-
hmm ok,
hmm ist das syntaks mässig richtig? egal
also
damit wird eine integer Variable deklariert die genau eine ganze Zahl speichern kann, soweit klar oder?Code :1
int Zahl;
jetzt kommt es vor das mehere Variablen benötigt werden, die aber alle gleiche informationen speichern sollen. in deinem bsp das spiel feld.
nun wäre es möglich 9 verschiedene variablen anzulegen
Code :1 2 3 4 5 6 7 8 9
char Feld1; char Feld2; char Feld3; char Feld4; char Feld5; char Feld6; char Feld7; char Feld8; char Feld9;
ok wie zu sehen ist, könnte das den quellcode zimlich unübersichtlich machen.
zb wenn jedes feld ein bestimmten buchstaben binhalten soll, mussten jetzt 9 zuweisungen vollzogen werden. wäre hier noch möglich, aber was ist wenn es ein spielfeld von 1000 oder 10000 felder gibt?
daher gibt es ein array,
ein array ist nichts anderes als eine variable die mehr als eine zahl oder zeichen... speichern kann.
im obigen bsp wäre es:
Code :1
char[] Feld = new char[9];
damit legen wir ein Array an, mit dem namen Feld und es besteht nun aus 9 feldern, also wir können über ein index 9 verschiedene chars drin speichern
und zwar
Code :1 2
Feld[0] = 'X'; Feld[1] = 'O';
wichtig ist dabei, in der informatik wird immer bei null angefangen zu zählen.
das heißt der kleinste index ist null. wenn du dir jedoch oben die deklaration anschaust, habe ich da neun reingeschrieben. das bedeutet das es neun felder gibt, also bei der deklaration wird bei eins angefangen zu zählen.
der größte vorteil ist jetzt, wir können es auch in eine schleife packen.
beispiel, wir wollen alle neun felder mit X voll schreiben
Code :1 2 3 4 5 6 7
int i; char[] Feld = new char[9]; for(i = 0; i < 9; i++) // i < 9 weil der größte index 8 ist, denn 0 bis 8 sind 9 felder { Feld[i] = 'X'; // hier wird das array über den index angesprochen und mit einer zuweisung beschrieben }
das array besitzt auch ein paar nützliche eigenschaften zb count, in den bsp könnten wir also auch schreiben
Code :1
for(i = 0; i < Feld.Count; i++) // Count gibt hier die anzahl der felder zurück 9, nicht 8
klar?
wenn nicht frag
-
verstehen tu ich das schon irgendwo...
aber ich muss ehrlich sagen -char[] Feld = new char[9];- die schreibweise kenne ich gar nicht..
ich kenne z.b. char feld[9];
und das problem ist ich weiss net ob ich es anwenden darf jetzt arráy und count...
noch mnal blöde frage.. ist das noch C# sprachen... weil ich das noch nie benutzt habe...
-
char feld[9];
ist aber C bzw. C++ (wo du vorher hingeschrieben hast).
Irgendwie bist du dir wohl nicht ganz sicher, welche Sprache du jetzt brauchst?
Und ohne Arrays wirst du bei TicTacToe nicht weit kommen...die Beschränkungen auf eindimensionale und keine Funktionen sind sowieso gemein.
Macht alles nur unnötig umständlich.
Die Angabe nennt es zwar eindimensionale Felder, aber damit werden wohl Arrays gemeint sein.
Also ja, die sind ausdrücklich erlaubt. Und ja, das ist alles C#.Geändert von sheel (30.12.10 um 19:23 Uhr)
-
hmm kennst du evt listen?
vieleicht werden array nicht mehr erklärt, sondern gleich listen benutzt.
naja
wie mein vorredner schon sagte
das
ist die deklaration c und c++ eines arraysCode :1
char feld[9];
in c# sieht das jetzt so aus
sieht komplizierter aus, ist aber genau das gleiche.Code :1
char[] Feld = new char[9];
vom lesen her macht es sogar mehr sinn
-
Ja und ich soll mit C programmieren..
C# wiederum ne andere Sprache oder wie**** wenn ja, dann habe ich es falsch geschrieben...
Also ich muss es mit C programmieren... Sry für meine fehlern ist wirklich alles neu für mich...
-
Hehe...warum sagst du das nicht gleich?

Zurück zu deinem vorigen Thread im C/C++-Bereich...
und ja, C# ist eine völlig andere Sprache.



1Danke


Login





