• 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.

Programmierwettbewerb 2: Aaah a snake!

TheSniperFan

Neu angemeldet

Registriert
15 Juli 2013
Beiträge
363
Ort
/dev/random
Ich habe meinen Mund wohl ein Wenig zu voll genommen, denn ich muss mich leider auch abmelden.
Habe mein RL unterschaetzt und werde nicht mehr fertig. Keine Chance. :(
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
Ich dachte ich mache vielleicht auch mit und überlege mir ein bisschen meinen Lösungsweg.
Ich würde das wieder gerne in Java umsetzten, genau wie die DNA-Analyse.

Da wäre jetzt meine Frage, ob man die Bibliotheken awt oder swing nutzen darf? Irgendwie muss man ja was auf die Fenster platzieren lassen...
 

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.757
Ort
in der Zukunft
Jojo klar, wollte nur verhindern das man halt dann sowas wie

Create Object a as Quader
Create balken as balken
on keyevent move Quader
create event kollision with quader, balken
on kollision echo *pech*

schreiben kann. Man sollte sich über die Themen wie man einzelne Snake-Teile bewegt, neue teile anfügt, kollisionen erkennt usw. schon selber gedanken machen.
 

Flip

Aktiver NGBler

Registriert
7 Juni 2015
Beiträge
987
Das ist aber ganz schön exklusiv, für einen, der selber so etwas nicht kann. Ich kann das vielleicht nicht bewertet, aber gucken würde ich schon gerne mal
Wo sieht man denn, wo es bereits Programme gibt?
Die Datei von theSplit habe ich gefunden, aber ich habe kein 64 PC
 

Novgorod

ngb-Nutte

Registriert
14 Juli 2013
Beiträge
3.055
schau durch den thread - es gibt insgesamt 3 oder so lauffähige beispiele mit quellcode..
 

Flip

Aktiver NGBler

Registriert
7 Juni 2015
Beiträge
987
Du hast meinen Beitrag nicht verstanden

Du weißt es auch nicht. Nichts für die Laufkundschaft. Erstmal muß man 100 Beiträge durchlesen.

Und mit Quellcode habe ich es auch nicht so übermäßig.

Und was ich gefunden habe, läuft bei mir nicht.
 

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.757
Ort
in der Zukunft
Öhm.... 64-bit Prozessoren gibt es seit 20 Jahren?
*Ergebnisse* Wieviele es auch sein mögen gibt es erst am Ende mehrere zu sehen, theSplit ist die einzige direkt ausführbare .exe aktuell.
Das zweite wäre ein pearl-Script von Kugelfisch - dazu benötigst du jedoch eine console und einen perl-interpreter... z.B. http://perl-begin.org/platforms/windows/ hier gibt es eine Einleitung zu Perl unter Windows.
 

Novgorod

ngb-Nutte

Registriert
14 Juli 2013
Beiträge
3.055
und das dritte wäre das hier, wofür man sich eben eine winzige runtime engine installieren muss (so wie man sich auch .NET, MSVC++, java oder was auch immer installieren muss für die entsprechende anwendung) - man könnte auch problemlos einen 270MB-installer draus machen, wenn's bequemer ist (glaube ich aber nicht :D)..

vielleicht wäre es nicht verkehrt, alle wettbewerbsbeiträge (bzw. den jeweils aktuellen post) im startpost zu verlinken..
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
@Flip:

Nach etwas suchen und herumtüfteln gibt es nun doch eine 32 bit Version und neue 64 bit Version für Windows mit dem aktuellen Stand 10.10.2015 im Komplettpaket.
Einige Dinge sind noch verändert worden seit dem letzten Posting hier, dennoch würde ich empfehlen nur die neusten Versionen zu ziehen.

Die beiden neuen Pakete finden sich unter dem Gitlab Projekt im "build" Ordner hier, bitte auf die Version achten (höher ist neuer):
https://gitlab.com/ngb/NGB-Snake_theSplit/tree/master/builds

Direktlinks:

32bit Windows (getestet unter 64bit) [ NGB Snake- theSplit - v0.93 - Win 32bit.zip ] :
https://gitlab.com/ngb/NGB-Snake_th...s/NGB Snake- theSplit - v0.93 - Win 32bit.zip

64bit Windows [ NGB Snake- theSplit - v0.93 - Win 64bit.zip ] :
https://gitlab.com/ngb/NGB-Snake_th...s/NGB Snake- theSplit - v0.93 - Win 64bit.zip

in beiden Versionen ist auch eine "_readme.txt" enthalten die auch eine kurze Info zu den Kontrollen des Spiels beinhaltet.
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
Ich habe nun auch ein snake-Programm.
Ein Problem tritt aber auf. Im Debug-Modus kann ich das Spiel ganz normal über einen Button starten. Überspringe dann eine Haltemarke und das Spiel läuft.
Starte ich es allerdings normal (oder mit der fertigen .jar-Datei), kann ich zwar die Button betätigen und die Oberfläche aktualisiert sich, doch die Schlange bewegt sich kein Stück mehr.

EDIT: Das Problem ist inzwischen gelöst - siehe meinen folgenden Beitrag

Ich kommentiere es demnächst noch etwas und würde es dann zur Verfügung stellen.
 
Zuletzt bearbeitet:

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.757
Ort
in der Zukunft
Ich habe zwar von Java keine Ahnung - aber von anderen Sprachen würde ich sagen das du dem pc keine Möglichkeit gibst was zu zeichnen, auf eingaben zu reagieren usw... du lässt eine Endlosschleife mit voller Prozessorleistung laufen? Oder Managed das Java selber?
Wie ist denn die Auslastung des Systems wenn du die JAR einfach startest?
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
@drfuture:
Die Auslastung war bei etwa 1% und Arbeitsspeicher bei einigen MB.
Das macht Java also alles selber. Aber ich denke beim Compilieren hat der aus der "Warteschleife" einfach eine Endlosschleife ohne Endbedingung gemacht. Habe das ganze nun umgeschrieben und es gibt eine Schleife weniger - nun klappt auch alles.

Alte Edits:
EDIT: Ok, anscheinend doch nicht so ganz.
Ich kann zwar jetzt auch ohne Probleme in Netbeans Snake spielen, ohne in den Debug-Modus reinzugehen, aber wenn ich die Jar erstelle und starte, dann wird das Fenster erzeugt, die Button verändern auch das Fenster, aber die "Schleife für die Spielbewegung" macht nichts.

EDIT2: Problem gelöst. Gab anscheinend etwas Probleme mit dem sleep-Befehl....
Nun habe ich die Prozessorlast von zwischenzeitlich 30 % auf dauerhaft ca. 1% gedrückt. Der Rest entsteht leider durch das ständige Neuzeichnen des Feldes. Es besteht aber immerhin aus 600x500px (150x125 Felder).
Ich lade die Dateien hier hoch, wenn ich ein paar Standardeinstellungen für das Spielen noch angepasst habe. Derzeit ist es gerademal bis ca. 15 Punkte spielbar^^

EDIT3: Anhang anzeigen Snake 0.95.rar
Es ist zwar nicht alles umgesetzt, aber doch einiges und eine Sache kann ich wohl auch behaupten: Mit < 20kb bin ich auch ziemlich klein. Die eigentliche Spielmechanik habe ich in ca. 1kb - der ganze Rest sorgt für die grafische Oberfläche und deren Bearbeitung. Die Datei darf natürlich gerne bei GitHub hinzugefügt werden, falls ich noch irgendetwas daran ändere, lade ich das natürlich auch wieder hoch.
 
Zuletzt bearbeitet:

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Rein zum Spiel, das Spielfeld ist viel zu riesig und die Pixel die man einfängt zu klein, die Steuerung reagiert zwar flüssig aber man huscht um die paar Pixel leicht vorbei, du hast dafür ja eine Variable habe ich beim überfliegen der Source gesehen. Die würde ich auch nutzen und das Spiel insgesamt etwas schneller ablaufen lassen/die Schlange/Futter viel größer machen sonst spielt man ja ewig bevor es knifflig wird.

Nur so als Idee :)
 

