Nokioteca [Nokia] Forum: [mshell] Tank - Nokioteca [Nokia] Forum

Salta al contenuto

Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione

[mshell] Tank Guerra tra cararmati.

#1 L   lento 

  • Senior Member
  • PuntoPuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 637
  • Iscritto: 03 settembre 2008
  • Cellulare:E72

Inviato 16 maggio 2009 - 23:32

Salve posto un rudimentale giochetto.
Sempre con l'intenzione di incuriosire.
E' scritto maluccio (poco tempo a disposizione) ma funziona bene.
Chi lo preleva può sempre metterci del suo e magari postarlo!.

Il gioco si basa sul impartire una stringa di 10 comandi A=avanti I=Indietro F=Fuoco.
poi i Tank vengono posti a caso nello scenario di guerra.
Hò se sbagliate stringa vi può girare parecchie ore :lol: prima che uno esploda.

Allego il sorgente: Download file  tank.txt (3,47K)
Numero di downloads: 30 e quello per: Download file  tank176x208.txt (3,5K)
Numero di downloads: 12

E i tre files sonori che vanno messi nella directory E:\Sounds\
Esplosione cararmato:Download file  BOOM4.WAV (18,63K)
Numero di downloads: 20
Sparo cararmato:Download file  TANKFIRE.wav (8,85K)
Numero di downloads: 12
Movimento cararmato:Download file  PULSE.WAV (2,53K)
Numero di downloads: 17
Oops dimenticavo i Tanks: Download file  car1.png (2,08K)
Numero di downloads: 6 --- Download file  car2.png (1,95K)
Numero di downloads: 3 in E:\Images\
Non aspettatevi effetti speciali......(non ho mai scritto giochini prima d'ora lo faccio perchè sò che a qualcuno piacciono)

Fatemi sapere.....In tanto mi ancoro in fondo al barile....cosi qualsiasi critica...non potrà spingermi più in basso!. :)

Messaggio modificato da lento il 11 giugno 2009 - 18:01

0

#2 L   Nick_7 

  • Senior Member
  • PuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 339
  • Iscritto: 20 novembre 2008
  • Località:Luna
  • Cellulare:Omnia HD
  • Firmware:I8910XXJB1

Inviato 19 maggio 2009 - 13:09

Ciao lento, prima di tutto vorrei congratularmi con te per la tua bravura nel padronare mShell :lmaosmiley: , poi è da un po' che ho iniziato ad interessarmi a mShell e vorrei iniziare ad imparare come creare dei giochini o dei programmi, anche molto semplici, con mShell, che se non sbaglio dovrebbe essere il programma più semplice per iniziare a programmare sul cellulare.

ho tentato di disegnare un cerchio in questo modo:

use graph as g;

 g.size(176,208);
 g.full(true);

 function stampa(campo,k); 
 g.pen(g.black);
 g.brush(g.white);
 g.circle(10,10,10);
 g.pen(g.green);
 g.brush(g.green);

end


Il fatto è che non mi compare niente e non capisco perchè... :)
0

#3 L   Il.Socio 

  • Nokioteca Staff
  • Gruppo: Moderatore
  • Messaggi: 7144
  • Iscritto: 02 dicembre 2005
  • Località:Torino
  • Cellulare:N8-00

Inviato 19 maggio 2009 - 13:14

la butto li... :lmaosmiley:
manca la chiamata a g.show() ?

Credo che tutte le chiamate a g.xxx operino su un buffer temporaneo e solo quando si chiama g.show() il buffer viene poi passato sul display.

Messaggio modificato da Il.Socio il 19 maggio 2009 - 13:17

Per segnalare allo Staff un messaggio non conforme al regolamento è sufficiente premere il bottone "Segnala" posizionato in basso a sinistra di ciascun messaggio.
0

#4 L   lento 

  • Senior Member
  • PuntoPuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 637
  • Iscritto: 03 settembre 2008
  • Cellulare:E72

Inviato 19 maggio 2009 - 17:47

Visualizza MessaggiNick_7, il 19/05/2009 - 14:09, ha scritto:

ho tentato di disegnare un cerchio in questo modo:
Il fatto è che non mi compare niente e non capisco perchè... :rolleyes:

