AR89 Inviato 15 Marzo 2009 Segnala Condividi Inviato 15 Marzo 2009 Sto provando a creare un programma in Java che generi numeri di tipo int compresi fra 1 e 6. Per farlo ho bisogno di usare Math.random() che genera numeri compresi nell'intervallo [0, 1[ (quindi 0 incluso 1 escluso). Per ottenere un numero compreso fra 6 e 1 uso la seguente espressione. Math.random()*5+1. (moltiplicando per 5 ottengo numeri compresi fra 0 e 5, sommando 1 l'intervallo andrà da 1 a 6. Tuttavia ora devo convertire questi numeri di tipo double in numeri di tipo int. Come posso fare? Questo è il codice del programma, come al solito ci sarà qualche errore grossolano:ghghgh: public D6(){ this.faccia=1; }/* questo è il metodo costruttore di default che imposta la faccia del dado su 1, l'intero "faccia" l'ho dichiarato precedentemente nella classe*/ public int lanciaD6(){ double valore=Math.random()*5+1; Math.round(valore); this.faccia=valore; return faccia; }/* questo è il metodo che mi dà problemi, perché non riesco a convertire il double in un intero*/ Edit: Risolto tutto grazie al casting (che il mio maledeetto prof non mi aveva spiegato:mad:) Ecco come ho modificato : public int lanciaD6(){ double valore=Math.random()*5+1; int c= (int)Math.round(valore); this.faccia=c; return faccia; }//metodo http://www.2shared.com/file/oiZtjX1r/TetrisMac.html Un Tetris in vecchio stile, dedicato alla versione per Mac degli anni 80. Link al commento Condividi su altri siti Altre opzioni di condivisione...
sadamelik Inviato 17 Marzo 2009 Segnala Condividi Inviato 17 Marzo 2009 RA89 il codice che hai scritto va benissimo, ma è meglio conoscere anche altre soluzioni anche solo per conoscenza personale. ecco una soluzione che avresti potuto implementare java.util.Random _random = new java.util.Random(); int _numeroRandom = _random.nextInt(6) + 1; nella variabile _numeroRandom hai un intero compreso tra 1 e 6 ora spiego un pò il codice!! il metodo "nextInt(int n)" da un numero pseudocasuale intero compreso tra 0 (incluso) e il valore n (escluso) quindi aggiungendo 1 hai un numero casuale compresto tra 1 e 6 ti mando il link della documentazione ufficiale di sun http://java.sun.com/j2se/1.4.2/docs/api/java/util/Random.html#nextInt(int) fa riferimento alla versione 1.4.2 ma è sicuramente supportata anche dalle versioni successive Qui il link dell'ultima relase di java http://java.sun.com/javase/6/docs/api/java/util/Random.html#nextInt(int) tecnologicamente dipendente Link al commento Condividi su altri siti Altre opzioni di condivisione...
AR89 Inviato 17 Marzo 2009 Autore Segnala Condividi Inviato 17 Marzo 2009 Grazie mille, non conoscevo questo Random(). L'unico di cui mi avevano parlato era Math.random(). Sapere che esiste mi tornerà sicuramente utile. http://www.2shared.com/file/oiZtjX1r/TetrisMac.html Un Tetris in vecchio stile, dedicato alla versione per Mac degli anni 80. Link al commento Condividi su altri siti Altre opzioni di condivisione...
Messaggi raccomandati
Archiviato
Questa discussione è archiviata e chiusa a future risposte.