Ajax spelletje The Box (Multiple targets)

Door Rudie dirkx, 21 jaar geleden, 5.439x bekeken

De bedoeling van het spel is redelijk makkelijk. Zorg dat je mannetje (groen) de dozen op de targets (grijs met "T") duwt. Dozen tegen muren en hoeken kunnen er niet meer vanaf resp. uit. (soms wel van de muur af, maar dat merk je nog wel.)
Het is een retemoeilijk spel! Ik kom serieus niet verder dan level 1 :D
Je moet echter wel minstens 1 level uitspelen, want dan zie je hoe ajax/js daar mee omgaat...
Ik vind het een supervet spelletje en het is ook wel tof gemaakt (al zeg ik het zelf). De snelheid van de pusher en je boxes ligt aan je server. Op mijn localhost issie retesnel! Op jouwmoeder.nl iets langzamer.

Er zijn een paar dingen voor nodig...

connect.php
zit mysql verbinding in, maar wordt niet gebruikt
zit functie goede_gebruikersnaam() in (zal m hieronder printen)

json.php
php lib (heb m in php 4 en 5) die php arrays (etc) omzet naar JSON. Voor meer info: javascript json

prototype.js
downloaden van prototype.js
Meer info: prototype.js.html


functie goede_gebruikersnaam():

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
<?php

function goede_gebruikersnaam( $usr )
{

    return ( 3 <= strlen(trim($usr)) && 12 >= strlen(trim($usr)) );
}


?>



Voor meer info: bel, sms, fax, rooksignalen, ik doe het allemaal.
Veel plezier ermee


PS 118a.php is ook cool :) 1 target voor alle boxes, mzl

Voorbeeld: http://games.jouwmoeder.nl/118b.php

Gesponsorde koppelingen

PHP script bestanden

  1. ajax-spelletje-the-box-multiple-targets

 

Er zijn 37 reacties op 'Ajax spelletje the box multiple targets'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Eris -
Eris -
21 jaar geleden
 
0 +1 -0 -1
Code tags gebruiken aub.

En daarnaast mis ik nog de key up / down / left / right voor de ultime spel ervaring...
M Ypma
M Ypma
21 jaar geleden
 
0 +1 -0 -1
Bedankt voor dit mooie voorbeeld van hoe het niet moet!
Dit is een voorbeeld van overbodig gebruik van ajax...
waarom niet puur javascript? en alleen de volgende levels ophalen met ajax? Dit houd je spel lekker snel. Het is onnodig om elke stap die ik zet naar je server te sturen...om vervolgens weer te wachten.
Wouter
Wouter
21 jaar geleden
 
0 +1 -0 -1
Ik snap het spel echt niet mss beter klein voorbeeldje
Menno
menno
21 jaar geleden
 
0 +1 -0 -1
Het is heel simpel je moet de rode vakjes op de witte vakjes met de T erop duwen. Besturing zijn de pijltjestoetsen.
Het is wel leuk spel.
Arjan Schuurman
Arjan Schuurman
21 jaar geleden
 
0 +1 -0 -1
GEWELDIG :D:D:D Hoe verzin je tog zoeits
Legolas
Legolas
21 jaar geleden
 
0 +1 -0 -1
is gewoon sokoban, is heel oud spelletje :P
Woopie100
Woopie100
21 jaar geleden
 
0 +1 -0 -1
Heel mooi gedaan
Rudie dirkx
rudie dirkx
21 jaar geleden
 
0 +1 -0 -1
Quote:
Code tags gebruiken aub.

En daarnaast mis ik nog de key up / down / left / right voor de ultime spel ervaring...


code tags staan er in, maar php en javascript door elkaar gaan blijkbaar niet zo lekker (klote ubb systeem). "de key up / down / left / right" heb je blijkbaar niet geprobeerd, want dat werkt gewoon... Misschien eerst ff proberen?

