Newsgroup: it.comp.www.php
Titolo: Una cosa mai vista (almeno credo) in PHP :)

Un modo un pò più simpatico, e decisamente meno noioso di usare il php
:)
 
http://www.alephp.altervista.org/labirinto.php
 
 
parametri opzionali:
 
righe=(numero)
colonne=(numero)
 
esempio:
 
http://www.alephp.altervista.org/labirinto.php?righe=21&colonne=41
 
 
-- 
Alessandra
 
Credo che ci siano due tipi di persone al mondo: quelle che hanno
credenze mistiche, e quelle che non ce l'hanno. Questi ultimi credono
che la vita sia tutto ciò che abbiamo, e che dobbiamo godercela e
aiutare gli altri a godersela. Gli altri pensano che la vita futura sia
più importante di quella presente, e temo che faranno saltare in aria
il mondo - Harold Kroto, premio Nobel per la chimica del 1996

 colonne=(numero)
 
Chiamandolo con:
 
http://www.alephp.altervista.org/labirinto.php?righe=11&colonne=11.4
 
 
Ottengo:
 
Fatal error: Maximum execution time of 30 seconds exceeded in 
/membri/alephp/labirinto.php on line 9
 
Lo so... sono perverso :-)
 
Per il resto e' simpatico.
 
-- 
Pubblicita' regresso: 
http://www.ferrero.org
 
** Per scrivermi in mail, sostituire nutella con ferrero...
** To contact me by email, change nutella to ferrero...

 Per il resto e' simpatico.
 
grazie :)
 
-- 
Alessandra
 
Se parli con Dio stai pregando. Se Dio parla con te, sei uno
schizofrenico. Thomas Szasz


fantastico!!
 
Ora devi solo far finire il labirinto all'utente tramite javascript ;)

 Ora devi solo far finire il labirinto all'utente tramite javascript ;)
 
ah ecco perchè non riuscivo a giocarci! :D
 
-- 
http://www.evilripper.net
 
http://www.flickr.com/photos/evilripper/
 

 
http://www.alephp.altervista.org/labirinto.php?righe=21&colonne=41
 
 
1)
http://www.alephp.altervista.org/labirinto.php?righe=1000&colonne=10000
 
 
Fatal error: Maximum execution time of 30 seconds exceeded in /membri/
alephp/labirinto.php on line 6
 
 
2)
http://www.alephp.altervista.org/labirinto.php?righe=1000&colonne=100000
 
 
Fatal error: Allowed memory size of 94371840 bytes exhausted (tried to 
allocate 100103004 bytes) in /membri/alephp/labirinto.php on line 42
 
 
I controlli sull'input degli utenti non sono mai abbastanza :)
 
Ciao,
Matteo

 I controlli sull'input degli utenti non sono mai abbastanza :)
 
vero. Ma il mio era solo un esercizio di stile, quindi non sono andata
troppo per il sottile quanto a controlli.
 
Interessa, invece, il gioco del Paroliamo in php? ;) 
 
-- 
Alessandra
 
Chi insegna che non la ragione, ma l'amore sentimentale deve governare,
apre la strada a coloro che governano con l'odio - Karl Popper

Questa nuova versione è ancora più carina ;)
 
www.alephp.altervista.org/labirinto-grafico-2.php
 
 
oltre ad essere grafica (usa le GD), implementa un algoritmo diverso di
generazione del labirinto.
 
-- 
Alessandra
 
Perche' dovrei permettere a quel dio che dovette affogare i suoi figli
di dire a me come crescere I miei figli ? - Robert Green Ingersoll

 generazione del labirinto.
 
Carina la grafica ma decisamente piu' lento, inoltre, se gli passo: 
righe=15&colonne=15 si ferma con:
 
Fatal error: Maximum execution time of 30 seconds exceeded in 
/membri/alephp/labirinto-grafico-2.php on line 94


 /membri/alephp/labirinto-grafico-2.php on line 94
 
devi aumentare un pò i valori ; la creazione dei "buchi" nel labirinto,
che è ugualmente casuale, potrebbe portare su tracciati molto piccoli a
non far restare abbastanza spazio al labirinto in sè o alle ciotole di
cibo :)
 
-- 
Alessandra
 
Se l'ateismo fosse una religione, allora la salute sarebbe una malattia
- Clark Adams

ti prego fai la versione 'giocabile' tramite js ;)

che poi scusa, perchè far lavorare le gd inutilmente?
fai si che lo script generi dei div con il loro class, e la grafica la lasci ai css ;)

 ti prego fai la versione 'giocabile' tramite js ;)
 
ahahaha grazie per l'apprezzamento.. ma non conosco il js abbastanza
per fare niente del genere. Se tu fossi in grado di farlo, saresti il
benvenuto.. posso creare il labirinto con l'html anzichč come unica
png, e tu scrivi la procedura per farlo attraversare dal giocatore. Che
ne dici?
 
-- 
Alessandra
 