Novgorod

ngb-Nutte

Registriert
14 Juli 2013
Beiträge
3.055
abgesehen von den proportionen gut umgesetzt, läuft sehr flüssig.. die steuerung ist exakt wie bei thesplit, also ohne eingabepuffer - ist aber ne frage der präferenz..
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
Rein zum Spiel, das Spielfeld ist viel zu riesig und die Pixel die man einfängt zu klein, die Steuerung reagiert zwar flüssig aber man huscht um die paar Pixel leicht vorbei, du hast dafür ja eine Variable habe ich beim überfliegen der Source gesehen. Die würde ich auch nutzen und das Spiel insgesamt etwas schneller ablaufen lassen/die Schlange/Futter viel größer machen sonst spielt man ja ewig bevor es knifflig wird.

Nur so als Idee :)
Ich habe das Spielfeld dann mal ein wenig verkleinert - etwa 1/9 von dem davor. So sollte auch jeder die Pixel sehen können.

abgesehen von den proportionen gut umgesetzt, läuft sehr flüssig.. die steuerung ist exakt wie bei thesplit, also ohne eingabepuffer - ist aber ne frage der präferenz..
Ich meine mich zu erinnern, dass das echte Snake auch keinen Eingabepuffer hatte. Es wird die zuletzt gedrückte Taste auch wirklich ausgeführt. Anders sind die 180°-Drehungen deutlich zu einfach.