'Nick_7' sono contento del tuo interesse.
Confermo che mShell è il linguaggio più semplice disponibile per cellulari. E può rendere divertente imparare a programmare, oltretutto lo si può fare in qualsiasi posto ti porti il tuo cellulare.

Guardando quanto postato ti rispondo così:
Se in il tuo programma è come qui sotto riportato:
use graph as g;

g.size(176,208);
g.full(true);

g.pen(g.black);
g.brush(g.white);
g.circle(10,10,10);
g.pen(g.green);
g.brush(g.green);

Come ti ha detto 'Il.Socio' manca il comando g.show(). che serve a rendere visibile quanto hai disegnato.
In oltre se il tuo programma termina qui. Devi aggiungere anche sleep(n. secondi) per permetterti di vederlo
Ma anche per eseguire immagini in successione mShell necessita di un tempo minimo di pausa tra un g.show() e l'altro (Credo che sia una difficoltà di gestione del multi-task da parte di mShell).

Se invece quello che hai scritto è una funzione di nome stampa e quello che ho riportato il suo contenuto:
function stampa(campo,k);
  g.pen(g.black);
  g.brush(g.white);
  g.circle(10,10,10);
  g.pen(g.green);
  g.brush(g.green);
end

allora non vedi nulla perchè da nessuna parte del programma chiami la funzione per essere eseguita oltre alla mancanza
del comando g.show(); sopra citato ed eventuale sleep()
(Ricordati di identare i programmi, aiuta molto!)

Ora mi hai creato un bel problema! cè Alter (per chi non lo conosce è il mio alter ego per giunta è convinto di avere persionalità multiple) che mi dà di quelle gomitate terribili nei fianchi. e dice:Dai! repiglia mShell dai che ce divertemo!
0

#5 L   6587gianluca 

  • Advanced Member
  • PuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 213
  • Iscritto: 31 dicembre 2006
  • Cellulare:Nokia C7

Inviato 19 maggio 2009 - 18:28

Visualizza Messaggilento, il 19/05/2009 - 18:47, ha scritto:

...................Ora mi hai creato un bel problema! cè Alter (per chi non lo conosce è il mio alter ego per giunta è convinto di avere persionalità multiple) che mi dà di quelle gomitate terribili nei fianchi. e dice:Dai! repiglia mShell dai che ce divertemo!


Io, sinceramente sono daccordo con il tuo alter....non volendo parlare del mio che mi dice testuali parole
"dai, dai...insistiamo anche noi.....che facciamo senza l'aiuto di lento e del suo alter !!!!!!!!!

Messaggio modificato da 6587gianluca il 19 maggio 2009 - 18:29

0

#6 L   Nick_7 

  • Senior Member
  • PuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 339
  • Iscritto: 20 novembre 2008
  • Località:Luna
  • Cellulare:Omnia HD
  • Firmware:I8910XXJB1

  Inviato 19 maggio 2009 - 20:17

Beh, grazie a tutti in particolare a lento, finalmente ci sono riuscito a disegnare il fatidico cerchio in questo modo... :rolleyes:

use graph as g;

   g.size(176,208);
   g.full(true);

   g.pen(g.black);
   g.brush(g.white);
   g.circle(10,10,10);
   g.show();
   sleep(55555);



La funzione stampa l'avevo messa a caso perchè non sapevo proprio come fare... :angel:

Quote

(Ricordati di identare i programmi, aiuta molto!)
questo significa che devo lasciare gli spazi prima di alcune righe??? :shifty:
Bella l'idea dell'alter ego, ecco anche il mio: "mShell è un mondo stupendo e qui c'è gente che potrebbe aiutarci a capirlo meglio!" :mumble:

Messaggio modificato da Nick_7 il 19 maggio 2009 - 20:17

0

#7 L   lento 

  • Senior Member
  • PuntoPuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 637
  • Iscritto: 03 settembre 2008
  • Cellulare:E72

Inviato 20 maggio 2009 - 14:22

Visualizza Messaggi6587gianluca, il 19/05/2009 - 19:28, ha scritto:

Io, sinceramente sono daccordo con il tuo alter....non volendo parlare del mio che mi dice testuali parole
"dai, dai...insistiamo anche noi.....che facciamo senza l'aiuto di lento e del suo alter !!!!!!!!!

Oberato da milioni di richieste, cedo....
Ho deciso di continuare ad utilizzare mShell nella speranza di esser utile.
Qui ci si deve divertire, imparare a programmare il proprio cellulare divertendosi.

Visualizza MessaggiNick_7, il 19/05/2009 - 21:17, ha scritto:

questo significa che devo lasciare gli spazi prima di alcune righe??? :thumbs:

'Nick_7' per via del'indentazione siccome non si può fare un corso di programmazione in questa
sede e capisco che non tutti se la sentono di leggere un manuale.

Troviamo una via di mezzo!

Allora fai una ricerca su internet tipo "identazione informatica" e leggi quanto hanno scritto persone più qualificate del sottoscritto.

Poi con tue parole posta cosa hai capito.

Anzi potrebbe essere un modo per aiutarci:

Quando si è imparato un comando(mShell), un concetto, un algoritmo postare e spiegare con proprie parole quello che si è imparato, magari anche un piccolo esempio.(Eggià tra i tanti che devono imparare mShell ci sono anch'io!.)


Sperando che altri intervengano correggendo o aggiungendo quello che manca alla spiegazione.
Sperando che altri intervengano chiedendo un aiuto per i loro dubbi e incomprensioni su quanto esposto.

Questo vale anche per '6587gianluca' non penserai che non mi sono accorto di come hai accuratamente
evitato di rispondere a certe domande tipo "Conosci gli array?" ecc. ecc.

Un ultima cosa '6587gianluca' visto che non hai completato il gioco della pallina ne farò un post io.

Messaggio modificato da lento il 20 maggio 2009 - 22:37

0

#8 L   Nick_7 

  • Senior Member
  • PuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 339
  • Iscritto: 20 novembre 2008
  • Località:Luna
  • Cellulare:Omnia HD
  • Firmware:I8910XXJB1

Inviato 21 maggio 2009 - 06:42

Allora ho constatato che la mia intuizione era corretta, :incazzato: in pratica (a parole mie):

L'indentazione è l'inserimento di un certo numero di spazi vuoti all'inizio di una riga al fine di rendere più semplice la lettura del programma da parte nostra; questi spazi non influiscono in alcun modo sul programma.

Ecco un esempio da Wikipedia:
1. SE età < maggioreEtà ALLORA
   2.	 SE età < etàMinima ALLORA
   3.		 SCRIVI 'spiacente, non puoi lavorare'
   4.	 ALTRIMENTI
   5.		SCRIVI 'puoi lavorare come apprendista'
   6.	 FINE-SE
   7. ALTRIMENTI
   8.	 SCRIVI 'Puoi lavorare!'
   9. FINE-SE


Nel frammento di codice riportato, l'indentazione del codice rende chiaro il fatto che la verifica di riga 2 viene fatta solo se ha avuto esito positivo quella di riga 1, ovvero che la seconda selezione è annidata nella prima. Questo sarebbe decisamente meno comprensibile se il codice fosse stato scritto senza indentazione:

1. SE età < maggioreEtà ALLORA
   2. SE età < etàMinima ALLORA
   3. SCRIVI 'spiacente, non puoi lavorare'
   4. ALTRIMENTI
   5. SCRIVI 'puoi lavorare come apprendista'
   6. FINE-SE
   7. ALTRIMENTI
   8. SCRIVI 'Puoi lavorare!'
   9. FINE-SE


Quote

'Nick_7' per via del'indentazione siccome non si può fare un corso di programmazione in questa
sede e capisco che non tutti se la sentono di leggere un manuale.


Dove posso trovare il manuale?

Quote

Un ultima cosa '6587gianluca' visto che non hai completato il gioco della pallina ne farò un post io.


Che gioco della pallina? Mi piacerebbe molto vederne il file .m per capire come farne uno anch'io
Ed il mio alter-ego:
Ma se non sai neanche fare un'animazione... :)

Messaggio modificato da Nick_7 il 21 maggio 2009 - 06:44

0

#9 L   lento 

  • Senior Member
  • PuntoPuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 637
  • Iscritto: 03 settembre 2008
  • Cellulare:E72

Inviato 21 maggio 2009 - 09:14

Visualizza MessaggiNick_7, il 21/05/2009 - 07:42, ha scritto:

Allora ho constatato che la mia intuizione era corretta, :) in pratica (a parole mie):

