Autore Topic: Gioco della tombola  (Letto 3644 volte)

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Gioco della tombola
« il: 09 Settembre 2012, 00:34:28 »
Finalmente pubblico qui il mio primo progetto in Gambas 2.
E' la versione pressoché definitiva del mio progettino, anche se non perfettamente funzionante. Rispetto alla prima versione scritta da me e dall'ineffabile Milio ho aggiunto alcune cosette ispiratemi da una festa di paese a cui ho partecipato. :)
L'unica cosa che manca è l'help perchè non ho la più pallida idea di come farne uno. ;D
L'ho messo in allegato, dateci una occhiata e ditemi cosa ne pensate.
Nel frattempo cercherò di risolvere un piccolo malfunzionamento. Vediamo se riuscite a trovarlo. ;)
« Ultima modifica: 09 Settembre 2012, 00:38:17 da Top Fuel »
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.705
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Gioco della tombola
« Risposta #1 il: 09 Settembre 2012, 01:02:41 »
L'unica cosa che manca è l'help perchè non ho la più pallida idea di come farne uno. ;D
Io solitamente lo piazzo nel menu ed utilizzo - per non creare un form aggiuntivo - un MessageBox.

Ad ogni modo, complimenti ed auguri per il tuo programma.  :coder:
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Gioco della tombola
« Risposta #2 il: 09 Settembre 2012, 09:39:09 »
L'unica cosa che manca è l'help perchè non ho la più pallida idea di come farne uno. ;D
Secondo me puoi percorrere due vie alternative, naturalmente, sempre secondo me, a seconda delle dimensioni dell'Help e di come  vuoi fare muovere l'utente dentro il documento stesso (per esempio con l'inserimento della funzione "vai al segnalibro XXX):
a) potresti utilizzare una TextArea richiamabile tramite Menù, Button o tasto Fx,
b) potresti scrivere il tuo documento d'aiuto in un file di formato Office da richiamare sempre tramite Menù, Button o tasto Fx. All'evento scatenato dalla pressione di quest'ultimo potresti associare un comando shell col quale, appunto fare salire il documento Office che t'interessa.
 :ciao:
:ciao:

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re: Gioco della tombola
« Risposta #3 il: 09 Settembre 2012, 16:21:23 »
La B è troppo complicata per le mia capacità, la A invece è decisamente più fattibile. :)
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.705
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Gioco della tombola
« Risposta #4 il: 09 Settembre 2012, 16:33:40 »
La B è troppo complicata per le mia capacità....

Esagerato ! Non ci credo. Picavbg ti ha proposto semplicemente una cosa analoga a questa:
Codice: gambas [Seleziona]

Public Sub Button1_Click()

   Shell "gedit /percorso_del_file_di_aiuto_da_aprire"

End




Però, poiché aborriamo l'uso eccessivo del comando shell (come appunto ci esorta sempre Ceskho  ;D ); e quindi, impostando nel progetto anche il componente gb.desktop, possiamo utilizzare in modo esclusivo una funzione di Gambas:
Codice: gambas [Seleziona]

Public Sub Button1_Click()

  Desktop.Open("/percorso_del_file_di_aiuto_da_aprire")

End
« Ultima modifica: 12 Settembre 2012, 08:49:04 da vuott »
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re: Gioco della tombola
« Risposta #5 il: 09 Settembre 2012, 17:01:23 »
Il problema non è richiamarlo, ma sopratutto stilare un documento leggibile e magari con richiami ipertestuali in modo da offrire un help serio.
Ed ora scusate ma vado a fare un giretto con la mia Harl..., hem cioè KTM (ma porc...). :rolleyes:
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.705
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Gioco della tombola
« Risposta #6 il: 09 Settembre 2012, 17:06:23 »
Il problema non è richiamarlo,
...eh, appunto, mi sembrava strano.



