• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

Go-Statistik Programm

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
Naja, die Main "tut" ja schon etwas, nen Text ausgeben :p

Ich finde immer noch, du könntest ein "Hello from GoStatistics!" hinzufügen... das einen begrüßt :p

Aber mit dem Linken von Bibliotheken bzw. Abhängigkeiten von DLLs unter Windows, kann ich dir trotzdem nicht helfen.

Aber da wird noch einiges mehr an DLLs dazukommen ;) - Spätenstens wenn die GUI und andere Libs dazukommen ;)
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #42
Aber mit dem Linken von Bibliotheken bzw. Abhängigkeiten von DLLs unter Windows, kann ich dir trotzdem nicht helfen.

Aber da wird noch einiges mehr an DLLs dazukommen ;) - Spätenstens wenn die GUI und andere Libs dazukommen ;)
Leider.
Aber es soll ja bestenfalls für alle Plattformen normal nutzbar sein. Das kann ja eigentlich nicht so schwierig sein, die nötigsten Funktionen, die aus einer Standard-Lib gebraucht werden zu "extrahieren" und dann mit reinzuwerfen. Das hat doch sicherlich schon jemand gelöst. Kann doch nicht so ein Krampf sein ...

Naja ich hoffe ja, dass sich hier der eine oder andere dann auch freiwillig um sowas kümmert. Das geht leider weit über mein Verständnis von dem Kram hinaus.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
Kram.... :D

Das mußt du mal lernen.... aber es ist keine Raketenentwicklung. ;)

Nur ist die Frage was der Compiler leisten kann bzw. der Linker.

Unter Linux ist das relativ einfach, ich installiere mir eine GUI-Lib und hab die defakto an Board, unter Windows sieht das anders aus.... aber mach dir keinen Kopf, das wird sich alles später herauskristalisieren ;)

Jetzt erst mal "Hello World!" :cool:
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #44
Ich habe jetzt neben Cygwin noch MinGW+MySys installiert.
Compilieren geht.
Laufen tut das Programm aus der Comandozeile raus auch - braucht zwar ne ganze Weile aber da weiß ich auch nicht, wieso. Und wenn man es so per Doppelklick starten will geht das Fenster halt direkt wieder zu, weil es halt wirklich nicht viel tut.

Bin mit der Lösung erstmal zufrieden, dass ich nun einfach mehrere Compiler-Umgebungen besitze. Eigentlich ist MinGW ja auch nur ein minimalistischer Teil von Cygwin, der (eigentlich) weniger kann. Aber auch wenn in Cygwin die entsprechenden MinGW Compiler nutze, macht der da nicht wirklich mit. Total seltsam. Aber damit ist der Bereich des Themas für mich abgehagt.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
Du mußt es auch von der Kommandozeile aus öffnen, vorher kann es gar nicht viel tun, ist ja keine Interface-Loop.

Aber in der Kommandozeile sollst du trotzdem einen Rückmeldung bekommen. ;)

Aber was "besser" ist, kann ich dir nicht sagen.... nur solltest du nicht all zu viel umstellen und bei etwas bleiben :)
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #46
Aber in der Kommandozeile sollst du trotzdem einen Rückmeldung bekommen. ;)
Ja der braucht halt einige Sekunden aber danach steht die tolle Zeile Text da. Danach ist das Programm logischerweise bereits beendet. Macht halt "nix" :D
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
Ich bin im meinem Buch gerade bei:

"Lokale und globale Variablen"
"Felder und Zeichenketten"
"Strukturen, Unions und Aufzählungstypen"
"Modulare Programmierung"...

Also, du bist mir eigentlich um einiges was C++ voraus, lieber @Roin ;)

Deßhalb kann ich gar nicht sooo viel machen.... ich weiß auch noch nicht wie man die Datenstrukturen nutzt.... ;)
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #48
Ich habe mich nie an einem Buch hergehangelt. Ich habe fleißig Google gefragt und dann immer drauf losgeschrieben.
Wenn man allgemein mit Objektorientierter Programmierung vertraut ist sollte das an sich nicht so schwierig sein. Im Zweifel sagt einem der Compiler auch, wo man was falsch gemacht hat und dann sucht man wieder bei Google. :D

Aber wie du ja selber bereits von einigen Posts angemerkt hast: Wir haben keine Eile. Wenn man hierbei noch was lernen kann ist das gut. Wenn es morgen fertig ist auch - aber es ist dadurch nicht besser als wenn es in einigen Wochen / Monaten fertig ist.

Das ist ein Freizeitprojekt und so soll es auch behandelt werden.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
Schön das DU das so siehst, als Projektleiter.... :D - Aber ich denke auch, wir haben ja keinen Zeitdruck und sind in keiner Competition....

Lieber sorgfältig, als das hinterher geschriehen wird, weil etwas nicht funktioniert.

Ich wünschte mir auch gerade, das ich dir etwas mehr unter die Arme greifen könnte, aber ich hab schon noch Probleme alle Befehle deiner Klassen zu deuten :D
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #50
Ich wünschte mir auch gerade, das ich dir etwas mehr unter die Arme greifen könnte, aber ich hab schon noch Probleme alle Befehle deiner Klassen zu deuten :D

Dann ist es wohl doch angebracht, dass ich bereits jetzt Kommentare dranschreibe.
Dann kann man dabei vielleicht noch was lernen ;-)
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
Wäre definitiv gut, wenn du kommentieren würdest, Getter und Setter Prinzip sind mir bekannt, aber wenn je ausführlicher um so besser.

