• 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
So. Langsam wird was drauß.
snake_000t6skn.png
Sieht nicht nach viel aus, aber was der Schein trügt. Ich habe quasi die API der Unity Engine nachgebaut (zumindest teilweise). Ich könnte da jetzt diverse einfache 2D Spiele mit programmieren. Das Einzige das mich stört ist die Verarbeitung der Eingabe-Ereignisse. Allerdings habe ich keine Lust mir für 4 Richtungstasten + Pause ein komplettes System zu einfallen zu lassen und zu programmieren. Das wird hardcoded und gut ist. :D

Bis auf ein paar Kleinigkeiten steht das Grundgerüst. Dann kann ich bald Snake schreiben (was mit meiner "Engine" einfach ist), die GUI erweitern für Punkte, Zeit, etc. (was mit QtQuick einfach ist) und dann ganz, ganz, ganz viel Eye-Candy hinzufügen. Ich habe bewusst den Aufbau einer richtigen Engine gewählt und Zeit habe ich ja auch noch genug. :cool:
 

Kugelfisch

Nerd

Registriert
12 Juli 2013
Beiträge
2.342
Ort
Im Ozean
Hast du irgendwo den Code un-obfuscated?
Der Code ist, wenn man einmal von der nicht vorhandenen Formatierung und den kurzen Variablennamen absieht, nur an einer einzigen Stelle tatsächlich `obfuscated` im klassischen Sinne: Der String `Obfuscated Snake` wird über einen regulären Ausdruck erzeugt, damit er nicht offensichtlich im Quelltext auftaucht (und das auch bloss, weil dafür noch Platz in den 10 x 120 Zeichen war). Allerdings verwendet der Code absichtlich einige Perl-Idiome, ANSI-Escape-Sequenzen und magische Zahlen. Derselbe Code mit hinzugefügter Formulierung und einigen Kommentaren:
[src=perl]use Term::ReadKey;

# k() => Taste von Konsole lesen
sub k {
return ReadKey(-1)
};

# ak() => Kompletten Tastaturbuffer lesen
sub ak {
$k = '';
$k .= $c
while ($c = k());
return $k;
};

# Terminal initialisieren: Raw-Modus ...
ReadMode 5;
# ... und Output-Buffering aus.
$ |= 1;

# ANSI-Escape-Sequenzen:
## \ec = Reset
## \e[2J = Clear Screen
## \e[?25l = Cursor aus
## \e[?7l = Auto-Zeilenumbruch aus
## \e[1;1H = Cursor setzen: 0,0
## \e[0;0r = Scrolling aus (hack)
## \e[4242;4242H = Cursor setzen: 4242,4242 (= untere rechte Ecke)
## \e[6n = Cursorposition abfragen
print "\ec\e[2J\e[?25l\e[?7l\e[1;1H\e[0;0r\e[4242;4242H\e[6n";

# Im Tastaturbuffer befindet sich nun eine Sequenz der Form `\e[y;xR`, wobei x und y die Koordinaten der unteren
# rechten Ecke sind. Diese Sequenz auslesen.
($s .= $c) until(($c = k()) eq 'R');
# ... und die Zahlen extrahieren - $h = Hoehe, $w = Breite des Terminals
$s =~ s/[^0-9;]//g;
($h,$w)=split(/;/,$s);


# Cursor an Position y=2,x=1 setzen (y=1 = Titelleiste) und Spielfeldrand schreiben
## Perl-Idiom: "string"x42 = `string` 42-mal wiederholt
## ANSI-Escape-Sequenzen: \e[...m = Flags/Farben setzen, \e[y;xH = Cursor setzen
print("\e[2;1H\e[34m\e[40m".('#'x$w)."\r\n".(('#'.(' 'x($w-2))."#\r\n")x($h-3)).('#'x$w)."\e[2;1H\e[0m");

# Punktezaehler
$pt = 0;

