spacer.png, 0 kB

Torna indietro   Roboitalia.com - Il primo portale in Italia sulla robotica amatoriale > Robotica di base > Informatica > P. in Basic per micro

Rispondi
 
Strumenti discussione Modalitŗ† visualizzazioe
  #1  
Vecchio 21-02-2004, 16.00.35
antofospa antofospa non è collegato
Robottaro master
 
Data registrazione: 13-12-2003
Residenza: 1
Messaggi: 312
Potenza reputazione: 0
antofospa E' un rompicoglioni
Predefinito Vi lancio una sfida...

Chi mi riesce a dire come faccio a generare un numero totalmene casuale compreso tra 1 e 6 (un dado in pratica), che mi appare in debug quando premo un bottone.

Abbandonate l'idea dell'istruzione random...i numeri sono sempre gli stessi che si ripetono...
Rispondi citando
  #2  
Vecchio 21-02-2004, 17.42.12
L'avatar di marnic
marnic marnic non è collegato
Administrator
 
Data registrazione: 24-05-2002
Residenza: Monselice (PD)
Etŗ†: 55
Messaggi: 5,457
Potenza reputazione: 414
marnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua fama
Predefinito

beh, io sapevo che il random pur ripetendo una serie di numeri tra 0 e 1 era legato al clock.
Dovendo generare poi pochi numeri (da 1 a 6) il rapporto tra numeri pseudo casuali (credo che siano 65535) e 6 √® sufficentemente grande da determinare un'ottima casualit√*.
Ora ricordo che c'era un metodo ma sono ricordi un po' lontani
Il concetto era di lanciare il random nel momento in cui chiedi l'input e stopparlo quando arriva, questo da un risultato diverso dal prelevare il random direttamente.
Se non ricordo male c'era un RANDOMIZE.

Ho vinto qualche cosa? :wink:
Ciao
Rispondi citando
  #3  
Vecchio 21-02-2004, 17.51.51
antofospa antofospa non è collegato
Robottaro master
 
Data registrazione: 13-12-2003
Residenza: 1
Messaggi: 312
Potenza reputazione: 0
antofospa E' un rompicoglioni
Predefinito

Devo ammettere che mi hai messo in difficolt√*...cio√®, il comando randomize penso non esista nel PBASIC. Il mio manuale non mi pare parli di RANDOMIZE. Forse ti sei confuso con altri codici di programmazione.
per quel che ne so c'è solo l'istruzione random!

Io ho utilizzato un'altro metodo, molto semplice, ma secondo me geniale. SOlo che aspetterò a svelarlo...
Rispondi citando
  #4  
Vecchio 21-02-2004, 18.37.01
L'avatar di Vegekou
Vegekou Vegekou non è collegato
Administrator
 
Data registrazione: 24-06-2002
Residenza: Roma
Etŗ†: 31
Messaggi: 1,196
Potenza reputazione: 190
Vegekou La sua reputazione Ť oltre la sua famaVegekou La sua reputazione Ť oltre la sua famaVegekou La sua reputazione Ť oltre la sua famaVegekou La sua reputazione Ť oltre la sua famaVegekou La sua reputazione Ť oltre la sua famaVegekou La sua reputazione Ť oltre la sua fama
Predefinito

il tempo, fai partire un ciclo di tempo e dopo lo stoppo, il numero lo dividi e cerchi di farlo rientrare in un numero compreso tre 1 e 6

Vinto??? :wink:
__________________
Officine robotiche - ~VeGeKoU~ - RšφFǽλłờ - OR2014
Webmaster di: { minisumo.net } - { soloingegneria.com }
Rispondi citando
  #5  
Vecchio 21-02-2004, 23.15.05
L'avatar di marnic
marnic marnic non è collegato
Administrator
 
Data registrazione: 24-05-2002
Residenza: Monselice (PD)
Etŗ†: 55
Messaggi: 5,457
Potenza reputazione: 414
marnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua famamarnic La sua reputazione Ť oltre la sua fama
Predefinito

