Italian La prossima settimana, VACANZE... ma per ora vado avanti

CyclopDroid

Well-Known Member
Licensed User
Longtime User
Già ma, in questo, on è posibile inserire quella dicharazione. C'è un REAL ma non cambia nulla.
 

LucaMs

Expert
Licensed User
Longtime User
Sembrerebbe di no. Ho modificato il tipo da TEXT a VARCHAR(10) e la dimensione totale non cambia (sempreché lo strumento che ho usato faccia la conversione come si dovrebbe).


Letto adesso il tuo post, max.
Non c'è se usi SQLite Database Browser, mentre se usi SQLite Personal Expert hai a disposizione vari tipi di dato (anche se alla fine penso che sia una cosa fittizia, giusto perché in genere siamo abituati ad altri tipi di campi e internamente riporti tutto ai 4-5 tipi di base di SQLite)
 

CyclopDroid

Well-Known Member
Licensed User
Longtime User
Non riesco ad aprirlo :(:(
Come ho detto, ho scaricato la versione prova di Visual Basic 2005 Express ma non me lo apre.
Mi dice:

Error1.jpg

:(
Error2.jpg
 

LucaMs

Expert
Licensed User
Longtime User
Eh, probabilmente dovresti installare una versione di Visual Studio più recente.
Puoi trovare la 2010 e 2012 (sono quelle che ho io) - sempre express, eh

Cmq, come dicevo, bisogna vedere quanto spazio occuperebbe aumentando le parole fino a 10, in pratica si dovrebbero aggiungere altri 3 file di testo, con le parole da 8 9 e 10 lettere.
 

sirjo66

Well-Known Member
Licensed User
Longtime User
Su alcuni database (ad esempio mi sembra Access) il campo di tipo TEXT in realtà è un campo di tipo MEMO, cioè senza limiti

Sergio
 

LucaMs

Expert
Licensed User
Longtime User
vero.

Io speravo che, avendo usato TEXT come definizione del tipo di campo, SQLite avesse riservato lunghezza fissa, in questo caso 10 chr e che usando VARCHAR(10) potesse risparmiare bytes, ma non è così.
 

CyclopDroid

Well-Known Member
Licensed User
Longtime User
Allora... sono riuscito finalmete a veere il listato e a testare quel programma in VB.NET e... non c'ho apito una H.:D:D:D
Ho visto che ha dei file TXT suddivisi per lunghezza, ma non sono riuscito a capire ne dove li carica e nemmeno dove li elabora (all'interno el codice). Abituato col VB6, questoNET è un casino :D:D:D:(
Sono tornato ieri e già maledico il giorno di esserlo :eek::D:D
Gasp. to testatdo la miaAPP ma non mi caita più quell'errore (l'avanzamente di u livello anche se non suerato, una volta cliccato su Abandona").
Ho perso un'intera giornata a controllare il Debug ma non accadeva nulla... eppure, prima di partire, l'ho messo sul mio Smart e, proprio ieri, mi ha fatto queesto scherzetto. :mad:
Purtroppo, per non salvare tutto in RAR, mi ritrovo con una versione piena di Variabili senza senzo e ripetute...e questo complia a vita nel trovare iproblemi (che oggi non si sono mostrati).
....mmmmh, con la testa sto ancora in vacanza alla spenzieratezza, e non ho vogli di rovinare questi pensieri così presto.
Meglio andare con calma e svagrsi di più... tanto, non mi corre a presso nessuno! :p
 

LucaMs

Expert
Licensed User
Longtime User
In effetti è complicato seguire quel codice, ma si potrebbe fare.
Tutto sta a vedere se ne vale la pena.
Cioè, se alla fine devi aggiungere altri tre file con i vocaboli di 8, 9 e 10 lettere, forse il risparmio in Mb sarebbe minimo.
Però avresti quello che volevi, cioè tutte le parole possibili con le lettere estratte.

Io ho ancora moltissimo "lavoro" per la famigerata app. Ma dato che non mi va, vedo se riesco a capire qualcosa di quel codice VB.Net e darti almeno qualche indicazione su come potresti fare.

Intanto, potresti preparare i file txt con le parole di lunghezza x (ti basta fare qualche query ed il salvataggio nella tua stessa app; poi prelevi i file e togli la routine che ti è servita per questo scopo).
 

LucaMs

Expert
Licensed User
Longtime User
Fatto :)

Nel senso che ho capito come funziona, non che abbia già sviluppato il codice equivalente :p

Ora che fò? Prendo il tuo vocabolario e preparo un'app (scarna) con la "dimostrazione" del funzionamento?

Dato che sei online, mi dica lei :)

(altrimenti cerco di spiegarti come funziona)
 

CyclopDroid

Well-Known Member
Licensed User
Longtime User
....
Io ho ancora moltissimo "lavoro" per la famigerata app. Ma dato che non mi va, vedo se riesco a capire qualcosa di quel codice VB.Net e darti almeno qualche indicazione su come potresti fare..
....
:D:D:D:D:D Guarda, anche io mi trovo al to stesso pari, specialmente quando le cose non girano.
L'inizio è sempre frizzante e eccitante;
Poi subbentra la frenesia;
Alla fine, quando tutto sembra funzionare, arrivano i problemi... e, a furia di sbatterci la trsta e trovarne sempre altri, la voglia di contubuare si va a far fottere :D:D:D:D
 

LucaMs

Expert
Licensed User
Longtime User
Facciamo così: intanto provo a spiegare, poi mi dici.


Al primo avvio (assoluto) legge i vari file txt nelle relative ArrayList (vanno bene le nostre List) e imposta il livello
di difficoltà a 1, minimo, ovvero parole tra 3 e 5 lettere.

---
Ad ogni nuovo gioco, creare altre 5 arrayList (List), per 3,4,5,6,7 lettere;

a seconda del livello di difficoltà, randomizza un numero indice tramite il quale preleva una parola
(ChoosenWord) dalla relativa List (caricata da file): livello 1: Dic5L, livello 2: Dic6L, livello 3: Dic7L

imposta una variabile max alla lunghezza del file con tutte le lettere (DicAll) che gli servirà per la randomizzazione

crea un arrayList (sempre List) per contenere tutte le parole possibili: PossibleWords = New ArrayList

lstCorrectWords è la "listview" che conterrà le parole trovate dall'utente ma anche tutte le altre quando il tempo sarà scaduto.

cicla sull'array del vocabolario completo:
For i = 0 To DicAll.Count - 1

salva il valore della parola randomizzata prima: ChoosenWordBackup = ChoosenWord (Choosen = scelta)

apre un ciclo (J) per la lunghezza della parola corrente del dizionario completo

prende le lettere della parola corrente del dizionario completo e ne cerca la posizione
nella parola di backup della parola randomizzata, che all'inizio è uguale a quella randomizzata
se la pos = 0 (lettera non contenuta) imposta una variabile boolean Okay a False ed esce dal ciclo per passare alla successiva parola
del dizionario completo
altrimenti, se le lettera è compresa nella parola di backup, la toglie (dalla parola di backup)
alla fine del ciclo sulla parola del dizionario completo, se la variabile booleana Okay è True
(ovvero se tutte le lettere della parola sono presenti in quella randomizzata)
aggiunge la parola a quelle possibili!

Tutto qua (il resto sono indicazioni all'utente e calcoli di punteggi)


[CORREZIONE: non al primo avvio assoluto, al primo avvio]
 
Last edited:

LucaMs

Expert
Licensed User
Longtime User
:D:D:D:D:D Guarda, anche io mi trovo al to stesso pari, specialmente quando le cose non girano.
L'inizio è sempre frizzante e eccitante;
Poi subbentra la frenesia;
Alla fine, quando tutto sembra funzionare, arrivano i problemi... e, a furia di sbatterci la trsta e trovarne sempre altri, la voglia di contubuare si va a far fottere :D:D:D:D

con la differenza che tu sei... "Alla fine, quando tutto sembra funzionare, arrivano i problemi."
Io quasi all'inizio.
 

CyclopDroid

Well-Known Member
Licensed User
Longtime User
hihihi :D
Scusa ma nel mentre sto pure combattendo per l'ennesima volta con Ubuntu :mad:
Ho la versione12.04 su un Sony Vaio senza monitor (rotto) e lo uo sulla TV con un VGA-HFMI (essendo Ubuntu l'unico sistema capace di riconoscere in automatico il monitor esterno su questo Vaio).
Purtroppo, anche Ubuntu, i st Wizozzando e rovinandoo ed, tramite i vari aggiornamenti automatici, mi scarica hardware e vuole installare la 14.04....morale della favola? Non riconosce più il monitor esterno (o combina qualcosa, tipo menu selezione, che non vedo sul TV=...indi... reinstala TUTTO d'accappo:mad::mad:
Comunque bravo ad aver tradotto il listato .Net ;)
Ma fammi capire... lui sfoglia tutte le parole presemti nel dizionario completo e le confronta una per una con tutte le lettere della parola presa?
Tipo:
Paola Presa = CASA
Dizionario:
ABACO = NO (perchè non trova la S)

scorporandola in:
ABAO (Toglie la C)
BAO (Toglie la CA)
BAO (La S non c'è ed esce)? :confused:

Vabé, vado a mangiare e a finire di installare quel maledetto Ubuntu... altrimenti stasera niente film (lo uso prevalentemente come mediaplayer ;)) :D
 

LucaMs

Expert
Licensed User
Longtime User
Dunque...

L'app di prova funziona (senza fronzoli e punteggi), però:

ho usato i file di testo inglesi, quindi dovresti creare i tuoi italiani (usando query con WHERE LENGTH(Parola) = 5 poi 6 e 7 e salvando sui file di testo);
la preparazione è un pochino lenta (circa 10 secondi con le parole da 7 lettere).

Inoltre, può essere ottimizzato in vari modi.

Devo allegare i dizionari separatamente perché il tutto supera i 512Kb.


[P.S. Sembrava funzionare, invece c'era un bacone! Dato che l'ho schiacciato, nel codice vedrai che ho scelto i 4 file italiani, 5 6 7 e All]
 

Attachments

  • dic567.zip
    115.9 KB · Views: 176
  • dicAll.zip
    402.4 KB · Views: 176
  • lm B4A Twist.zip
    14 KB · Views: 183
Last edited:

LucaMs

Expert
Licensed User
Longtime User
Mentre mi rigiravo nel letto perché il mal di testa non mi fa dormire, mi è venuto in mente un "trucchetto" per velocizzare la costruzione delle parole possibili.

Se mentre il giocatore cerca il maggior numero di parole possibili, l'app costruisse quelle della mano successiva?
Si dovrebbe delegare il compito ad un altro thread; ora sono mezzo fuso, quindi non ricordo come attivare un secondo thread in b4a ma quasi certamente si può fare con un "servizio".

Detto questo, mi domando come diavolo faccia Ruzzle a consentire parole di qualunque lunghezza (quasi, il limite teorico è il numero totale di caselle) e perfino incastrate nei percorsi!!!

Ma proprio questa domanda, me ne ha fatta sorgere un'altra piuttosto maliziosa:
come mai Google non implementa un motore di ricerca per le app uguale a quello del web invece di quello molto scadente (in confronto) usato in Google Play?
 

CyclopDroid

Well-Known Member
Licensed User
Longtime User
File italiani dal tuo db.
Come sempre, gentilissimo e velocissimo ;)
....soltanto che ti sei dimenticato il ritorno acapo dopo ogni inserimento e risultatano tutti attaccati :D
Vabbè, avendoli divisi per lunghezza è più semplice suddividerli :p
Prima di testare questa cosa, voglio sistemare un po di errori (tipo il salto del livello), sperando che oggi mi dica sfiga e lo faccia :D
 
Top