# mt() => Titelleiste (neu) schreiben
sub mt {
# String `Obfuscated Snake` bauen und in $_ ablegen
$_ = q(=#'64$"5&% ^/",&); tr/!-=^_/`-{OS/;
# Titelleiste schreiben: Cursor auf Position 1,1 - Farbe setzen, `Obfuscated Snake` und Leerzeichen ausgeben
# dann Cursor ans Ende setzen und Punktzahl ausgeben.
print("\e[1;1H\e[44;97m $_".(' 'x$w)."\e[1;".($w-8-int(log($pt+0.1)/log(10)))."H\e[44;97mScore: $pt");
}

# pp() => Zielpunkt (roter Stern) erzeugen, ausgeben und im Feld-Array (@f) speichern
sub pp {
# Leere Position finden
do {
(@b = (int(rand($h - 3)) + 3, int(rand($w - 2)) + 2))
} while($f[$b[0]][$b[1]]);
# Zielpunkt in @f speichern (== 42)
$f[$b[0]][$b[1]] = 42;
# Zielpunkt ausgeben: Cursor setzen, Farbe festlegen, `*` schreiben
print("\e[".join(';', @b)."H\e[40;91m*");
}

# Position, initialisiert mit $h/2, $w/2
@p = (int($h / 2), int($w / 2));
# Richtung (0 = up, 1 = down, 2 = right, 3 = left)
$d = 0;
# Feld-Array mit magic numbers: 0/undef = leer, 23 = Schlange, 42 = Zielpunkt
@f = ([]);

# Titelleiste und 10 Punkte erzeugen
mt();
pp() for (0..10);

# Main loop - Abbruchbedingung: Wand angefahren
while ($p[0] > 2 && $p[0] < $h && $p[1] > 1 && $p[1] < $w) {
# Eingabepuffer lesen
$k = ak();

# Wenn `q` im Eingabepuffer => Spielabbruch
last if ($k =~ /q/);

# Wenn eine Pfeiltaste gedrueckt wird, findet sich im Eingabepuffer \e[A .. \e[D (ggf. bekannt als ^[[A .. ^[[D)
# Das Folgende ist ein Perl-idiomatischer (kurzer) Hack, um dies auf \e[A = 0 .. \e[D = 3 zu mappen und $d
# entsprechend zu aktualisieren. Ausserdem wird der Fall einer 180-Grad-Drehung hier abgefangen (letzte Bedingung)
$d = $k - 0x41 if (($k = ord(substr($k, 2, 1))) && (int(($k - 0x41) / 2) != int($d / 2)));

# Position aktualisieren. Die scheinbar komplexen Berechnungen sparen eine explizite Fallunterscheidung, welche
# deutlich laenger gewesen waere.
$p[int($d / 2)] -= (($d % 2) * 2 - 1) * (int($d / 2) * 2 - 1);

# Wenn Zielpunkt erreicht: Neuen Punkt erzeugen, Score erhoehen, Titelleiste neu schreiben
if ($f[$p[0]][$p[1]] == 42) {
pp();
$pt++;
mt();
};

# Wenn in eigene Schlage gefahren, Game Over
last if ($f[$p[0]][$p[1]] == 23);

# Position im Feld-Array als besetzt markieren (== 23)
$f[$p[0]][$p[1]] = 23;

# Schlange zeichnen (Cursor setzen, Hintergrundfarbe festlegen, Leerzeichen schreiben)
print("\e[".join(';', @p)."H\e[103m ");

# Sub-Second sleep mit select(). Wartezeit ($ww) aus Score berechnen mit unterem Limit (0.01)
select(undef, undef, undef, ($ww = (+0.2 - $pt / 200)) > 0.01 ? $ww : 0.01);
}

# Game Over. Kollisionspunkt markieren: Cursor setzen, Blink-Flag und rote Hintergrundfarbe, `X` schreiben
print "\e[".join(';', @p)."H\e[5;41;97mX";
sleep(5);

# Terminal zuruecksetzen
ReadMode 0;
print "\ec";

#ONLY_PERL_CAN_PARSE_PERL_SO_RUN_ME_IN_PERL#[/src]
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Hallo auch hier in die Runde,

habe heute meine Version nahe Fertigstellung gebracht, dennoch möchte ich eine kurze Vorstellung in Form von Screenshots und einer kleinen Beschreibung, danach die Changelog mit Tagesdetails was hinzugekommen ist und dann ein Link zum Repo posten.

Grundlegendes im Überblick:
Erstellt in C mit SDL2 und SDL2 TTF Font Library und Gimp.

Die Steuerung erfolgt mit WASD oder den Pfeiltasten.
Das Spielfeld beträgt etwas weniger als 640x480, bietet aber genug viele Spielfelder damit das Spiel nicht zu kurz wird.
Es müssen Äpfel gefressen werden um Punkte zu bekommen, bis zu 10 Gegenstände sind gleichzeitig auf dem Spielfeld möglich. Jeder Apfel bringt 2 Punkte plus Multiplikator mit der Länge der Schlange.
Wird eine Wand (noch schwarze Bildbereiche) berührt oder die Schlange trifft sich selbst ist das Spiel zu Ende.

Auch wird die Schlange wird bei jedem Bissen schneller, bis auf einen begrenzten Minimalwert. Eine Anzeige für Zeit, Punktzahl und aufgebaute Länge der Schlage ist auch mit enthalten.

Hier Screenshots der Snake-Variante - Version sollte allerdings korrekt (0.8a) sein, das Datum stimmt allerdings..
snakebite1.png snakebite2.png snakebite3.png


Was noch fehlt, einiges - so kann bis jetzt nicht resettet werden, das Spiel muß geschlossen und neu gestartet werden. Ist aber auf meiner To-Do Liste von Dingen die ich noch gerne implementieren will bevor der Contest zu Ende ist. Dann noch ein paar andere Dinge, aber ich will jetzt nicht zu viel versprechen. Auch sind die ganzen Kommentare noch in Englisch, das würde ich aber definitiv noch vor der finalen Einreichung um- bzw. mit einarbeiten.

Ich werde gern versuchen auch Binaries zusammen zu stellen, aber ich muss schauen in wie weit ich das hin bekomme wegen der Bibliotheken, für Windows könnte ich das noch hinbekommen, unter Linux bin ich mir allerdings sehr unsicher. Da kenne ich mich zu wenig aus.

** Edit:
Habe mich etwas schlauer gemacht wie man die Bibliotheken alle erhalten kann (Windows, Mac OS und Linux) - einige Links dazu mit Download Quellen aus der readme.md:
REQUIREMENTS

Snakebite alias snake is linked to SDL2 - which is required for compiling the c source.
I will try to get binaries for Linux and Windows ready of the app, so one only needs to download the DLL files/binaries.

SDL2 can be obtained at http://www.libsdl.org for Windows, Mac OSX and Linux.
Installation instructions for Linux and Mac OS can be found at: https://wiki.libsdl.org/Installation
For Windows, binaries for 32bit and 64bit can be downloaded at: https://www.libsdl.org/download-2.0.php

SDl2 TTF font library can also be downloaded for Windows (32bit/64bit) at:
https://www.libsdl.org/projects/SDL_ttf/

SDL2 TTF font library installation or compiling instructions can be found at:
https://www.libsdl.org/projects/SDL_ttf/docs/SDL_ttf.html

One ressource to find Raleway is (but its packaged with the app already):
http://www.fontsquirrel.com/fonts/raleway

Hier auch die Changelog an was ich wann gearbeitet habe (neueste Änderungen stehen oben):
[src=text]
28.09.2015
- Added option to reset the game by pressing "R" key
- Added option to pause the game by pressing "P" key
- Fixed an issue where the controls by using WASD where strangely mixed up
- Fixed code to use pointer versus regular structs where approperiate
this wasnt the case earlier, in example for the struct gameLogic "logic" var

- Added multiple snake support, now two snakes can be in the game
- Removed pit structure which was obsolete as the gameLogic structure could
hold all this data instead over fieldX count, fieldY count and field total
count

- Resolved an illegal memory write upon snake extension
- Moved snake extension into separate function
- Moved snake placement into separate function
- Corrected UI not to offset the game space in default window dimensions so much
- Changed UI to be little smaller
- Added enums for:
INITIAL_GAME_SPEED, GAME_SPEED_DECREASE, MINIMUM_GAME_SPEED

- Moved snakeFields into the snakeDef structure instead of logic
- Wrote resetGame function which resets logics and snakes, no freeing there
- Changed font holder to rw58 instead of rw64
- Moved hasNewDirection for head direction control into snakeDef structure,
so every snake knows if it has been moved in this frame

27.09.2015
- Updated snake gfx with field background image
- Minor code cleanups and improvements
- Tail no longer flips direction after snake ate
- Added logic struct with:
score, snakeFields, lastPowerUp, lastFood, itemCount,
itemFields, items, itemAge

- Splitted up enums to be more precies what each one holds, added items enum
- Added function getFieldIndex:
To retrive index of field by p-cords

- Added more comments in the code
- Added more checks for out of memory errors
- Added precised "ERROR: msg" display on errors
- Added function getAvailableRandomFieldIndex:
Which gets a random unused field index

- Added item spawing if item amount is below MAX_ITEMS
- Added first collectedable item (food) into gameplay
- Added SDL2 TTF font library for font display see readme.md for notes
- Added fonts/Raleway including license, see readme.md
- Added death display messages
- Added death by wall hit and snake self bite


26.09.2015
- Creating basic snake movement, now right way of doing it!
- Adding corner cases for middle snake parts
- Improving keyboard controls to not accept movement to opposite direction
to avoid tail biting
- Added corner processing - working
- Added snake extension by keypress for debugging
- Minor code cleanups and more commenting


25.09.2015
- Adding inital source code and gfx to project to repository
- Updating readme.md with requirements
- Changed texture loading to function handling
- Created images for snake parts, head and tails gfx; added textures for those
- Added pitMin, pitMax for x and y axis to define game area boundaries
- Adding more details to snake parts structure (isTail, orientation store)
- Added snake creation and stripped of unrequired details, added some others
- Started with snake render and beginning of movement (broken at present)


23.09.2015
- Initial code version 0.1
- Image creation and loading of field texture and display in rendering loop
- Main loop addition
- Window quit even handling
- Definition of snake, tail and pit and field structures
[/src]


Die Projektdaten finden sich auf Gitlab unter: https://gitlab.com/ngb/NGB-Snake_theSplit/tree/master

Dort ist auch eine Readme.md die auf die Requirements eingeht, wie auch weitere Links mit Hilfen wie das Spiel kompiliert werden kann. Sourcen für die Grafiken sind auch enthalten wie auch der Font der zur Darstellung benötigt wird.
 
Zuletzt bearbeitet:

0xFADED

$coffee->toCode();

Registriert
26 Juni 2015
Beiträge
115
Ort
XFxFQVJUSA==
Hey zusammen :)