@Legolas, idd, sokoban :) Was de naam kwijt
Rudie dirkx
rudie dirkx
21 jaar geleden
 
0 +1 -0 -1
Quote:
Bedankt voor dit mooie voorbeeld van hoe het niet moet!
Dit is een voorbeeld van overbodig gebruik van ajax...
waarom niet puur javascript? en alleen de volgende levels ophalen met ajax? Dit houd je spel lekker snel. Het is onnodig om elke stap die ik zet naar je server te sturen...om vervolgens weer te wachten.

Je wil niet dat je moves in javascript worden opgeslagen, dan worden ze nl nergens opgeslagen. Als je geen langzame server hebt kan ie dit makkelijk aan
doegies
Edit:
schelden doe je maar ergens anders
Eris -
Eris -
21 jaar geleden
 
0 +1 -0 -1
Bedankt voor je comentaar maar die code tags staan er echt niet bij.
Michael -
Michael -
21 jaar geleden
 
0 +1 -0 -1
Level 1
Boxes: 1
Walks: 0
Pushes: 0

Level 2
Boxes: ?
Walks: 0
Pushes: 0

Werkt niet echt. En het lopen is erg irritant (bij elke stap 2sec wachten)
En hoor je niet de bron erbij te zetten als je 'm niet zelf hebt gemaakt?

Quote:
Het is een retemoeilijk spel! Ik kom serieus niet verder dan level 1 :D

Lijkt me niet dat je 'm dan zelf hebt gemaakt als je Level 1 nog niet eens kunt halen terwijl die kei makkelijk is.
Thijs X
Thijs X
21 jaar geleden
 
0 +1 -0 -1
Zeer mooi scriptje ^^
iemand al tot level 3 gekomen btw?
M Ypma
M Ypma
21 jaar geleden
 
0 +1 -0 -1
@tommie
ik begrijp uit de edit dat je niet erg tevreden was met mijn reactie...dit vind ik jammer. Je probleem van het opslaan is in mijn ogen geen reden om toch alles met een server request te doen... het opslaan zou je bijvoorbeeld ook kunnen doen door cookies te zetten, zo blijven je stappen behouden...
Ook maak ik uit je tekst op idd dat je dit niet zelf hebt gemaakt... Ik zou graag zien wie dit wel heeft gemaakt zodat ik deze verwijten naar de juiste persoon kan sturen...en hij mijn kritiek en of credits kan lezen...
pronken met andermans werk is erg jammer...
zou je dit kunnen weerleggen? dus als het van jou is zou je dat dan even duidelijk willen maken?
Rudie dirkx
rudie dirkx
21 jaar geleden
 
0 +1 -0 -1
Ik weet weer waarom het niet alleen in js kon :)
Omdat als je alleen het laden van een level (dus het opslaan van het resultaat van het vorige level!?) met ajax (php) doet, kan je super super makkelijk cheaten. Omdat je dan heel het javascript gebeuren niet hoeft te doen (who knows!?) en je meteen een nep request kan maken naar php met leuke resultaten (goede score, nette tijd, etc).
Als je elke request nodig maakt, is er geen valsspelen nodig. Javascript hoeft niet gebruikt te worden, is alleen makkelijker voor de speler (cheaten niet mogelijk). Een nep request naar server heeft geen zin, want die request is nodig en is juist het spel.

Quote:
Ook maak ik uit je tekst op idd dat je dit niet zelf hebt gemaakt... Ik zou graag zien wie dit wel heeft gemaakt zodat ik deze verwijten naar de juiste persoon kan sturen...en hij mijn kritiek en of credits kan lezen...

Heb het helemaal zelf gemaakt (al ff geleden, maar pas met ajax). Het idee is echter niet van mij (voila Sokoban). Dat is oud en al 900miljoen keer nagemaakt.

Weet niet hoe ik duidelijk moet maken dat het van mij is... Misschien door het te zeggen? Het is van mij. Zie daar.