---
Ich bin kein guter Snake-Spieler - Daher ist bei einer Startgeschwindigkeit von 10 meine Punktzahl lediglich bei ca. 1500 ^^

Anhang anzeigen Snake 0.96.rar
---
Die Möglichkeit Power-Ups hinzuzufügen gibt es mit ein paar kleinen Änderungen, ist mir aber jetzt zu viel, besonders, da ich dann auch nur theSplit nachmache.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
@Roin:

Ich hab noch keine PowerUps drin, bisher gibts nur verschiedenes Futterquellen mit unterschiedlichen Punkten - also lass dich davon nicht abhalten "nuts" zu gehen :)

Was mich nur irritiert hat eben, die Wände!!! - Ich hab gedacht das wäre Bonus-Futter weil ich so god-like Spiele und bin voll drauf zu gesteuert.... :dozey: :D
 

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.757
Ort
in der Zukunft
@Roin - funzt bei mir auch, läuft schön flüssig und für die Größe echt hübsch geworden, lasse es auf ~20 laufen ... rennt 1a :D macht fun
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
@theSplit:
Es war ja in der Aufgabenstellung auch was von Barrieren erwähnt worden.
Dann habe ich da zufällig welche generieren lassen^^ Bonusfutter ist halt immer nur der eine grüne Fleck der ab und an da aufploppt.

Auf Wunsch kann ich natürlich das auch umschreiben, dass es mehrere Futterquellen gibt und ggf. auf mehrere Bonusfutter - fand ich dann aber doch zu "einfach"^^

EDIT:
PowerUp Schlange halbieren tritt nun mit 1 Promille Wahrscheinlichkeit für 120 Frames auf.

Anhang anzeigen Snake 0.97.rar

EDIT2:
PowerUp Schlange bewegt sich einige Frames lang nur noch mit halber Geschwindigkeit (kein farblicher Unterschied!) Es soll ein Glücksspiel bei den PowerUps sein - vielleicht auch irgendwas, was das Spiel ungewollt erschwert^^ (zum Beispiel auch doppelt so schnell?)
Anhang anzeigen Snake 0.97.1.rar
 
Zuletzt bearbeitet:

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Wie lässt du das Futter platzieren gerade wenn du Mauern per Zufall einfügst? Gibt es dabei gewisse Regeln die beachtet werden?

