TicTacToe - Konsolenanwendung - weiteres Fenster öffnen?



  • Ein indirektes Zitat Ohne Quellenangaben geht schon in Ordnung - denke ich.

    Aber sicher! Deshalb auch: bitte. 😉

    <pedantic>
    Ich würde trotzdem dessen für wessen und hält für hällt setzen.



  • 🙂

    Nun zurück zum Problem:

    Du benennst einfach das lokale um, sodass es das globale nicht mehr maskiert.

    Das Problem war, dass ich das globale Prüffeld Array mit den neuen/alten Werten versehen wollte. Es soll kein zweites lokales Array mit gleichem Namen erstellt werden. Aus der Funktion cleararray heraus - soll das globale Prüffeld-Array mit neuen Werten versehen werden.

    Drücke ich mich so ungenau aus? (Lese gleich nochmal nach ...)



  • Noch mal die Frage an euch:

    Wie initialisiere ich ein globales Array neu - aus einer Funktion heraus?



  • shaun1981 schrieb:

    Wie initialisiere ich ein globales Array neu - aus einer Funktion heraus?

    initialisieren geht nur beim programmstart. sonst kannst du es nur manuell platt machen, z.b. mit 'memset' o.ä.
    🙂



  • Moment:

    Meine Funktion sieht so aus:

    // Array Daten entfernen //
    void cleararay(void)
    {
    
    int a,b;
    
    for (a=0;a<3;a++)
    	{
    		for (b=0;b<3;b++)
    		{ 
    			feld [a][b] = '.';
    		}
    	}
    
    prüffeld [3][3]  = 2,1,2,1,3,1,2,1,2;
    
    return;
    

    Array FELD wird hier doch auch neu inititalisiert? Oder nutze ich den falschen Begriff? Abgesehen davon arbeitet mein Programm mit diesen globalen Array´s - innerhalb der Funktionen. Ich find den Faden einfach nicht ... verdammt!



  • Oh mein Gott ... so ein blutiger Anfänger Fehler!

    sollte das ganze nicht so oder ähnlich aussehen?

    prüffeld [0][0]  = 2;
    prüffeld [1][0]  = 1;
    prüffeld [2][0]  = 2;
    
    prüffeld [0][1]  = 1;
    prüffeld [1][1]  = 3;
    prüffeld [2][1]  = 1;
    
    prüffeld [0][2]  = 2;
    prüffeld [1][2]  = 1;
    prüffeld [2][2]  = 2;
    


  • shaun1981 schrieb:

    Array FELD wird hier doch auch neu inititalisiert?

    ja, das ist aber kein globales feld, wie in deiner frage davor.

    shaun1981 schrieb:

    sollte das ganze nicht so oder ähnlich aussehen?

    als initialisierung dann etwa so:

    feld [3][3] = {{1,2,3},{4,5,6,},{...},...};
    

    🙂



  • Aber so funktioniert das nicht ... das ist mein Problem. Ob ich versehentlich ein lokales erzeugt habe ?!



  • shaun1981 schrieb:

    Aber so funktioniert das nicht ... das ist mein Problem. Ob ich versehentlich ein lokales erzeugt habe ?!

    probier mal dies:

    int main(void)
    {
      int feld[3][3] = {{1,2,3},{4,5,6},{7,8,9}};  // <-- initialisierung
      int s;
    
      for (s=0; s<9; s++)
        printf ("%d ", ((int*)feld)[s]);
      puts("");
    
      // spaeter gehen nur noch zuweisungen
      feld[0][0] = 666;
      feld[1][1] = 777;
      feld[2][2] = 888;
      // usw...
    
      for (s=0; s<9; s++)
        printf ("%d ", ((int*)feld)[s]);
      puts("");
    }
    

    🙂



  • Das funktioniert ...

    Merke: Hinterher gehen nur noch zuweisungen :)! Danke dir ...


Anmelden zum Antworten