@Turmin
Zoals ik al zei kom ik niet verder dan level 1... Level 1 dus wel. Ik kan best levels bedenken, ze uitspelen echter niet. Ik kan bet een ontzettend moeilijk concept bedenken voor nieuwe e-store, het maken kan ik echter niet zelf. Heb ik het concept dan niet zelf bedacht? Geen waterdichte redenatie dus.

Hoe dan ook... Zelf gemaakt en als je niet leuk vindt moet je niet spelen.

@Michel
Zou graag weten hoe jij de stappen veilig op zou slaan dan!? Je wil (zoals je in de bron ziet) nl. meer opslaan dan de map. De locatie van de pusher, de boxes, de begintijd, het level (nummer), de spelersnaam (niet perse). Vast nog wel wat.
Zou je 1 cookie maken met een huge array erin? Of 6 verschillende cookies? Ofzo?
Elke stap is in dit spel even belangrijk (of je nou doos duwt of niet), dus heb ik ervoor gekozen elke stap door php te laten berekenen.

Quote:
(bij elke stap 2sec wachten)

Dan is er iets mis met je computer, niet met het spel of de server waar heb op draait (als het mijn server is).
Rudie dirkx
rudie dirkx
21 jaar geleden
 
0 +1 -0 -1
Quote:
Bedankt voor je comentaar maar die code tags staan er echt niet bij.

ehm wat is er nou veranderd dan? er stonden echt zeker \[code\] tags in... Maar nu ziet het er fatsoenlijk uit...
Rudie dirkx
rudie dirkx
21 jaar geleden
 
0 +1 -0 -1
game 123 zou zo wel kunnen, die heeft namelijk twee verschillende acties.
jumper setten
jumpen

het setten van de jumper gaat nu naar php en dan wordt de jumper loatie opgeslagen in session en dan wordt met jumpen de target coordinaten opgestuurd. Wat dan ook kan (beter?) is de from coordinaten (jumper locatie) ook meesturen en alleen 'opslaan' in javascript. Dan worden er alleen requests gestuurd naar php als er gejumpt wordt... Ideetje?
Kga het maken.
http://games.jouwmoeder.nl/123_2.php
Jelmer -
Jelmer -
21 jaar geleden
 
0 +1 -0 -1
Ik denk dat het een stuk fijner speelt als je 'fire and forget' zou doen. Dus je stuurt een request, voert vast met JS je actie uit, en PHP houdt bij of alles goed gaat. Alleen waneer het mis gaat (let op dat de requests nu wel synchroon na elkaar moeten gaan lopen) mag je lekker niet naar het volgende level. Maar zo zou je niets meer merken van het PHP backend. Pas waneer je het einde van het level hebt gehaald wordt PHP geraadpleegd of alles goed is gegaan. Zoja, volgende level.
Rudie dirkx
rudie dirkx
21 jaar geleden
 
0 +1 -0 -1
Quote:
(let op dat de requests nu wel synchroon na elkaar moeten gaan lopen)

dan moet je dus nog langer gaan wachten en dan heeft het geen zin dat javascript het voorwerk doet, want php moet TOCH on the spot controleren... Laat dan direct door php controleren en niet js dubbel werk doen...

Quote:
Pas waneer je het einde van het level hebt gehaald wordt PHP geraadpleegd of alles goed is gegaan.

Hoe wil je dat gaan controleren? Hele map meesturen in request? Die kan je faken (je weet hoe ie er uit moet zien). History controleren (meesturen dus, of in cookie (auch) opslaan)? Dat is kk werk!

Als ik logica bij javascript leg gaan er geheid dingen fout. En om dat te controleren is PHP nodig. Maar ik wil PHP niet teveel gebruiken, dus laten we JS vantevoren toch stukje aankloten. Daarna controleren we met PHP of JS het goed heeft gedaan. Zo niet... [??]
Klinkt niet als een geweldige optie...
Is dit niet het nut van Ajax? Snelle kleine pulls en pushes?
Jelmer -
Jelmer -
21 jaar geleden
 
