Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Mastermind

unregistriert

11

18.06.2010, 01:00

Zitat

Ich denke gerade für einen Anfänger sollte man es richtig erklären und dazu sagen das ein array bei dem Index 0 anfängt und dem zufolge müsste er um die 2.Spalte und 1.Zeile ansprechen zu können diese nehmen Karte [1][0].


Lt. http://en.wikipedia.org/wiki/Row-major_order ist die Konvention für C Arrays eigentlich, dass Karte[1][0] die 2. Zeile, 1. Spalte bezeichnet.

Der orignal Beitrag war also bezogen auf C doppelt irreführend.

storage

Treue Seele

Beiträge: 138

Wohnort: Bad Salzungen

  • Private Nachricht senden

12

18.06.2010, 01:11

@Mastermind

Meinst du mich?

Also habe gerade den Code von dem 1 Post genommen und nachdem durchlauf nochmal Karte [1][0] ausgeben lassen und dabei kommt die 1 raus was auch richtig ist.

Ausgabe des Codes Threadstarters:

Quellcode

1
2
3
012 <-- 2. Spalte (x), 1.Zeile(y) ist die 1
345
678

Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von »storage« (18.06.2010, 01:30)


KeksX

Community-Fossil

Beiträge: 2 107

Beruf: Game Designer

  • Private Nachricht senden

13

18.06.2010, 01:27

Mein Fehler, ich entschuldige mich vielmals!

Natürlich hast du recht, hab mich total verhaspelt da...

(Liegt wohl daran dass ich schlichtweg nicht dran gedacht habe, dass ich vom Beispiel jetzt zum Code übergangen bin.)
Nochmal sorry ^^

Aber gut, dass es dir aufgefallen ist!
WIP Website: kevinheese.de

storage

Treue Seele

Beiträge: 138

Wohnort: Bad Salzungen

  • Private Nachricht senden

14

18.06.2010, 01:32

Kein ding Keks, bei Arrays bin ich auch schon desöfteren durcheinander gekommen.

Ich bin auch erst seit kurzen auf C++ zurückgegangen und in C# brauchte ich sie oftmals nicht, gabs schönere alternativen :-)

Ich bin momentan dabei mein wissen wieder aufzufrischen über c++ und bastel mit Zeigern und Klassen rum,wundert mich das bei mir ncoh so viel hängen geblieben ist.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

15

18.06.2010, 09:21

Ich bin auch erst seit kurzen auf C++ zurückgegangen und in C# brauchte ich sie oftmals nicht, gabs schönere alternativen :-)


gibt es die in c++ nicht? z.b. std::vector. oder was meinst du?
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Mastermind

unregistriert

16

18.06.2010, 11:59

@Mastermind

Meinst du mich?

Also habe gerade den Code von dem 1 Post genommen und nachdem durchlauf nochmal Karte [1][0] ausgeben lassen und dabei kommt die 1 raus was auch richtig ist.

Ausgabe des Codes Threadstarters:

Quellcode

1
2
3
012 <-- 2. Spalte (x), 1.Zeile(y) ist die 1
345
678


Es ist eine Konvention dass die erste Koordinate die Zeile ist und nicht die Spalte. Konventionen kannst du nicht durch Codebeispiele überprüfen, sonst wären es keine Konventionen sondern ähm... Tatsachen.

storage

Treue Seele

Beiträge: 138

Wohnort: Bad Salzungen

  • Private Nachricht senden

17

18.06.2010, 12:56

@NachoMan
Ja, die gibt es schon, habe aber ehrlich gesagt noch nie damit gearbeitet (nur gelesen) und selbst "vector" ist lange nicht so komfortabel wie Listen, ArrayList in C#.

Es kann aber auch sein das mir, dass nur viel unfreundlicher vorkommt weil C++ alleine nicht mal richtiges IntelliSense hat was mich ehrlich gesagt richtig nervt.