Ich melde mich hiermit offiziell vom Wettbewerb ab, da ich die Deadline zu 99,9999% reißen würde.
Zu Hause und auf der Arbeit ist grade einfach zu viel los.

Viel Spaß noch!

LG :coffee:
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Das ist schade... :( - ist doch noch so viel Zeit, noch gut 1 1/4 Monate bis zur "Abgabe". Also ich würde dir einfach ans Herz legen nicht gleich alles über Bord zu werfen - sondern einfach zu sehen wie es zeitlich und von der Motivation her passt. Kann ja schneller passieren als man denkt das man wieder Luft hat und wenn du mal nebenbei darüber nachdenkst kann man doch ein wenig daran werkeln.

Soll kein Vorwurf sein, aber nur der Wink das noch Zeit ist... - auch wenn es keine 3 Monate mehr sind. ;)
 

Novgorod

ngb-Nutte

Registriert
14 Juli 2013
Beiträge
3.055
wie werden da eigentlich die futter-felder generiert? sind immer 10 auf dem spielfeld und wenn eins gefressen wird, kommt ein neues hinzu? oder kommt nach einer bestimmten zeit (x frames) ein neues hinzu, egal ob eins gefressen wurde oder nicht, bis ein maximum erreicht wird? fängst du auch den fall ab, wenn das spielfeld "voll" ist, d.h. weniger als 10 felder frei sind und alles andere mit der schlange gefüllt ist? - in dem fall wären alle freien felder mit futter gefüllt und es könnte kein neues dazukommen.. was ist die "sieg"-bedingung? und wird es nicht zu einfach, wenn es mehr als ein futter-feld gibt? ;)
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Mit den X Frames hast du nicht unrecht, ich hab einen Counter laufen der runter zählt wann neues Futter plaziert werden darf. Am Anfang ist die Szene allerdings leer, das Futter/die Äpfel werden dann während des Ablaufs erzeugt, dabei erstelle ich eine Liste aus den frei verfügbaren Feldern auf denen kein Futter platziert und die Schlange nicht präsent ist und wähle dann per Zufall aus dieser Liste ein Feld aus und Plaziere dort.