Mir fällt nur so eine Randbedingung ein das ein Futterblock auch wirklich erreichbar bleibt, sprich mindestens zwei freie/begehbare Felder um sich hat - also wenn links, oben und rechts eine Wand wäre, wäre der Futterblock unerreichbar für die Schlange da kein Platz mehr zum manövrieren wäre. ;)

Dann noch eine Idee, wenn du die Geschwindigkeit halbieren bzw. auf ein fixes Minimum setzen kannst, wenn die Wände auftauchen wird die Schlange für X Frames langsamer - so hätte der Spieler Zeit sich an das neue Spielfeld zu gewöhnen bzw. zu reagieren wenn man auf eine Wand zusteuert? Beim testen war bei mir der Fall aber nicht aufgetreten.

Was ich mir für meine Lösung irgendwie in den Kopf gesetzt hatte, die Wände - also eigentlich eher für Levels - nach Mustern generieren zu lassen. Also eine gerade Wand (horizontal, vertikal), eine L-Form, eine normale balancierte Ecke und diese zu nach gewissen Regeln zu platzieren. Aber soweit bin ich noch nicht. Das zufällig generierte hat meiner Meinung nach nur das Problem das die Punktezahl dann nicht mehr vergleichbar wird weil manch eine Konstellation schwerer sein könnte als eine andere, so jedenfalls der Grundgedanke - wäre aber auf Dauer vielleicht spannender als ein immer gleicher Levelaufbau. Bin unschlüssig darüber.
 

Roin

Freier Denker

Registriert
22 Juli 2013
Beiträge
581
Wie lässt du das Futter platzieren gerade wenn du Mauern per Zufall einfügst? Gibt es dabei gewisse Regeln die beachtet werden?
Also derzeit habe ich solche Prüfungen noch nicht eingebaut. Das würde ich ggf. mal dann einbauen, wenn wirklich bisher mal so ein Fall aufgetreten ist. Habe ich bisher noch nicht beobachtet und daher nicht für nötig erachtet (zum Testen verändere ich die Variablen, sodass die Barrieren früher kommen, Powerups mehr auftauchen usw.)

Dann noch eine Idee, wenn du die Geschwindigkeit halbieren bzw. auf ein fixes Minimum setzen kannst, wenn die Wände auftauchen wird die Schlange für X Frames langsamer - so hätte der Spieler Zeit sich an das neue Spielfeld zu gewöhnen bzw. zu reagieren wenn man auf eine Wand zusteuert? Beim Testen war bei mir der Fall aber nicht aufgetreten.
Das wäre ne gute Möglichkeit, habe ich bisher noch nicht in Betracht gezogen. Werde ich beim nächsten Programmaktualisierdrang mal mit einbauen.

Was ich mir für meine Lösung irgendwie in den Kopf gesetzt hatte, die Wände - also eigentlich eher für Levels - nach Mustern generieren zu lassen.
Das hatte ich mir am Anfang auch überlegt, dachte mir dann aber, dass ein zufallsgeneriertes Level einfach interessanter ist. Zudem müsste man andernfalls die Barrieren vorprogrammieren (Mache Linie, mache L ....) und diese dann weiterhin "zufällig" platzieren, ohne dass sie die Schlange berühren. Der Vorteil davon wäre halt, dass ich diese Prüfung mit der "Lösbarkeit" deutlich einfacher umsetzten könnte.
Da du die eben erwähnt hast, werde ich wohl oder übel meine Barrieren noch ein wenig überarbeiten müssen...
Randgedanke dazu: Prüfung auf zwei freie Felder würde nicht ausreichen. Platziere in einer Ecke des Spielfeldes mal 2 Blöcke diagonal - Bedinung zwar notwendig, aber nicht hinreichend.

Wenn noch weitere Ideen kommen, bin ich gerne bereit die mit aufzunehmen :)
 
Zuletzt bearbeitet:
Oben