Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Grattacieli - Grattacieli C#
Forum - Grattacieli - Grattacieli C#

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
Carlo (Member)
Guru


Messaggi: 1362
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 0:10
Sabato, 27/04/2024
Solutore del gioco enigmistico Grattacieli su griglia 4x4 scritto in C#.

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 27/04/2024 alle 0:56


in programmazione tutto è permesso
PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 14:10
Sabato, 27/04/2024
Eccolo! Mi sembrava strano...

PM Quote
Avatar
Ultimo (Member)
Guru


Messaggi: 891
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 14:25
Sabato, 27/04/2024
:k: Volevo farlo anche io, sei stato più veloce :D

è interessante vedere come hai sviluppato l'APP


If ok Then GOTO Avanza else GOTO Inizia

PM Quote
Avatar
Ultimo (Member)
Guru


Messaggi: 891
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 14:28
Sabato, 27/04/2024
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

PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1362
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 14:57
Sabato, 27/04/2024
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 :yup:

Ultima modifica effettuata da Carlo il 27/04/2024 alle 15:50


in programmazione tutto è permesso
PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1362
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 15:00
Sabato, 27/04/2024
Testo quotato

Postato originariamente da Ultimo:

Ho realizzato una mia variante del gioco GREED sulla base del tuo, ho fatto parecchie modifiche interessanti



Interessante, postalo ma nel forum Greed: http://www.pierotofy.it/pages/extras/forum/837/1068746-gre ....

Ho realizzato una versione che scova la mosse con una profondità di 5 livelli, ma non apportando nessuna miglioria non l'ho postato.

Ultima modifica effettuata da Carlo il 27/04/2024 alle 15:02


in programmazione tutto è permesso
PM Quote
Avatar
Ultimo (Member)
Guru


Messaggi: 891
Iscritto: 22/05/2010

Segnala al moderatore
Postato alle 15:23
Sabato, 27/04/2024
Ho visto il codice che hai fatto,  incredibile come hai fatto a farlo in poco tempo, io ci impiego almeno una settimana per farlo
:k:
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. :k:


If ok Then GOTO Avanza else GOTO Inizia

PM Quote
Avatar
Carlo (Member)
Guru


Messaggi: 1362
Iscritto: 29/01/2018

Segnala al moderatore
Postato alle 19:09
Sabato, 27/04/2024
Testo quotato

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
PM Quote
Avatar
AldoBaldo (Member)
Guru


Messaggi: 705
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 0:34
Domenica, 28/04/2024
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)


AldoBaldo ha allegato un file: diagrammi.png (130108 bytes)
Clicca qui per guardare l'immagine


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.
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo