|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Aug 2014
Messaggi: 4
|
[Java] Programma SuperEnalotto
Salve a tutti, mi presento, mi chiamo Mirko ho 19 anni e sono di firenze, frequento la classe 5° informatica e sono qui per chiedervi una mano nella realizzazione di questo semplice programma.
SuperEnalotto - Compilazione Schede + Stampa Ho realizzato l'interfaccia di questo programma chiedendo all'utente di inserire i 6 numeri per ogni pannello, mi baserò solo ed esclusivamente a schede da 5 pannelli (in quanto sono quelle che usa mio padre), lo scopo di questo programma è far inserire i numeri relativi ad ogni pannello e stamparli in modo formattato sulla scheda stessa. Mi trovo al momento bloccato nella realizzazione della funzione stampa in quanto, non riesco a concretizzare un modo per far si che all'inserimento del numero, per esempio, 12 si stampi nel numero 12 un quadratino. il problema principale dunque è riusacire a formattare tutti i numeri di tutti i pannelli, in punti precisi del foglio ma non riesco a capire come fare. avevo anche pensato di creare un file excel ma non è stata una buona idea. ho provato a cercare sulla rete algoritmi di questo tipo ma non c'è stato modo di trovarne, voi sareste in grado di aiutarmi? |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Dec 2006
Messaggi: 3808
|
la tabella da dove la prendi ?
la tabella è già prestampata su un foglio e tu hai le sue dimensioni, oppure devi stampare numeri e tabella insieme ? EDIT: per qualcosa di basico http://docs.oracle.com/javase/tutori...rinttable.html http://docs.oracle.com/javase/tutori...printtext.html Ultima modifica di Freaxxx : 28-08-2014 alle 13:22. |
![]() |
![]() |
![]() |
#3 | |
Junior Member
Iscritto dal: Aug 2014
Messaggi: 4
|
Quote:
Al momento prendo in input solo i numeri del'utente. questi numeri vengono tenuti in una tabella contentente 5 record (6 numeri per ciascun record) - ((I record rappresentano i 5 pannelli) Non importa come, l'importante è raggiungere l'obiettivo di riuscire a codificare questi numeri della tabella in quadratini (da sovrapporre al numero stesso nel processo di stampa della scheda). Attualmente non conosco le misure della scheda ma prenderle non sarebbe un problema come invece sarebbe sapere cosa farci di queste misure. Immagino che bisogna inserire manualmente le cordinate di ogni singolo quadratino ma non ne sono molto sicuro anche perchè sarebbe una faccenda estremamente lunga Ultima modifica di Prezzemolino : 28-08-2014 alle 17:00. |
|
![]() |
![]() |
![]() |
#4 |
Junior Member
Iscritto dal: Aug 2014
Messaggi: 4
|
Ho chiesto troppo?
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2773
|
Non so se ho capito bene ma non mi sembra complicato calcolare le coordinate dei numeri. Basta sapere le coordinate della tabella che contiene i numeri e poi tenere in considerazione la dimensione di ogni singolo numero e il numero di righe e colonne della tabella. Una volta che sai questo calcolare le coordinate di ogni numero non è difficile. E ho detto calcolare: non devi sicuramente specificare a mano tutte le coordinate di ogni singolo numero.
|
![]() |
![]() |
![]() |
#6 |
Junior Member
Iscritto dal: Aug 2014
Messaggi: 4
|
beh per spiegarmi meglio basta prendere una schedina reale del superenalotto
io ottengo i numeri dall'utente, gli pongo in un archivio e da qui devo essere in grado di marchiare sulla scheda (stampando) un quadratino (o quel che si voglia) sul numero preciso. a partire dai comandi, mi ci sono messo ma non riesco proprio a capire come potrei fare! |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Nov 2005
Messaggi: 2773
|
Allora, seguendo l'immagine (l'ho cercata a una risoluzione leggermente più alta):
http://sistemilotto.myblog.it/media/01/02/426881953.GIF tenendo conto che per coordinate intendiamo l'angolo in alto a sinistra. Poniamo quindi che la prima tabella abbia coordinate (X,Y) e le successive abbiano coordinate (X,Y+h*i) dove h è l'altezza di ogni tabella e i è l'indice della tabella. Poniamo poi che ogni tabella sia suddividibile in 7x14 celle, 7 righe e 14 colonne. Questo significa che la coordinata di ogni cella sarà: (X + wCel * iCol,Y+h*i + hCel * iRow) dove wCel e hCel sono la larghezza e l'altezza di ogni singola cella (puoi ricavarli dividendo per 14 e per 7 la larghezza e l'altezza della tabella) e iCol e iRow sono l'indice di riga e l'indice di colonna (la prima riga e la prima colonna hanno indici 0 e 0). Ora dato un numero devi calcolare l'indice di riga e colonna corrispondente e grazie a questi indici puoi applicare la formula scritta sopra. Sappiamo che le prime 8 celle di ogni tabella non sono utilizzate, ne consegue che: dato un numero N - la riga è data dalla divisione intera (N - 1 + 8)/14. (il -1 è dovuto al fatto che gli indici di riga e colonna partono da zero) - la colonna è data dal resto della stessa divisione intera Spero di aver scritto tutto giusto, se non ti torna chiedi pure. |
![]() |
![]() |
![]() |
#8 | |
Member
Iscritto dal: Dec 2005
Messaggi: 44
|
Quote:
poi stabilito questo ti faccio un esempio con il vecchi totocalcio: se orizzontale hai 12 colonne e 14 righe quindi la stampante stamperà, se il segno è 1, il pallino nero sulla prima colonna nella prima riga delle prime 3 colonne e prima riga poi la puntina della stampante passerà alle colonne numero 4, 5, 6 sempre prima riga, per stampare il secondo segno e fosse "x" lo stamperà nella 5° colonna della prima riga...è chiaro? per valutare le distanze ti devi aiutare con l'istruzione "margin" in visual basic mi ricordo che usavo questo print. margin un'istruzione di scostamento. In definitiva ti devi aiutare usando una funzione di scostamento addizionando la varabile a seconda di dove vuoi che il pallino sarà stampato. Quando passi alla seconda riga la variabile scostamento la resetti a 0 e poi l'addizione, ripeto, dove vuoi che venga stampato il pallino. azz quanto ho scritto chiaro che devi incrementare anche la variabile dello scostamento verticale sempre con il margine di stampa che vuoi... fai delle prove e otterrai quello che vuoi fare |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:33.