Estrazioni lotteria Java

Francesco Dulio

Nuovo Utente
19 Lug 2013
1
1
0
Ciao a tutti :byebye:, sono nuovo del forum, così come di java.
Ho un problema che penso sia banale, ma non riesco proprio a venirci a capo.
Ho fatto un programma per delle estrazioni da una lotteria di 5000 biglietti. Ne deve estrarre 25. Il mio problema è far rimanere a video i numeri estratti: quando lo compilo (uso Processing per comodità) mi stampa le prime righe di draw() ma poi il ciclo for all'interno lo stampa solo per qualche millesimo di secondo e scompare. :confused:
Inoltre (come ho scritto nel codice commentandolo) vorrei decidere se i biglietti sono stati venduti tutti ed eventualmente escludere quelli non venduti impostandoli ogni volta a video. Anche in questo non sono riuscito a capire come fare :(:(:(.
Vi metto il codice, sicuramente saprete dove correggere o spiegarmi meglio come fare :)

Codice:
import java.util.Random;

char letter;
int estraz;
int estra;
Random random = new Random();
int y;
int i;
int anArray[];
boolean scr;

void setup() {
  size(640, 840);
  textFont(createFont("Georgia", 36));
}

void draw() {
  background(0);

  textSize(16);
  text("Ci sono dei numeri invenduti? \nSe sì indicare con s, altrimenti con n.", 40, 90);
  text("--->" + letter, 40, 130, 540, 300);

  if (letter == 's') {
    text("Quali sono i numeri non venduti?", 40, 180);

    //Voglio inserire manualmente un po' di numeri che non sono stati venduti, presi tra i 5000
    /*if (scr=true) {
      for (a=0; a; a+=1) {
        anArray[a]=numIns;
      }
    }*/

    text("Bene, allora i numeri estratti sono:", 40, 240);
    while (i<25) {
      y+=20;
      i+=1;
      //h sono quanti numeri totali, l da dove parte
      //int h=5000-anArray.lenght;
      //int l=
      //estra = random.nextInt(h)+l;
      text(i + "° numero estratto: " + estra, 40, 260+y);

      //Devo far rimanere a video i numeri estratti

      println(estra);
    }
  }

  else if (letter == 'n') {
    text("Meglio così!!! I numeri estratti sono:", 40, 180);
    while (i<25) {
      y+=20;
      i+=1;
      estraz = random.nextInt(5000);
      text(i + "° numero estratto: " + estraz, 40, 200+y);

      //Devo far rimanere a video i numeri estratti

      println(estraz);
    }
  }
}

void keyPressed() {
  if ((key >= 'A' && key <= 'z') || key == ' ' || key >= '0' && 
    key <= '9') {
    letter = key;
    
    scr=true;
  }
}

Grazie per l'aiuto!!!

P.S. Avevo pensato di usare le classi, ma non essendo molto pratico non volevo avventurarmi anche in quello, ma se fosse l'unico modo ben venga impararlo :o.
 
  • Like
Reactions: ottofonsuppost
Quando si crea un programma, occorre usare una visualizzazione mediante diagrammi del listato, del codice, che scriveremo; la maggioranza dei programmatori del mondo usa per tale scopo il linguaggio UML.
Tutto ciò è descritto nella LEZIONE N. 35 del corso pubblicato in questo Forum MR.WEBMASTER, riservato a chi non sa programmare; quindi dagli un'occhiata:

Ottofonsuppost e la grande guerra a JAVA - Corso GRATIS per neofiti

Ecco il link

http://forum.mrw.it/threads/ottofon...-a-java-corso-gratis-per-neofiti.45758/page-3

L'uso di un DIAGRAMMA permette di stabilire le azioni che il programma dovrà compiere, e nel tuo caso avremo una sezione dove l'utente dovrà inserire in apposite variabili array i numeri dei biglietti estratti ma non venduti, e dopo il loro inserimento, la procedura dovrà rettificare il numero totale di estrazioni fatte e ancora da compiere.
Attualmente per facilitarsi la scrittura di programmi in LINGUAGGIO JAVA la maggioranza dei programmatori fa uso degli editor ECLIPSE e NETBEANS, ma è risaputo che nella scrittura di programmi Java di poche righe è sufficiente addirittura il classico BLOCCO NOTE di Windows.
Nel tuo caso, il problema delle scritte dei numeri che scompaiono dal monitor, non rimangono fisse per colpa di un ciclo FOR che usi nella stampa, è facilmente risolvibile modificando le istruzioni che il computer dovrà eseguire. Quel tipo di errore si risolve con la chiamata di un apposito METODO che fa solo quel compito; e in presenza di numerose righe da stampare, consente all'utente di decidere la prosecuzione della stampa nello schermo.
L'utilizzo dei DIAGRAMMI consente al programmatore di risparmiare tempo nel capire tutto il funzionamento del suo programma; cosa che i commenti sparsi nel suo CODICE non consentono di ottenere. I vari blocchi di istruzioni più significativi e funzionali, tramite un diagramma fanno comprendere in pochi istanti cosa esegue il programma che abbiamo scritto, e di cosa si serve: CLASSI, METODI, VARIABILI, DECISIONI.
Il linguaggio UML ha come caratteristiche principali la SINTESI e la FACILITA' DI COMPRENSIONE e possiamo considerarlo universale e l' INGEGNERIA DEL SOFTWARE; si tratta di un modo pratico per comprendere in pochi istanti il comportamento e la struttura di un programma, di un listato, di un codice scritto.
 
Ultima modifica:

Discussioni simili