Es können sich bis zu 10 Gegenstände gleichzeitig auf dem Spielfeld befinden, die Zahl ist allerdings variable einstellbar im Quelltext - enum logicData "MAX_ITEMS".

Allerdings habe ich noch nicht den Fall berücksichtigt wenn kein Feld mehr verfügbar ist, dann müsste das noch entsprechend abgefangen werden. Danke für den Hinweis :T

Ursprünglich war es auch geplant das Futter nach einer bestimmen Zeit wieder verschwinden kann, also mit begrenzter Lebensdauer auf einem Feld verfügbar ist. Natürlich deutlich länger als das platzieren dauert, aber das ist noch nicht implementiert - und ich bin gerade auch am überlegen ob man das überhaupt implementieren sollte...

Es ist schon etwas einfacher, da geb ich dir Recht, wenn das Futter, welches zum Beispiel in einer Ecke liegen kann, nicht geholt werden muß, weil man circa 9 andere Futterquellen verteilt über das Spielfeld erreichen könnte - aber man darf nicht vergessen, mit jedem Bissen wird die Schlage länger und schneller. Man kommt zwar so schnell zu Punkten - aber dadurch wird das Spiel auch insgesamt schneller und man kommt früher an den Punkt das die Schlange taktisch klug manövriert werden muss - da es auch relativ viele Spielfelder gibt, ist dies etwas erträglicher. Gleichzeitig wird dem Spieler aufs Auge gedrückt das Zeug "schnell" zu mampfen.