0 +1 -0 -1
Dit wat jij doet is niet het nut van ajax. Jij laat nu juist alles maar op de server uitvoeren uit veiligheid. Ik stel voor om de user-experience te houden (die jij nu keihard laat vallen met jouw aanpak). Voor iedere move wordt de server geraadpleegd. Ook in mijn geval. Verschil is dat in mijn idee je gewoon verder kan spelen terwijl de server je move verwerkt. De server houdt dan een 'kopie' bij als het ware. En dat kan best met een sessie, want dat doe je nu ook. Maar door Javascript het direct door te laten voeren hoef je niet te wachten op de relatief tergend langzame server. Daarbij zal je nooit ver voor de server uitlopen, vooral bij dit soort spelletjes zit je wel even te denken welke move je gaat maken.
Michael -
Michael -
21 jaar geleden
 
0 +1 -0 -1
Quote:
@Turmin
Zoals ik al zei kom ik niet verder dan level 1... Level 1 dus wel. Ik kan best levels bedenken, ze uitspelen echter niet. Ik kan bet een ontzettend moeilijk concept bedenken voor nieuwe e-store, het maken kan ik echter niet zelf. Heb ik het concept dan niet zelf bedacht? Geen waterdichte redenatie dus.

Hoe dan ook... Zelf gemaakt en als je niet leuk vindt moet je niet spelen.

Sorry if i'm wrong. Maar als ik een spel maak en bedenk de levels dan weet je de oplossing ook. Anders kan je nooit geen levels maken die wel te halen zijn. Als je zelf niet weet wat de oplossing is hoe weet je dan dat er wel eens een oplossing is?
Jelmer -
Jelmer -
21 jaar geleden
 
0 +1 -0 -1
Het kan ook een port van een bestaand (javascript?) spel zijn, waar hij de levels uit heeft overgenomen.
Jan geen
Jan geen
21 jaar geleden
 
0 +1 -0 -1
Weet je wel zeker dat alle levels kunnen, ik snap niet goed hoe je iets kan verzinnen en het vervolgens niet kan oplossen, als jij een level bedenkt weet je toch ook de oplossing ervoor anders weet je toch niet of het level oplosbaar is? :S

ps: heeft iemand level 2 al opgelost? volgens mij is het namelijk niet zo gek dat ie um zelf niet kan oplossen omdat ie niet op te lossen valt??
Rudie dirkx
rudie dirkx
21 jaar geleden
 
0 +1 -0 -1
Ik weet niet of alle levels kunnen nee :) Denk dat er idd een paar zijn die niet kunnen. Heb er ook pas een paar aangepast naar hoe ik ze wel uit kon spelen en nog steeds moeilijk vond. Als je betere levels hebt, stuur maar, of gebruik de editor op http://games.jouwmoeder.nl/118a.php?page=editor

Turmin, ^.

Jelmer, danku voor reacties, snap je echter niet :)
Je zegt dus precies hetzelfde als ik... Javascript het werk laten doen, en PHP ook...
En zoals ik al zei (en jij niet op hebt geantwoord, toch!?) moet er iets van reference zijn voor het einde van het level en dat is er niet zonder php. Je kan in JS namelijk niets opslaan... Wil wel iets van hiscore en top10, dus moet wel opslaan wanneer iemand begonnen is en wanneer ie klaar is. Daarom moet zeker zijn dat iemand het level uit heeft gespeeld voordat ie zogemaand klaar is (neprequest).

Quote:
Het kan ook een port van een bestaand (javascript?) spel zijn, waar hij de levels uit heeft overgenomen.

Die snap ik niet!? Ik ga je dadelijk ff PMen over dit en nog ander vraagje :) Volgens Kasper ben je de beste, dus hoop dat je me kan en wil helpen.
tschuss
Rudie dirkx
rudie dirkx
21 jaar geleden
 