Citazione:
Orginalmente inviato da antofospa
Devo ammettere che mi hai messo in difficolt√*...cio√®, il comando randomize penso non esista nel PBASIC. Il mio manuale non mi pare parli di RANDOMIZE. Forse ti sei confuso con altri codici di programmazione.
per quel che ne so c'è solo l'istruzione random!
beh, nel tuo post non parlavi di PBasic :wink:
In effetti il comando Randomize si usava nel Basic delllo Spectrum (correva l'anno 1982 ) non so se poi è sopravvissuto.
Il concetto però rimane, devi rendere indipendente il momento in cui fai partire la rotazione della sequenza di numeri dal momento in cui ne vai a pescare uno.
Usando il Pbasic credo che un semplice loop che conta da 1 a 6 e viene stoppato da un interrupt comandato da un intervento umano (pulsante) ruoti talmente veloce che il risultato sia un numero casuale
Ciao
Rispondi citando
  #6  
Vecchio 22-02-2004, 08.53.43
antofospa antofospa non è collegato
Robottaro master
 
Data registrazione: 13-12-2003
Residenza: 1
Messaggi: 312
Potenza reputazione: 0
antofospa E' un rompicoglioni
Predefinito

ESATTO! Bravi tutti e due!

Io ho fatto così:


n VAR Nib

main:
if IN2 = 1 then main
loop:
for n = 1 to 6
if (IN2 = 1) then visualizza
next
goto loop
visualizza:
debug DEC ? n
goto main
'------------------------------------------------
Rispondi citando
  #7  
Vecchio 22-02-2004, 16.12.42
award award non è collegato
Nuovo robottaro
 
Data registrazione: 28-10-2003
Messaggi: 18
Potenza reputazione: 0
award E' per ora ancora un mistero
Predefinito Random

Ciao a tutti,

... perche' non usare il comando RANDOM del pbasic

Ok, e' uno pseudo RANDOM.... ma cambiando il seme di partenza (tipo magari mettendo un loop sul tasto reset) il problema si risolve piu' elegantemente.

In questo esempio si ottiene sempre la stessa sequenza di numeri... ma come detto prima, cambiando il valore del seme....

________CUT CUT CUT_____________

'{$STAMP BS2}
Seme VAR Word
A VAR Nib
Reset VAR IN2
Seme = IN10
aspetta:
Seme = Seme +1
IF Reset = 1 THEN aspetta

main:

Seme = Seme +1
RANDOM Seme
A = Seme.HIGHBYTE.HIGHNIB
IF A < 1 OR A > 6 THEN main
DEBUG DEC1 ? a
GOTO main
________CUT CUT CUT_____________
__________________
Award

C u in /dev/null
Rispondi citando
  #8  
Vecchio 22-02-2004, 16.57.12
award award non è collegato
Nuovo robottaro
 
Data registrazione: 28-10-2003
Messaggi: 18
Potenza reputazione: 0
award E' per ora ancora un mistero
Predefinito RANDOM

...
P.S.

La Parallax suggerisce inoltre (per variare il seme), la lettura delle 'fluttuazioni' di stato dei pin non connessi.
.... e io dico.......
perche' non prendere il seme da un clock esterno (tipo per es. DALLAS 1302) ??
Mettendo una batteria tampone al circuito, inoltre si puo' mantenre il clock aggiornato. E cosi' fu creato l'orologio
__________________
Award

C u in /dev/null
Rispondi citando
  #9  
Vecchio 22-02-2004, 19.17.47
award award non è collegato
Nuovo robottaro
 
Data registrazione: 28-10-2003
Messaggi: 18
Potenza reputazione: 0
award E' per ora ancora un mistero
Predefinito RANDOM

....
modificato il listato, tanto per renderlo ancora piu' random....

V. post precedente.
__________________
Award

C u in /dev/null
Rispondi citando
  #10  
Vecchio 29-02-2004, 07.09.21
antofospa antofospa non è collegato
Robottaro master
 
Data registrazione: 13-12-2003
Residenza: 1
Messaggi: 312
Potenza reputazione: 0
antofospa E' un rompicoglioni
Predefinito

Scusa award... le tue idee, valide, mi sembrano un po' troppo dispendiose. In particolare quella dell'orologio esterno. Perchè dovei usarlo se il prblema si risolve tranquillamente senza????
Rispondi citando
Rispondi


Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti)
 
Strumenti discussione
Modalitŗ† visualizzazioe

Regole di scrittura
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code Ť Attivato
Le smilies sono Attivato
[IMG] Ť Attivato
Il codice HTML Ť Disattivato

Vai al forum

Discussioni simili
Discussione Autore discussione Forum Risposte Ultimo messaggio
Cerco appassionato/i che vogliono una nuova sfida!!! scal Forum generale 0 03-03-2009 11.58.14
Sfida internazionale di robotica by Microsoft Zebedeig Forum generale 1 07-06-2008 09.52.05


Tutti gli orari sono GMT. Adesso sono le: 22.09.25.


Basato su: vBulletin Versione 3.8.8
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Realizzazione siti web Cobaltica Foligno
spacer.png, 0 kB