Wenn ich es mir aber so recht überlege, sollte das Futter sich nicht automatisch auflösen, dann wäre der Reiz etwas Futter an einer schwierigen Position zu ergattern nicht vorhanden.

Im weiteren hatte ich angedacht auch PowerUps drin zu haben, die der Schlange Superkräfte geben - zum Beispiel das man durch Wände "schreiten" kann für eine bestimmt Zeitdauer mit Countdownanzeige. Aber bisher gibt es nur Futter. ;)

Aber irgendwas was die Mechaniken aushebelt oder das Spiel etwas aufmischt wäre irgendwie schon witzig.
 

Novgorod

ngb-Nutte

Registriert
14 Juli 2013
Beiträge
3.055
wie wär's mit "theSplit"? - ein powerup, das die schlange in der mitte in 2 schlangen teilt, von denen man eine mit den pfeiltasten und die andere mit WASD steuert? :D sobald eine der schlangen kollidiert, verschwindet sie aus dem spiel, quasi wie multiball beim flipper.. man verliert dann quasi die hälfte seiner schlange, was das spiel verlängert, und zudem kann man mit der doppelten schlange doppelt so viele punkte sammeln, wenn man ninja-reflexe hat :D.. das powerup darf dann natürlich nur entsprechend selten auftauchen..
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Ehehehe..... ich setzt es mal auf die "possible to-do" Liste für später - rein von der Technik her wäre es schon möglich mehrere Schlangen auf dem Spielfeld zu haben.... ;)

