codice:
rem Sinergy - 26-1-2014
rem By Stefano Cimatti
rem ottimizzato per schermi 800 x 480
gosub init
gosub schermouno
lista:
do
gr.touch touched, x, y
until touched
do
gr.touch touched, x, y
until !touched
if (x>bordo & X<(bordo+base) & y>bordo & y<(bordo+altezza)) then gosub iscrizione
if (x>bordo & X<(bordo+base) & y>(bordo*2+altezza) & y<(bordo*2+altezza*2)) then gosub info
if (x>bordo & X<(bordo+base) & y>(bordo*3+altezza*2) & y<(bordo*3+altezza*3)) then gosub infodieci
if (x>bordo & X<(bordo+base) & y>(bordo*4+altezza*3) & y<(bordo*4+altezza*4)) then gosub infouno
if (x>bordo & X<(bordo+base) & y>(bordo*5+altezza*4) & y<(bordo*5+altezza*5)) then gosub richiesta
if (x>bordo & x<(bordo+base) & y>(bordo*6+altezza*5) & y<(bordo*6+altezza*6)) then goto esci
goto lista
iscrizione:
if stato>0 then return
cls
input "Con quale nickname vuoi iscriverti?", a$
print
input "Scegli una password", b$
sito$="http://ilmiosito/sinergy/sinergy.nuovo-utente.php?nome="+a$+"&pass="+b$
BYTE .OPEN r, fn, sito$
Byte.read.buffer fn, 54, risposta$
Byte.close fn
popup risposta$, 0, 0, 1
if (mid$(risposta$,47,8))="successo" then gosub salvauser
return
salvauser:
for conta=len(a$) to 19
a$=a$+" "
next conta
for conta=len(b$) to 9
b$=b$+" "
next conta
Byte.open w, dati, "dati-sinergy.txt"
Byte.write.buffer dati, a$
Byte.write.buffer dati, b$
byte.close dati
nome$=a$
pw$=b$
return
info:
distanza=0
gosub informazioni
return
infodieci:
distanza=10
gosub informazioni
return
infouno:
distanza=1
gosub informazioni
return
informazioni:
if stato<1 then return
return
richiesta:
if stato<1 then return
gosub schermodue
listarichieste:
sr=0
do
gr.touch touched, x, y
until touched
do
gr.touch touched, x, y
until !touched
if (x>bordo & X<(bordo+base) & y>(bordo*2+altezza) & y<(bordo*2+altezza*2)) then gosub ricpassaggio
if (x>bordo & X<(bordo+base) & y>(bordo*3+altezza*2) & y<(bordo*3+altezza*3)) then gosub ricconsegna
if (x>bordo & X<(bordo+base) & y>(bordo*4+altezza*3) & y<(bordo*4+altezza*4)) then gosub ricmeeting
if (x>bordo & X<(bordo+base) & y>(bordo*5+altezza*4) & y<(bordo*5+altezza*5)) then gosub ricaltro
if (x>bordo & x<(bordo+base) & y>(bordo*6+altezza*5) & y<(bordo*6+altezza*6)) then gosub annulla
if sr=1 then return
goto listarichieste
return
init:
File.exists stato, "dati-sinergy.txt"
if stato>0 then gosub account
gr.open 255,255,255,255
pause 1000
Gr.screen larghezzaschermo, altezzaschermo
base=larghezzaschermo/1.57
altezza=altezzaschermo/7.5
testo=altezza/2
bordo=altezza/10*2
return
account:
Byte.open r, dati, "dati-sinergy.txt"
Byte.read.buffer dati, 30, stringa$
Byte.close dati
nome$=left$(stringa$,20)
pw$=right$(stringa$,10)
return
esci:
gr.close
popup "Arrivederci", 0, 0, 1
end "Arrivederci"
iscritto:
gr.color 255,0,0,0,1
gr.text.draw tuno,bordo*2,bordo+(altezza/2)+(altezza/5),"Bentornato "+nome$
return
ricpassaggio:
persone=0
gosub schermotre
do
gr.touch touched, x, y
until touched
do
gr.touch touched, x, y
until !touched
if (x>bordo & X<(bordo+base) & y>(bordo*2+altezza) & y<(bordo*2+altezza*2)) then persone=1
if (x>bordo & X<(bordo+base) & y>(bordo*3+altezza*2) & y<(bordo*3+altezza*3)) then persone=2
if (x>bordo & X<(bordo+base) & y>(bordo*4+altezza*3) & y<(bordo*4+altezza*4)) then persone=3
if (x>bordo & X<(bordo+base) & y>(bordo*5+altezza*4) & y<(bordo*5+altezza*5)) then persone=4
if (x>bordo & x<(bordo+base) & y>(bordo*6+altezza*5) & y<(bordo*6+altezza*6)) then persone=5
if persone=0 then goto ricpassaggio
input "Da dove parti (Città - via - numero civico)?", partenza$
input "Dove vuoi andare (Città - via - numero civico)?", arrivo$
input "Che giorno vuoi partire? (gg-mm-aaaa)", giorno$
input "A che ora vuoi partire? (hh:mm)", ora$
gr.cls
gr.color 255,0,0,0,1
persone$=str$(persone)
if persone=5 then persone$=" più di quattro persone"
gr.text.draw tconfermauno,bordo*2,bordo+(altezza/2)+(altezza/5),"Passaggio per" + persone$ + " persone da "+ partenza$ + " a " + arrivo$ + "\nil giorno " + giorno $ + " alle " + ora$
gosub schermoconferma
confermapassaggio=0
attesaconfermapassaggio:
do
gr.touch touched, x, y
until touched
do
gr.touch touched, x, y
until !touched
if (x>(bordo*3) & X<(bordo*3+larghezzaschermo/3) & y>(bordo*2+altezza*2) & y<(bordo*2+altezza*4)) then confermapassaggio=1
if (x>(larghezzaschermo-bordo*3-larghezzaschermo/3) & X<(larghezzaschermo-bordo*3) & y>(bordo*2+altezza*2) & y<(bordo*2+altezza*4)) then confermapassaggio=2
if (confermapassaggio=0) then goto attesaconfermapassaggio
if confermapassaggio=1 then popup "Richiesta passaggio anullata",0,0,1 else gosub registrapassaggio
gosub schermouno
sr=1
return
ricconsegna:
popup "Consegna richiesta",0,0,1
gosub schermouno
sr=1
return
ricmeeting:
popup "Meeting richiesto",0,0,1
gosub schermouno
sr=1
return
ricaltro:
popup "Richiesta effettuata",0,0,1
gosub schermouno
sr=1
return
annulla:
popup "Richiesta annullata",0,0,1
gosub schermouno
sr=1
return
schermouno:
gr.cls
gr.orientation 0
Gr.text.size testo
Gr.text.bold 1
gr.color 255,255,0,0,1
gr.text.draw tzero,bordo+base+(base/5),bordo*6+altezza*5+(altezza/2)+(altezza/5),"Sinergy"
gr.color 255,0,0,0,1
if stato<1 then
gr.rect runo, bordo,bordo,bordo+base,bordo+altezza
endif
gr.color 255,255,255,255,1
if stato<1 then gr.text.draw tuno,bordo*2,bordo+(altezza/2)+(altezza/5),"Iscrizione a Sinergy" else gosub iscritto
gr.color 255,0,0,255,1
gr.rect rdue,bordo,bordo*2+altezza,bordo+base,bordo*2+altezza*2
gr.color 255,255,0,0,1
gr.text.draw tdue,bordo*2,bordo*2+altezza+(altezza/2)+(altezza/5),"Visualizza tutte le richieste"
gr.color 255,0,255,0, 1
gr.rect rtre,bordo,bordo*3+altezza*2,bordo+base,bordo*3+altezza*3
gr.color 255,100,180,50,1
gr.rect rquattro, bordo,bordo*4+altezza*3,bordo+base,bordo*4+altezza*4
gr.color 255,255,0,0,1
gr.rect rcinque,bordo,bordo*5+altezza*4,bordo+base,bordo*5+altezza*5
gr.color 255,0,0,255,1
gr.text.draw tcinque,bordo*2,bordo*5+altezza*4+(altezza/2)+(altezza/5),"Fai una richiesta"
gr.color 255,150,50,0,1
gr.rect rsei,bordo,bordo*6+altezza*5,bordo+base,bordo*6+altezza*6
gr.color 255,0,0,255,1
gr.text.draw ttre,bordo*2,bordo*3+altezza*2+(altezza/2)+(altezza/5),"Visualizza richieste entro 10 Km"
gr.text.draw tquattro,bordo*2,bordo*4+altezza*3+(altezza/2)+(altezza/5),"Visualizza richieste entro 1 Km"
gr.text.draw tsei,bordo*2,bordo*6+altezza*5+(altezza/2)+(altezza/5),"Uscita"
gr.render
gr.front 255
return
schermodue:
gr.cls
gr.color 255,255,0,0,1
gr.text.draw rictzero,bordo+base+(base/5),bordo*6+altezza*5+(altezza/2)+(altezza/5),"Sinergy"
gr.rect ricrdue,bordo,bordo*2+altezza,bordo+base,bordo*2+altezza*2
gr.color 255,0,0,255,1
gr.text.draw rictdue,bordo*2,bordo*2+altezza+(altezza/2)+(altezza/5),"Chiedi un passaggio in auto"
gr.color 255,150,50,0,1
gr.rect ricrsei,bordo,bordo*6+altezza*5,bordo+base,bordo*6+altezza*6
gr.color 255,0,255,0, 1
gr.rect ricrtre,bordo,bordo*3+altezza*2,bordo+base,bordo*3+altezza*3
gr.color 255,100,180,50,1
gr.rect ricrquattro, bordo,bordo*4+altezza*3,bordo+base,bordo*4+altezza*4
gr.color 255,255,0,0,1
gr.rect ricrcinque,bordo,bordo*5+altezza*4,bordo+base,bordo*5+altezza*5
gr.color 255,0,0,255,1
gr.text.draw rictcinque,bordo*2,bordo*5+altezza*4+(altezza/2)+(altezza/5),"Altro"
gr.color 255,0,0,255,1
gr.text.draw ricttre,bordo*2,bordo*3+altezza*2+(altezza/2)+(altezza/5),"Chiedi una consegna"
gr.text.draw rictquattro,bordo*2,bordo*4+altezza*3+(altezza/2)+(altezza/5),"Chiedi compagnia per..."
gr.text.draw rictsei,bordo*2,bordo*6+altezza*5+(altezza/2)+(altezza/5),"Annulla"
gosub iscritto
gr.render
return
schermotre:
gr.cls
gr.color 255,255,0,0,1
gr.text.draw rictretzero,bordo+base+(base/5),bordo*6+altezza*5+(altezza/2)+(altezza/5),"Sinergy"
gr.rect rictrerdue,bordo,bordo*2+altezza,bordo+base,bordo*2+altezza*2
gr.color 255,0,0,255,1
gr.text.draw rictretdue,bordo*2,bordo*2+altezza+(altezza/2)+(altezza/5),"Per una persona"
gr.color 255,150,50,0,1
gr.rect rictrersei,bordo,bordo*6+altezza*5,bordo+base,bordo*6+altezza*6
gr.color 255,0,255,0, 1
gr.rect rictrertre,bordo,bordo*3+altezza*2,bordo+base,bordo*3+altezza*3
gr.color 255,100,180,50,1
gr.rect rictrerquattro, bordo,bordo*4+altezza*3,bordo+base,bordo*4+altezza*4
gr.color 255,255,0,0,1
gr.rect rictrercinque,bordo,bordo*5+altezza*4,bordo+base,bordo*5+altezza*5
gr.color 255,0,0,255,1
gr.text.draw rictretcinque,bordo*2,bordo*5+altezza*4+(altezza/2)+(altezza/5),"Per quattro persone"
gr.color 255,0,0,255,1
gr.text.draw rictrettre,bordo*2,bordo*3+altezza*2+(altezza/2)+(altezza/5),"Per due persone"
gr.text.draw rictretquattro,bordo*2,bordo*4+altezza*3+(altezza/2)+(altezza/5),"Per tre persone"
gr.text.draw rictretsei,bordo*2,bordo*6+altezza*5+(altezza/2)+(altezza/5),"Per più di 4 persone"
gosub iscritto
gr.render
return
schermoconferma:
Gr.text.bold 1
gr.color 255,0,0,255,1
gr.rect no,bordo*3,bordo*2+altezza*2,bordo*3+larghezzaschermo/3,bordo*2+altezza*4
gr.color 255,255,0,0, 1
gr.rect si,larghezzaschermo-bordo*3-larghezzaschermo/3,bordo*2+altezza*2,larghezzaschermo-bordo*3,bordo*2+altezza*4
gr.text.draw vabene, lsrghezzaschermo-bordo-larghezzaschermo/3+bordo*2,altezza*2+altezza+bordo, "OK"
gr.color 255,0,0,255,1
gr.text.draw nonvabene, bordo*3+bordo*2,altezza*2+altezza+bordo, "Annulla"
gr.render
return
registrapassaggio:
popup "Passaggio richiesto",0,0,1
return