Wenn du noch Entwicklerkommentare hinzufügen willst, wieso weßhalb dies und das, tu das ruhig auch - schaden kann es nicht. :)
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #52
So. Alle bisherigen Methoden haben dann jetzt ein kleines Kommentar bekommen das kurz zusammenfasst, was diese Methode macht. Teilweise sind die Methoden auch nur vorsorglich geschrieben, weil es vermutlich Sinn macht diese später zu nutzen. Wann und wo wird sich zeigen. Wenn man sie nicht braucht sind sie nicht im Weg und sie waren schnell von der Hand geschrieben.
 

BurnerR

Bot #0384479

Registriert
20 Juli 2013
Beiträge
5.504
Klasse :T
Ich verwende übrigens Clion von jetbrains, was CMake verwendet und habe daher zumindest rudimentäre Kenntnisse... :D.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
Dann bring dich mal ein @Burner, so lange es nicht die Toolchain bricht :)
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #57
Also aktueller Stand:
Es gibt die vier, bisher erwähnten, Klassen: Coordinate, Turn, Group und Board.

Ein paar Funktionen sind bisher nur Dummy-Funktionen, da ich mir noch keine Gedanken über die Logik gemacht habe, wie man beispielsweise Nachbaren einer Gruppe ermitteln will oder ähnliches.
Diese sind relativ deutlich zu erkennen oder, falls sie vermutlich nur sehr kurs ausfallen würden, mit einem entsprechenden todo Kommentar versehen.

Sonst sind alle Funktionen relativ einfach kommentiert. Wenn sich da jemand auch an Kommentaren beteiligen möchte, gerne. Ich schreibe die relativ simple runter, damit da überhaupt etwas dran steht. Das geht bestimmt auch besser.

Und damit gehe ich dann auch mal in den "Feierabend". :beer:
 

MingsPing

NGBler

Registriert
15 Juli 2013
Beiträge
346
Hey,
verlinke doch das Github-Projekt im Startpost.
Ggf. auch (dann für später) eine Art Versionsnotiz im Startpost, also: "TODO: ... DONE: ..." usw., dann ist das ganze besser überschaubar.
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
  • Thread Starter Thread Starter
  • #59
@MingsPing:
Ganz grob habe ich das mal gemacht. Bezüglich Grafischer Oberfläche und Statistiken muss sich erstmal jemand finden, der generell das machen möchte. Dann kann man die Aufgaben genauer auflisten und schauen, was wie zu tun ist.

--- [2017-08-14 23:29 CEST] Automatisch zusammengeführter Beitrag ---

  • Coordinate Klasse um Funktion erweitern, die die eigenen Nachbarn ermitteln kann. Nachbarn sind nur horizontale oder vertikale Nachbarn.
    • Zu vorherigem Punkt: Möglicherweise sollte die Coordinate Klasse statisch die Grenzen des Spielfeldes kennen, damit nur valide Nachbarn ermittelt werden.

Für wie sinnvoll haltet ihr das?
Ich wollte jetzt mal in der Klasse Coordinate ein getNeighbours() schreiben. Vorerst lasse ich dabei einfach alle theoretischen Nachbarn zurückgeben. Allerdings wäre es dann im nächsten Schritt sinnvoll, dass man nur direkt valide Nachbarn zurück gibt. Oder?
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.561
Für wie sinnvoll haltet ihr das?
Ich wollte jetzt mal in der Klasse Coordinate ein getNeighbours() schreiben. Vorerst lasse ich dabei einfach alle theoretischen Nachbarn zurückgeben. Allerdings wäre es dann im nächsten Schritt sinnvoll, dass man nur direkt valide Nachbarn zurück gibt. Oder?

Valide im Sinne von, wenn wir bei x = 0, y = 0 sind, geht es nur nach 1,0, 0,1, 1,1 - wenn du das mit Valide meinst, also sollte vielleicht schon eine Logik dahinter stecken, das wir nicht an -1, 0 einen Nachbarn haben können und uns innerhalb der Grenzen des Spielsfelds bewegen.

Allerdings, vielleicht sollte man die "Board" (Spielfeld)-Klasse ansprechen, um die Dimensionen des Spielfeldes zu bekommen bzw. die Grenzen zu ermitteln.
Spontan würde ich aber auch diese Prüfung in die "Coordinate" Klasse legen, da dort eben mit Koordinaten gearbeitet wird. Das Spielfeld müßte im Grunde ja nur seine Dimensionen bekanntgeben.

Eine Frage zum Code habe ich aber auch gerade, ich gehe da gerade mal durch, was macht das hier?

[src=c++]Coordinate Coordinate::getBottomNeighbour()
{
Coordinate bottomNeighbour(getX(), getY() + 1);

return bottomNeighbour;[/src]

Ich weiss wir fragen hier eine Koordinate ab die an "x" (aktuelle Coordinate) und "y + 1" liegt... ? (Bzw. wo im Code passiert das?)

Aber ich glaube das geht nicht so einfach bzw. könnte das falsch sein?

Sagen wir, das Spielfeld wäre 7 Felder breit und 7 Felder hoch "Array[7][7"], wenn ich (x, y!) "0,0" anspreche, entspricht das dem Feld auf 0,0 (links oben) - logisch, will ich jetzt aber das darunter liegende Element haben, liege ich doch bei "0, 1" - also dem Element auf Index x + (y * 6)... - oder?

Was ich meine, das Array ist ja so aufgebaut (eindimensional):
[
0,1,2,3,4,5,6,
7,8,9,10,11,12,13..,
14,15...
21...
28....
..48]

Also haben wir an der ersten Stelle "Links oben", die zweite Spielfeldreihe liegt doch dann aber bei Index 7 bis 12 ?

Denkfehler?, oder muss ich mir die Spielfeld Klasse noch einmal anschauen, wie dort die Felder aufgebaut sind? :o
 
Zuletzt bearbeitet:
Oben