Soll das vor oder nach dem Multiplayer Modus (an einem Gerät) kommen? ;)

Was mir so bisher in den Sinn kam: Durch Wände gehen können (quasi Links aus dem Spielfeld, auftauchen am recht Rand usw.) , über seinen Körper fliegen und sich selbst nicht beißen, ein Leben das nach 66 anderen Gegenständen kommt bei dem man drauf gehen kann aber die Punktzahl dann nicht resettet wird, "Mushroom Mode" (das ganze Spielfeld und die Schlange werden invertiert dargestellt), Time flies by Power Up - Futter und Gegenstände werden mit höherer Rate platziert....

Es fehlt dann noch eine Countdown Anzeige, aber im Grunde wäre das alles möglich ;)

Sind nur ein paar Ideen, ist auch nicht so originell wie deine - aber das wäre schon witzig wenn man einen zweiten Kopf hinter sich her zieht und den abspalten kann wenn man will der dann die Hälfte der Gesamtlänge übernimmt.

Nur man sollte das platzieren mancher dieser Gegenstände so einstellen, das diese entweder erst später auftauchen - ab einer gewissen Länge der Schlange zum Beispiel. Da ist auch der Reiz größer sich etwas hoch zu spielen und es wird nicht gleich vorweg zu leicht.

Ach ja, was defintiv noch fehlt ist eine Pause Taste ;)
 

drfuture

Zeitreisender
Teammitglied

Registriert
14 Juli 2013
Beiträge
8.748
Ort
in der Zukunft
Bis meine VB.NET Version fertig ist ... hier mal eine *sehr kreativ* gelöste Version von Mir aus dem Jahr 2003 :D
Habe versucht das ganze so anzupassen das die Libs die es unter win7 und neuer nicht mehr gibt zu compilieren ist - aber irgendwie Stürzt meine Version von VB6 die ich noch habe trotzdem ab - daher kann ich gerade keine .exe bieten :( - Direkt starten funktioniert aber soweit ....
 

Anhänge

  • Snacke.zip
    54,3 KB · Aufrufe: 197

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Oh, okay, das klingt einfach. :T

Aber ich bin gerade in meinem Linux Desktop und kann es daher nicht testen, leg ich mir für morgen auf die Agenda :cool:

Morgen im Laufe des Tages werde ich mich aber mal damit befassen :T

Was ich gerade so sehe beim Überfliegen des Quelltexts, du gibst zeitlichen Punktabzug bei dem der Spieler sogar verlieren kann wenn unter bestimmten Wert? Also das die Schlange quasi verhungert? Oder war sowas auch in der originalen Snake Version?

Beim verhungert kommt mir noch eine Idee für meine Variante... :D
 

Fhynn

Wird jetzt vernünftig.
Veteran

Registriert
13 Juli 2013
Beiträge
12.937
Durch Wände gab es übrigens bei Snake 2. Ich freue mich ja auf die HTML/CSS/JS Version von sharpy :p
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Fhynn for Beta-Testerin!

Für dich bau ich ein Power up ein, eine Chilli. Und in einer Wirkungsdauer von X bekommt man für jede danach gefressen Apfel/Punkt 5 fach mehr Punkte für eine begrenzte Dauer und wächst nicht mal dabei :p

Diese Idee könnte mir den Sieg bringen..... :D
 
Oben