...ma sopratutto stilare un documento leggibile e magari con richiami ipertestuali in modo da offrire un help serio.
Sono sicuro  :-[ che md9327 ti esorterebbe ad approfondire lo studio della questione, al fine quindi di capire come poter fare.
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re: Gioco della tombola
« Risposta #7 il: 09 Settembre 2012, 20:19:13 »
Sono sicuro  :-[ che md9327 ti esorterebbe ad approfondire lo studio della questione, al fine quindi di capire come poter fare.
Che sforzo, questo lo sapevo anche io... :bad:
Quando usavo il Visual Basic mi ricordo che c'era pure l'applicazione per creare gli help, qui non c'è qualcosa di similare?
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Gioco della tombola
« Risposta #8 il: 09 Settembre 2012, 22:30:30 »
Quando usavo il Visual Basic mi ricordo che c'era pure l'applicazione per creare gli help, qui non c'è qualcosa di similare?
Rispolverando il mio vecchio libro ti algebra informatica ho incontratio la seguente formula
Citazione
VB = da dimenticare
  ;D
 Perchè ti ostini a cercare un'applicazione per l'Help? "Libre Office Writer" ti offre tutto quello che vai cercando, fra cui anche i "ichiami ipertestuali" a cui ti riferisci e che io ho chiamato nel mio primo post di risposta "segnalibro". Se non dovessi avere confidenza con detti strumenti esiste una guida on-line nella stessa applicazione "Libre Office" e, non bastando, puoi sempre chiedere qui; io uso moltissimo i segnalibri ed i loro riferimenti per redigere i miei documenti di tipo help. Non avrei alcuna difficoltà a suggerirti come procedere sia per la loro creazione che per i successivi richiami.  ;)
 :ciao:

:ciao:

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re: Gioco della tombola
« Risposta #9 il: 10 Settembre 2012, 00:19:37 »
Uff, vedremo... :)
Nel frattempo ho usato una textarea tanto per vedere come si presenta.
In ogni caso ho già in mente il prossimo progetto... ;)
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re: Gioco della tombola
« Risposta #10 il: 10 Settembre 2012, 22:36:36 »
Ecco l'ultima versione con un help "grezzo".
Visto che nessuno di voi ha cercato il malfunzionamento che ho nominato all'inizio, ne parlo qui, perchè non riesco a uscirne fuori. Riguarda questo pezzo di codice:
Codice: [Seleziona]
tmp = Str$(.value) 'cerchiamo il numero nell'elenco...
j = InStr(listaestratti, tmp)
listaestratti = Left$(listaestratti, j - 1) & " " & Right$(listaestratti, Len(listaestratti) - j - Len(tmp)) '...e lo togliamo
E' la parte che si occupa di togliere dall'elenco dei numeri già estratti un numero che sia in mezzo e non l'ultimo. Teoricamente è semplicissimo: si cerca nella stringa il numero e si spostano a sinistra tutti quelli successivi.
Il problema è che sembra funzionare per i primi 2 o 3 numeri, poi sclera facendo quello che gli pare. Provate a mettere dentro una dozzina di numeri a caso e poi cominciate a spegnere un pò di numeri in mezzo...
Si accettano soluzioni. :)
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Gioco della tombola
« Risposta #11 il: 11 Settembre 2012, 00:39:33 »
Ecco l'ultima versione con un help "grezzo".
Visto che nessuno di voi ha cercato il malfunzionamento che ho nominato all'inizio, ne parlo qui, perchè non riesco a uscirne fuori. Riguarda questo pezzo di codice:
Codice: [Seleziona]
tmp = Str$(.value) 'cerchiamo il numero nell'elenco...
j = InStr(listaestratti, tmp)
listaestratti = Left$(listaestratti, j - 1) & " " & Right$(listaestratti, Len(listaestratti) - j - Len(tmp)) '...e lo togliamo
E' la parte che si occupa di togliere dall'elenco dei numeri già estratti un numero che sia in mezzo e non l'ultimo. Teoricamente è semplicissimo: si cerca nella stringa il numero e si spostano a sinistra tutti quelli successivi.
Il problema è che sembra funzionare per i primi 2 o 3 numeri, poi sclera facendo quello che gli pare. Provate a mettere dentro una dozzina di numeri a caso e poi cominciate a spegnere un pò di numeri in mezzo...
Si accettano soluzioni. :)
Attenzione. I numeri presenti nella "listaestratti" sono tutti di 2 caratteri? Io creerei una lista estratti in formato array. Sarebbe assai semplice da gestire e te ne potresti anche fregare della lunghezza di ciascun numero. Ad ogni estrazione, inoltre, il numero estratto, presente nella lista, andrebbe sostituito con 0 e non avresti nemmeno l'onere di spostare tutti i numeri non ancora estratti.
Es.:
Codice: gambas [Seleziona]
Public listaestratti as new integer[]

Public sub _new
for i = 0 to 89
  listaestratti[i] = i+1
Next
'----- bla -----Bla -----Bla -----
END

Public sub Aggiorna_listaestratti
dim bTrovato as boolean
  i= NumEstratto -1
  listaestratti[i] = 0
END

 Ho dato un'idea veloce, ma confesso di non avere ancora letto il tuo codice. Lo farò però domani. Ti prego di perdonare la mia impazienza nel comunicarti l'idea che m'è venuta.
Ciao.
:ciao:

Offline Picavbg

  • Senatore Gambero
  • ******
  • Post: 1.620
    • Mostra profilo