0 +1 -0 -1
Heb level 1 en 2 tm 5 uitgespeeld. 2 is echt niet te doen. Kan gewoon niet. Ga m aanpasses.

Edit:
Aangepast. Een steentje (wall) verzet, stuk makkelijker nu :)


21 jaar geleden
 
0 +1 -0 -1
Zit bug in spel... in 3de level kan je rooie blokjes weghalen :)
Leroy Boerefijn
Leroy Boerefijn
21 jaar geleden
 
0 +1 -0 -1
@wouser, hoe dan??
Rudie dirkx
rudie dirkx
21 jaar geleden
 
0 +1 -0 -1
Quote:
Zit bug in spel... in 3de level kan je rooie blokjes weghalen :)

Lol hoe dan ja? Maar het maakt niet uit. Weet niet hoe, maar is niet erg, want als je blokjes weghaalt zal je nooit aan de 3/3 blokjes op goede plaats komen... Dus speel je het level niet uit. Eigen schuld!? Of niet?
Niels
Niels
21 jaar geleden
 
0 +1 -0 -1
ik kan level 8 niet uitspelen :P
Erik Rijk
Erik Rijk
21 jaar geleden
 
0 +1 -0 -1
In level 3 kan je een rood blokje over een ander rood blokje heen schuiven...weg blokje...
Koos-Bert
Koos-Bert
21 jaar geleden
 
0 +1 -0 -1
Ik snap niet dat je level 2 niet kan halen. Binnen 1 minuut klaar...
Benny Lava
Benny Lava
21 jaar geleden
 
0 +1 -0 -1
Level 8 kan je niet uitspelen, de vooraf liggende gaat wel.
(je moet bij level8 een wall weg halen, want dit is in mijn ogen onmogelijk.)

En persoonlijk vind ik level 5 en 6 moeilijk, 5 kan ik niet uitspelen -,- maar dat zegt denk ik meer iets over mij. Level 20 zit bij mij een bug (fout) ik heb 2x een groen vakje (you).

Dit gaat over 118b.php voor de duidelijkheid.
Hipska BE
Hipska BE
21 jaar geleden
 
0 +1 -0 -1
Quote:
Level 8 kan je niet uitspelen, de vooraf liggende gaat wel.
(je moet bij level8 een wall weg halen, want dit is in mijn ogen onmogelijk.)

weet niet of hij nu al aangepast is, maar ik heb hem net uitgespeeld in 1 keer zonder vast te zitten, hij is echt niet moeilijk.
Rudie dirkx
rudie dirkx
21 jaar geleden
 
0 +1 -0 -1
Heb een aantal levels aangepast.
Heb nu 118b.php helemaal aangepast (100% ajax wordt het) dus gaat helemaal fout :D Nog niet zo soepel.
Levels wel gewoon speelbaar en binnenkort een top10 systeempje (een onfeilbaar top10 systeempje, niet gevoelig voor fraude).
Rudie dirkx
rudie dirkx
21 jaar geleden
 
0 +1 -0 -1
Quote:
weet niet of hij nu al aangepast is, maar ik heb hem net uitgespeeld in 1 keer zonder vast te zitten, hij is echt niet moeilijk.

Dat is die grote he!? Van 14 breed en 10 hoog. Die is nieuw (gejat!) en niet zo moeilijk

Edit:
Die daarna (level 9, 3 boxes, 3 targets) is wel weer t**ing moeilijk!!


Edit:
10 ook net uitgespeeld. Nu weer verder coden. Javascript experts in de house??
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Vincent Huisman
Vincent Huisman
16 jaar geleden
 
0 +1 -0 -1
zegt hij dan dat het origineel moet zijn? hij heeft het nu in js gemaakt en die zijn allemaal in flash

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. ajax-spelletje-the-box-multiple-targets

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.