'Nick_7' sei grande! la tua esposizione è notevole! :thumbs:
l'unica precisazione che posso fare per aiutarti è il concetto di blocco di istruzioni
1 a=1; b=1;
2 if a=b then 
3	print "so forte";
4	print "so bello"
5 end

1 for a=1 to 10 do
2   if a%2=0 then
3	 print a, "n. patate";
4	 print "son tutte pari!";
5   end
6 end

Molte istruzioni agiscono su un insieme di codice e il quantitativo di questo altro codice e dato solo da dove poni l'istruzione end.
Nel primo caso alla linea 1 trovi if....then questo comando accetta un certo numero di altre istruzioni da eseguire (nel caso il confronto tra a e b risulta vero).
Se vero eseguirà le righe N.3 e N.4. Le righe 3 e 4 viene considerato come un blocco, come se fosse una cosa unica.

nel secondo esempio il blocco dell'istruzione for....to...do comprende le righe 2-3-4-5 e a sua volta
le righe 2-3-4-5 contengono un altro blocco di istruzioni per il comando if....then che sono le righe 3-4

Ora l'identazione ha lo scopo di evidenziare questi blocci di istruzioni.

Visualizza MessaggiNick_7, il 21/05/2009 - 07:42, ha scritto:

Dove posso trovare il manuale?

Leggi questa l'eccellente "Miniguida per Iniziare" di 'masmil1988'
Per visualizzare questo link registrati o esegui il log in.

I manuali sono compresi con mShell.

Visualizza MessaggiNick_7, il 21/05/2009 - 07:42, ha scritto:

Che gioco della pallina? Mi piacerebbe molto vederne il file .m per capire come farne uno anch'io

Guarda nella discussione "Far Rotolare Il Barile" li o postato degli esempi e una spiegazione
Per visualizzare questo link registrati o esegui il log in.

e qui trovi una spiegazione del principio.
Per visualizzare questo link registrati o esegui il log in.

Se te la senti una volta letto il programma ball4.txt potresti provare tu a completarlo? è semplice ed in oltre se qualcosa non ti è chiaro chiedi!

Messaggio modificato da lento il 21 maggio 2009 - 17:31

0

#10 L   Nick_7 

  • Senior Member
  • PuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 339
  • Iscritto: 20 novembre 2008
  • Località:Luna
  • Cellulare:Omnia HD
  • Firmware:I8910XXJB1

Inviato 21 maggio 2009 - 13:16

Quote

Leggi questa l'eccellente "Miniguida per Iniziare" di 'masmil1988'
Per visualizzare questo link registrati o esegui il log in.

Mi dice che la pagina non esiste più... :)

Allora ragazzi dato che questa cosa mi sta prendendo molto ho deciso di aprirci una discussione apposita perciò continuiamo
Per visualizzare questo link registrati o esegui il log in.

Messaggio modificato da Nick_7 il 21 maggio 2009 - 13:17

0

#11 L   lento 

  • Senior Member
  • PuntoPuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 637
  • Iscritto: 03 settembre 2008
  • Cellulare:E72

Inviato 21 maggio 2009 - 17:32

Visualizza MessaggiNick_7, il 21/05/2009 - 14:16, ha scritto:

Mi dice che la pagina non esiste più... :crying_anim02:

Ooops.....errore di trascrizione riprova ora lò corretta.!
0

#12 L   Nick_7 

  • Senior Member
  • PuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 339
  • Iscritto: 20 novembre 2008
  • Località:Luna
  • Cellulare:Omnia HD
  • Firmware:I8910XXJB1

Inviato 22 maggio 2009 - 06:32

Quote

Ooops.....errore di trascrizione riprova ora lò corretta.!


Grazie ora funziona :)
0

#13 L   lento 

  • Senior Member
  • PuntoPuntoPuntoPuntoPuntoPunto
  • Gruppo: Utente
  • Messaggi: 637
  • Iscritto: 03 settembre 2008
  • Cellulare:E72

Inviato 11 giugno 2009 - 18:03

Ho aggiunto la versione per schermi 176x208 i files immagine e suono vedi sopra.
Ecco il sorgente modificato:Download file  tank176x208.txt (3,5K)
Numero di downloads: 9
0

Condividi questa discussione:


Pagina 1 di 1
  • Non puoi iniziare una nuova discussione
  • Non puoi rispondere a questa discussione