tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
20
ZUGRIFFE
1089
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
DIESES THEMA IST
GESCHLOSSEN
  1. #1
    Makavely Makavely ist offline Mitglied
    Registriert seit
    Dec 2010
    Beiträge
    18
    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!!
    Miniaturansicht angehängter Grafiken Miniaturansicht angehängter Grafiken Tic Tac Toe-img003.jpg  
     

  2. #2
    FJK FJK ist offline Mitglied Gold
    Registriert seit
    May 2004
    Beiträge
    171
    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ß
     

  3. #3
    Avatar von timestamp
    timestamp timestamp ist offline Mitglied Rubin
    Registriert seit
    May 2010
    Ort
    Marburg
    Beiträge
    1.479
    Deine Überlegungen sind leider nicht korrekt, da nur ein 1D-Array benutzt werden darf
     

  4. #4
    FJK FJK ist offline Mitglied Gold
    Registriert seit
    May 2004
    Beiträge
    171
    dann eben, gleiche überlegung und ein 1d array mit 9 feldern
     

  5. #5
    Makavely Makavely ist offline Mitglied
    Registriert seit
    Dec 2010
    Beiträge
    18
    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..
     

  6. #6
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.504
    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)
     

  7. #7
    FJK FJK ist offline Mitglied Gold
    Registriert seit
    May 2004
    Beiträge
    171
    ok?
    was hast du den bisher programmiert?
    sind die if-anweisungen geläufig?
     

  8. #8
    Makavely Makavely ist offline Mitglied
    Registriert seit
    Dec 2010
    Beiträge
    18
    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...
     

  9. #9
    Makavely Makavely ist offline Mitglied
    Registriert seit
    Dec 2010
    Beiträge
    18
    Ja C# ist meine erste Programmiersprache..
    Ich muss das heute in 2wochen abgeben...
    also ich kenne sowas wie int feld [3]; z.b.
     

  10. #10
    FJK FJK ist offline Mitglied Gold
    Registriert seit
    May 2004
    Beiträge
    171
    hmm ok,

    hmm ist das syntaks mässig richtig? egal

    also
    Code :
    1
    
    int Zahl;
    damit wird eine integer Variable deklariert die genau eine ganze Zahl speichern kann, soweit klar oder?

    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
    sheel bedankt sich. 

  11. #11
    Makavely Makavely ist offline Mitglied
    Registriert seit
    Dec 2010
    Beiträge
    18
    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...
     

  12. #12
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.504
    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)
     

  13. #13
    FJK FJK ist offline Mitglied Gold
    Registriert seit
    May 2004
    Beiträge
    171
    hmm kennst du evt listen?
    vieleicht werden array nicht mehr erklärt, sondern gleich listen benutzt.

    naja

    wie mein vorredner schon sagte
    das
    Code :
    1
    
    char feld[9];
    ist die deklaration c und c++ eines arrays

    in c# sieht das jetzt so aus
    Code :
    1
    
    char[] Feld = new char[9];
    sieht komplizierter aus, ist aber genau das gleiche.
    vom lesen her macht es sogar mehr sinn
     

  14. #14
    Makavely Makavely ist offline Mitglied
    Registriert seit
    Dec 2010
    Beiträge
    18
    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...
     

  15. #15
    Avatar von sheel
    sheel sheel ist offline Moderator
    tutorials.de Moderator
    Registriert seit
    Jul 2007
    Beiträge
    4.504
    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.