
Carlo (Member)
Guru^2
    
Messaggi: 1422
Iscritto: 29/01/2018
|
EDIT: nuova versione 1.0.02 griglie 2x2 3x3 4x4 5x5 http://www.pierotofy.it/pages/sorgenti/dettagli/19655-Grat ...
Solutore del gioco enigmistico Grattacieli su griglia 4x4 scritto in C# ver 1.0.00.
Creazione di tutte le soluzioni possibili (576).
Possibilità di inserire nella corona i valori presi da uno schema da risolvere, con [trova] la soluzione verrà fornita.
Con i tasti [<] e [>] si possono scorrere tutti gli schemi possibili su una griglia 4x4 che sono 576.
Preimpostato per schemi con dimensioni arbitrarie, con lo schema 4x4 la soluzione viene trovata immediatamente, schemi più grandi richiederanno più tempo per essere risolti, lo schema 5x5 genera 14400 schemi possibili.
Se ne vogliamo parlare discussione aperta.
Ultima modifica effettuata da Carlo il 15/05/2024 alle 20:15
in programmazione tutto è permesso |
|

()
Newbie
    
Messaggi:
Iscritto:
|
Eccolo! Mi sembrava strano...
|
|

Ultimo (Member)
Guru
    
Messaggi: 931
Iscritto: 22/05/2010
|
Volevo farlo anche io, sei stato più veloce
è interessante vedere come hai sviluppato l'APP
If ok Then GOTO Avanza else GOTO Inizia
|
|

Ultimo (Member)
Guru
    
Messaggi: 931
Iscritto: 22/05/2010
|
Ho realizzato una mia variante del gioco GREED sulla base del tuo, ho fatto parecchie modifiche interessanti
If ok Then GOTO Avanza else GOTO Inizia
|
|

Carlo (Member)
Guru^2
    
Messaggi: 1422
Iscritto: 29/01/2018
|
Avevo seguito la discussione dal cellulare, sono in giro per il mondo e non avevo possibilità di provare, tanto meno in VB6.
Non mi piace spremere le meningi per risolvere un enigma solo per il gusto di farlo, invece mi piace programmare.
Ho inquadrato il problema quando dopo i primi fallimenti ho provato a scrivere una griglia 4x4 rispettando le regole dei grattacieli:
10 20 30 40
20 10 40 30
30 40 10 20
40 30 20 10
Se provate non è scontato, il che porta a presumere che le griglie possibili non siano molte, infatti ho scritto un codice che le produce tutte, sono solo 576 e vengono prodotte in una frazione di secondo.
Ho scritto un secondo codice che passato un vettore es: { 1, 2, 3, 4 } restituisce quanti grattacieli sono visibili da sinistra a destra, in questo caso la risposta è 4
Il resto è tutto in discesa si scorrono le 576 griglie possibili, si carica il vettore di volta in volta con le righe colonne e righe colonne inverse e si confronta se il numero dei visibili corrisponde con il valore nella corona. Quando le corrispondenze sono 16 lo schema è quello giusto.
Con una piccola modifica il solutore può essere trasformato in gioco, appena posso lo modifico e carico.
Il progetto è aperto, se vuoi partecipare entra nel team, ci sono delle semplificazioni da introdurre e ottimizzare la velocità, indispensabile se si vuole passare allo schema 5x5
Ultima modifica effettuata da Carlo il 27/04/2024 alle 15:50
in programmazione tutto è permesso |
|

Carlo (Member)
Guru^2
    
Messaggi: 1422
Iscritto: 29/01/2018
|
Postato originariamente da Ultimo:
Ho realizzato una mia variante del gioco GREED sulla base del tuo, ho fatto parecchie modifiche interessanti |
Ultima modifica effettuata da Carlo il 27/04/2024 alle 15:02
in programmazione tutto è permesso |
|

Ultimo (Member)
Guru
    
Messaggi: 931
Iscritto: 22/05/2010
|
Ho visto il codice che hai fatto, incredibile come hai fatto a farlo in poco tempo, io ci impiego almeno una settimana per farlo
Lascio che lo sviluppi te, sicuramente lo farai meglio, per velocizzare con schemi maggiori, la soluzione è di dividere
il lavoro su più thread con un threadpool.
If ok Then GOTO Avanza else GOTO Inizia
|
|

Carlo (Member)
Guru^2
    
Messaggi: 1422
Iscritto: 29/01/2018
|
Postato originariamente da Ultimo:
Ho visto il codice che hai fatto, incredibile come hai fatto a farlo in poco tempo, io ci impiego almeno una settimana per farlo
|
Per scrivere il programma una volta deciso come affrontare il problema ci è voluto poco, una due ore compreso debug.
Invece per decidere/scoprire come affrontare il problema, tre ore avanti al pc e vari ragionamenti a letto e al lavoro... il cervello lavora anche quando non si pensa consapevolmente al problema.
La soluzione che ho adottato non è la migliore, solo la prima che ha funzionato.
Peccato che il forum postato dove si discuteva il problema mi abbia fatto perdere tempo dietro a una soluzione fuori dalla mia portata.
La decisione di scriverlo in C# e presentarlo come progetto scaturisce dal fatto che oggi affrontare un nuovo lavoro in VB6 non è più proponibile. Ultima modifica effettuata da Carlo il 28/04/2024 alle 0:33
in programmazione tutto è permesso |
|

AldoBaldo (Member)
Guru
    
Messaggi: 708
Iscritto: 08/01/2015
|
Qualche domanda...
Quante sarebbero le soluzioni possibili in una griglia 9x9?
È lecito dire che non si tratta di un solutore ma di un archivio di soluzioni?
È fattibile un solutore che analizzi la situazione e trovi la soluzione "al volo"? Come?
In caso contrario, sarebbe proponibile precalcolare le soluzioni e inserirle in un file per non ripetere ogni volta il procedimento?
Non sono quesiti vitali, solo curiosità.
(nell'allegato, alcuni schemi ricavati da un sito di enigmistica)
ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti. |
|