Io sono circondato da preti che ripetono incessantemente che il loro
regno non č in questo mondo, eppure allungano le mani su tutto quello
che possono prendere - Napoleone

 la lasci ai css ;)
 
vero, si risolverebbe in questo modo tra l'altro il problema
dell'occupazione di memoria della png su labirinti molto grandi (che fa
andare il sistema in overflow, a seconda di quante righe e colonne ci
sono). Comunque, la gestione con l'html non permetterebbe nè di avere
un'unica immagine salvabile, nè di ridimensionare le celle a piacere
(non facilmente, almeno..). Preferisco, per ora, la soluzione col png.
Ho ottimizzato anche l'elaborazione della png, usando
l'imagecopyresampled al minimo indispensabile, e ho riprogettato
l'algoritmo che crea i "buchi" nel labirinto in modo da funzionare
anche con 15x15 celle. In giornata upperò la nuova versione sul server.
 
-- 
Alessandra
 
Dio creò l'uomo a sua immagine: ciò vuol dire che fu probabilmente
l'uomo a creare Dio secondo la propria immagine - Georg Cristoph
Lichtenberg

> In giornata upperò la nuova versione sul server.
 
uppata!
 
i parametri sono:
 
righe=(da 15 a 99)
colonne=(da 15 a 99)
dimcella=(da 10 a 100)
 
ad esempio:
 
http://www.alephp.altervista.org/labirinto-grafico-2.php?righe=29&colonne=29&dimcella=100
 
 
nel labirinto ora sono presenti pure 5 cagnacci feroci ;)
 
-- 
Alessandra
 
Mosè: quest'uomo che tanto ha dato al ciclismo in Italia e nel mondo...
- Giobbe Covatta

 che possono prendere - Napoleone
 
Posso provare, solo che il tuo script html mi deve restituire un array json ('stampato' nella pagina) in modo che da js riesco a 'capire' la sua struttura..  dai ci stò, non garantisco niente ma appena ho un attimo di tempo ci provo!

 appena ho un attimo di tempo ci provo!
 
ok perfetto! io ho tempo solo nel weekend, perň, per mettere mano al
sorgente.. durante la settimana lavoro. Ci sentiamo sabato, se la tua
email č valida ti scrivo via email direttamente.
 
-- 
Alessandra
 
Inferno cristiano, fuoco; inferno pagano: fuoco; inferno maomettano:
fuoco; inferno indů : fiamme. A credere alla religioni dio č un
rosticciere - Victor Hugo

 rosticciere - Victor Hugo
 
yep, va bene!
 
pensandoci bene la parte js è molto semplice, una volta 'mappate' le celle per capire dove si può andare e dove no ;)

Questo è scritto in PHP:
http://oreste.parlatano.org/inception/
 

 
http://oreste.parlatano.org/inception/
 
 
Mica male... come avete calcolato l'algoritmo del labirinto?
Fantasia o esistono dei pattern ?

 Fantasia o esistono dei pattern ?
 
L'avevo calcolato per un plugin di jquery, lo stesso criterio l'ho poi usato per la versione grafica php. Il criterio si può facilmente estrapolare dal plugin jquery che è visibile ed in chiaro, non ho scritto un articolo specifico sul criterio per motivi di tempo:
 
jquery
http://oreste.parlatano.org/wp/?p=75
 
 
php
http://oreste.parlatano.org/wp/?p=80
 
 
Se però inizia una discussione all'interno delle pagine degli articoli posso dare maggiori contributi.

 Fantasia o esistono dei pattern ?
 
ci sono almeno due algoritmi "classici" e almeno due modi diversi per
svilupparli.
 
http://en.wikipedia.org/wiki/Maze_generation_algorithm
 
 
nei miei esperimenti li ho usati tutti: lo scavo "a 1 livello", e lo
scavo a "più livelli", l'utilizzo di celle del labirinto come muri di
separazione, e l'utilizzo invece dei bordi delle celle come separazione.
 
Come algoritmo di soluzione, il più classico (e anche l'unico che io
personalmente conosca) è quello cosiddetto "della mano destra".
 
Prossimamente approfondirò, tempo permettendo, la possibilità di creare
labirinti di forma non rettangolare. Ho già sperimentato la creazione
di buchi interni al labirinto (l'ultimo in ordine di tempo, di forma
circolare, usando le funzioni trigonometriche per disegnare un cerchio
a partire da un punto centrale, e poi riempirlo).. tutto molto
interessante anche se, con il php, mancando l'interattività, si tende a
perdere più tempo del necessario, in caso di errori, rispetto ai
linguaggi desktop tradizionali.
 
-- 
Alessandra
 
Un mito, … è una religione a cui nessuno crede più - James Feibleman

Node.js?
Stesso linguaggio lato server/lato client, tutta l'interattivita che vuoi...
 
piuttosto, un mio collega al quale ho mostrato il 3d se lo è fatto in jquery, nel prossimo week-end lo rende giocabile ;) (io ancora non ho avuto tempo, ma a stò punto è superfluo;)