JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=641e81be646d53ff294c25af76053ae1Medaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Problem mit Zweidimensionalem Array

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Snowsong
Junior JLI'ler


Alter: 32
Anmeldedatum: 15.05.2007
Beiträge: 53

Medaillen: Keine

BeitragVerfasst am: 30.01.2010, 13:21    Titel: Problem mit Zweidimensionalem Array Antworten mit Zitat

Hallo ich habe das Problem das ich einen Array gern mit Datein füllen würde
es aber einfach nicht funktionieren will.
Hier mal ein wenig Code

Die Strukturen
Code:

//Struktur eines Steinfeldes im Spiel
typedef struct sStone
{
   int         Status;         //Status des Steins | 0 = kein Stein, 1 = Stein mit Rissen, 2 = Ganzer Stein
   int         color;         //Farbe des Steins | 0-4 | Rot, Grün, Blau, Gelb, Orange
} sStone;

//Level Struktur
typedef struct sLevel
{
   sStone      stones[12][8];   //Steine eines Levels 12x8
} sLevel;


dann erstell ich in der Klasse den Array
Code:

sLevel         levels[1];   //Alle Levels


und dann will ich das Level mit Datein füllen zur Laufzeit

Code:

//Level 1 - Das Standart Level
   levels[0].stones
      (
      ((2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0)),
      ((2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0)),
      ((2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0)),
      ((2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0)),
      ((2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0)),
      ((2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0)),
      ((2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0)),
      ((2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0), (2, 0))
      );


bekomm aber einen Fehler den ich erlich nich versteh -.-
Code:

1>c:\users\michael\documents\visual studio 2008\projects\brakeout\brakeout\ccore.cpp(324) : error C2064: Ausdruck ergibt keine Funktion, die 8 Argumente übernimmt


Was soll ich machn arbeite ich falsch mit dem Array?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Cyianor
Super JLI'ler



Anmeldedatum: 23.12.2002
Beiträge: 452

Medaillen: Keine

BeitragVerfasst am: 30.01.2010, 17:58    Titel: Re: Problem mit Zweidimensionalem Array Antworten mit Zitat

Snowsong hat Folgendes geschrieben:
Was soll ich machn arbeite ich falsch mit dem Array?


Das kann man wohl so sagen. Und da du selbst auf diese Spur gekommen bist hättest du ihr eigentlich folgen können und z.B. mal in Google die Suchwörter "Array C" eingeben können. Dann wärst du jetzt schon sehr viel schlauer und hättest dein Problem vermutlich schon gelöst.

Viel Erfolg!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 31
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 30.01.2010, 18:09    Titel: Antworten mit Zitat

Code:
levels[0].stones = { {sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0)},
{sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0),sStone(2,0)},
//[...]
}


Da musst du deiner Stones-Struktur allerdings einen Konstruktor verpassen.

Wenn bei der Initialisierung sowieso in jedes Element das gleiche rein kommt, kannst dus auch eleganter mit einer verschachtelten Schleife initialisieren.
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Snowsong
Junior JLI'ler


Alter: 32
Anmeldedatum: 15.05.2007
Beiträge: 53

Medaillen: Keine

BeitragVerfasst am: 30.01.2010, 18:22    Titel: Antworten mit Zitat

Hmm die Sache ist das jeder Stein zb anders werden soll
deswegen kann ich den Array nicht direkt beim erstellen füllen.

Und die Suche nach "Array C" zb hat viel ergeben nur überall
wird der Array zur Zeit der Erstellung gefüllt auf die Art niemals
zur Laufzeit.