@Mastermind
Im Buch steht die Spalte als x zuerst und um das Buch gings hier nun mal.

Und ich denke du kennst das Koordinatensystem und da wäre die X-Achse nun mal von Links nach Rechts und Y-Achse von Oben nach unten und wenn man sich das so besser merken kann, was wohl so sein wird, würde ich es auch weiterhin so machen.

Das ist meiner Meinung kein Stilbruch oder was schlechtes oder verschlechtert die Performance und wenn wir ehrlich sind wird sich an sowas fast kein Programmierer halten, weil es sowas von unwichtig ist ob x oder y zuerst im Array kommt.

NachoMan

Community-Fossil

Beiträge: 3 885

Wohnort: Berlin

Beruf: (Nachhilfe)Lehrer (Mathematik, C++, Java, C#)

  • Private Nachricht senden

18

18.06.2010, 13:03

Es kann aber auch sein das mir, dass nur viel unfreundlicher vorkommt weil C++ alleine nicht mal richtiges IntelliSense hat was mich ehrlich gesagt richtig nervt.


du verwechselst da die sprache mit der ide. ich geh mal davon aus, dass du von vc08/05 sprichst. vs2010 hat ein recht gutes(aber leider auch für mein netbook zu langsames) intellisense.

ich kann die c++ container nur mit denen von java vergleichen und java ist in der tat etwas einfacher. dafür ist c++ vielseitiger und mächtiger. ich kenn mindestens die grundlagen beider sprachen und benutz eigentlich nur c++ weils mehr spass macht. aber das ist wahrscheinlich geschmackssache.

zu den spalten/zeilen: sowas macht man, wenn man in keinem großen team arbeitet, am besten nach gefühl sonst kommt man selbst immer wieder durcheinander.

edit: natürlich sollte man im gefühl haben dass zuerst x und dann y kommt und dass x die breite und y die höhe ist xD
"Der erste Trunk aus dem Becher der Erkenntnis macht einem zum Atheist, doch auf dem Grund des Bechers wartet Gott." - Werner Heisenberg
Biete Privatunterricht in Berlin und Online.
Kommt jemand mit Nach oMan?

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »NachoMan« (18.06.2010, 13:20)


Mastermind

unregistriert

19

18.06.2010, 13:09

Zitat

wenn wir ehrlich sind wird sich an sowas fast kein Programmierer halten, weil es sowas von unwichtig ist ob x oder y zuerst im Array kommt.


Wenn du das sagst...

storage

Treue Seele

Beiträge: 138

Wohnort: Bad Salzungen

  • Private Nachricht senden

20

18.06.2010, 13:20

Das ist richtig VS 2010 hat schon eine wesentlich bessere IntelliSense für C++ aber noch nicht gut genug für mich.

Es wäre zum beispiel sehr schön wenn ich z.B. eine Zeichenkette (string) deklariere ohne den Header eingebunden zu haben und er es wie in C# am Anfangsbuchstaben Blau makiert man draufdrückt und man den Header automatisch einbinden lassen kann.

Das mit dem mächtiger stimmt wohl, aber es ist auch wesentlich anfälliger für Fehler, die auch bei komplexen Code sehr schwer auffindbar sein können. Ich möchte auch bei C++ bleiben, da ich wirklich programmieren möchte und das so wie es in der Spielebranche nun mal üblich ist in C++ mit DirectX und deren möglichkeiten voll ausschöpfen. Für mich liegen zwischen C# und C++ Welten, was das coding angeht.

Zu mal ich denke das C# mit XNA auch seine Grenzen hat, habe schon viele Videos von Engines in XNA gesehen, die einfach bei guter Grafik am maximum angekommen sind, könnte zwar auch am programmierer liegen, aber es war ja kein Einzelfall. Alleine C++/Cli erzeugt bei gleichem Code 20-25% mehr performance, was auch bewiesen ist, weil der Compiler von C++ einfach wesentlich besser optimiert.

Werbeanzeige