Re: Gioco della tombola
« Risposta #12 il: 11 Settembre 2012, 09:37:33 »
Ho letto la procedura interessata  dal malfunzionamento e, secondo me, la soluzione che ti ho suggerita ieri sera, relativamente alla dichiarazione di listaestratti come array, è irisolutiva, perchè, come pensavo il tuo problema è determinato dall'istruzione tmp = Str$(Estrazione[indice) ; la conversione in stringa, nel tuo caso, non fornisce sempre valori di lunghezza uguale. A parte ciò puoi gestire sia l'array Estrazione che il nuovo array listaestratti senza pensare alla posizione dell'ultimo numero estratto nell'array:
Codice: gambas [Seleziona]

Public Sub Numeri_MouseUp() 'accende o spegne i numeri estratti
Dim i, j As Byte 'le immancabili variabili indice :)
With Last
   If .background = Colorenonestratti Then 'accende un numero
      .background = Colorestratti
      Estrazione.Add(.Value) 'aggiunge l'ultimo numero estratto
      tmp = Str$(Estrazione[Estrazione.max])
      listaestratti = listaestratti & " " & tmp
   Else
      .background = Colorenonestratti 'spegne un numero
      i = 0
      While Not bTrovato
         If Estrazione[i] = .value
            tmp = Estrazione[i]
           For j = i To Estrazione.Max - 1
            Estrazione[j] = Estrazione[j + 1] '...lo si toglie scalando i successivi
           Next
         Endif
         Inc i
      Wend
      i = 0
      While Not bTrovato
         If listaestratti[i] = tmp
               For j = i To listaestratti.max - 1
                   listaestratti[j] = listaestratti[j + 1]
               Next
               listaestratti.Remove(listaestratti.Max) 'elimina l'ultimo numero dalla lista perché ormai doppio
               bTrovato = True
            Endif
            Inc i
         Wend
      Endif
'      If .Value = Estrazione[Estrazione.Max] Then  'se è l'ultimo estratto...
'         tmp = Str$(Estrazione[Estrazione.max])
'         listaestratti = Left$(listaestratti, Len(listaestratti) - (Len(tmp) + 1)) '...e lo cancella dall'elenco
'      If .value <> Estrazione[Estrazione.max] Then 'se invece si cancella un numero che non è l'ultimo...
'         For i = 0 To Estrazione.Max '...lo si cerca...
'            If Estrazione[i] = .value Then '...e quando trovato...
'               For j = i + 1 To Estrazione.Max
'                  Estrazione[i] = Estrazione[j] '...lo si toglie scalando i successivi
'               Next
'               Break  'quando è stato trovato non serve continuare
'            Endif
'         Next
'         tmp = Str$(.value) 'cerchiamo il numero nell'elenco...
'         j = InStr(listaestratti, tmp)
'         listaestratti = Left$(listaestratti, j - 1) & " " & Right$(listaestratti, Len(listaestratti) - j - Len(tmp)) '...e lo togliamo
'      Endif
'      Estrazione.Remove(Estrazione.Max) 'elimina l'ultimo numero dalla lista...
   Endif
End With
Progestratti.text = "Numeri estratti: " & listaestratti 'visualizza l'elenco dei numeri...
totest.text = "Tot. estratti: " & Str$(Estrazione.max + 1) '...e quanti ne sono stati estratti
If Estrazione.Count = 0 Then 'nel caso si siano tolti tutti i numeri senza usare Azzera
   Ultimo.Value = 0
   Progestratti.text = "Numeri estratti: "
Else
   Ultimo.Value = Estrazione[Estrazione.Max] 'visulizza l'ultimo numero estratto
End If
End


Io non ho provato il codice che ho buttato giù, ma penso che sia corretto; comunque, verificalo tu.
 :ciao:
:ciao:

Offline vuott

  • Moderatore globale
  • Senatore Gambero
  • *****
  • Post: 11.705
  • Ne mors quidem nos iunget
    • Mostra profilo
Re: Gioco della tombola
« Risposta #13 il: 11 Settembre 2012, 16:28:42 »
Nel frattempo ho usato una textarea tanto per vedere come si presenta.
L'ho vista, e devo dire che non è male come soluzione ! Sai ?  :coder:
« Chiunque, non ricorrendo lo stato di necessità, nel proprio progetto Gambas fa uso delle istruzioni Shell o Exec, è punito con la sanzione pecuniaria da euro 20,00 a euro 60,00. »

Offline Top Fuel

  • Gran Maestro dei Gamberi
  • *****
  • Post: 959
    • Mostra profilo
Re: Gioco della tombola
« Risposta #14 il: 11 Settembre 2012, 19:08:40 »
A me sembra un pò semplicina visti gli help megagalattici delle applicazioni professionali con richiami ipertestuali, figure varie ecc. ecc. :)
Però il programma è gratis quindi ci si può accontentare. ;D
@Picavbg: proviamo e vediamo se funziona.
Dear youtube administrators, your search bar is broken. When I type the letter "J" it appears justin bieber when it should appear Jimi Hendrix. Fix this, please.