sobald ich ein = benutze kommt das int nicht in stones[12][8] konvertiert werden kann.
Und bei { oder } zeichen kommt Fehler das die da nix zu suchen haben.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
=]Mid[=]Night[=
Super JLI'ler



Anmeldedatum: 20.11.2002
Beiträge: 380
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 31.01.2010, 20:06    Titel: Antworten mit Zitat

Zum Füllen von Arrays benutzt man in dem Fall Schleifen. Dazu sollte sich auf jeden Fall was im Internet finden lassen.
Aber der Vollständigkeit halber:
CPP:
for(int i = 0; i < WIDTH; ++i) {
    for(int j = 0; j < HEIGHT; ++j) {
        stones[i][j] = //Wert hier einsetzen
    }
}
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Snowsong
Junior JLI'ler


Alter: 32
Anmeldedatum: 15.05.2007
Beiträge: 53

Medaillen: Keine

BeitragVerfasst am: 01.02.2010, 10:40    Titel: Antworten mit Zitat

Ich möchte aber jeden Wert anders haben...
Jeder Wert Representiert einen Stein.
(Der Status, Die Farbe) im endeffekt will ich so die Levels gestalten
das es dann zb so aussieht.

(0,0)(2,1)(1,4)....
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Jonathan_Klein
Living Legend


Alter: 31
Anmeldedatum: 17.02.2003
Beiträge: 3430
Wohnort: Siegerland
Medaillen: Keine

BeitragVerfasst am: 01.02.2010, 14:00    Titel: Antworten mit Zitat

Die Syntax ist ganz einfach falsch...

Am besten benutzt du auch statt Arrays Vektoren. Also std::vector. Zum Befühlen könnte man dann folgendes benutzen:
http://www.boost.org/doc/libs/1_41_0/libs/assign/doc/index.html

Aber es ist allgemein sehr unschön, Levels im Code zu initialisieren, lad die einfach aus einer Datei, dann bist du flexibel und hast die ganzen Probleme nicht.
_________________
http://www.C3-Soft.de
http://www.nikodemus.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Snowsong
Junior JLI'ler


Alter: 32
Anmeldedatum: 15.05.2007
Beiträge: 53

Medaillen: Keine

BeitragVerfasst am: 01.02.2010, 15:45    Titel: Antworten mit Zitat

Zitat:

Die Syntax ist ganz einfach falsch...


Und wie ist dann die richtige^^ alle reden immer drumrum -.-


Zitat:

Aber es ist allgemein sehr unschön, Levels im Code zu initialisieren, lad die einfach aus einer Datei, dann bist du flexibel und hast die ganzen Probleme nicht.


Ich wollt nur 2-3 kleine Brakeout Levels machen da erscheint es mir
unsinnig da extra lvl dateien anzulegen.


Und ich wollt mit Arrays machen zu Übungszwecken
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
=]Mid[=]Night[=
Super JLI'ler



Anmeldedatum: 20.11.2002
Beiträge: 380
Wohnort: Aachen
Medaillen: Keine

BeitragVerfasst am: 01.02.2010, 17:00    Titel: Antworten mit Zitat

Also wenn du es unbedingt alles einzeln machen willst, schreibste es so hin:

CPP:
stones[0][0] = //erster Stein
stones[0][1] = //zweiterStein
...


Das ist an sich aber keine Lösung. Wenn du es aus einer Datei liest ist das übrigens auch ne gute Übung.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
The Lord of Programming
Living Legend


Alter: 31
Anmeldedatum: 14.03.2003
Beiträge: 3122

Medaillen: Keine

BeitragVerfasst am: 01.02.2010, 19:59    Titel: Antworten mit Zitat

Snowsong hat Folgendes geschrieben:
Und wie ist dann die richtige^^ alle reden immer drumrum -.-

Das blick ich jetzt nicht...
Ich hab dir in meiner Antwort oben doch direkt einen Codeausschnitt mit der richtigen Syntax geschrieben. Nen Konstruktor brauchst du für deine Struktur, damit ers rafft.
_________________
www.visualgamesentertainment.net
Current projects: RDTDC(1), JLI-Vor-Projekt, Tetris(-Tutorial), JLI-Format
(1) Realtime Developer Testing and Debugging Console


Anschlag, Anleitung zum Atombombenbau, Sprengkörper...
Hilf Schäuble! Damit er auch was findet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Fragen, Antworten und Kritik Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum