Algoritmo backtracking per cruciverba

di Anonimizzato20098 il
11 risposte
Salve a tutti.
Sto cercando di creare un programma in va che dato uno schema di parole crociate ed un array di vocaboli, lo compili sistemando le parole possibili. Ho letto e capito che va utilizzato un algoritmo che "cerchi" le varie combinazioni e se il "percorso " è senza soluzione torni indietro fino a quando la soluzione era possibile (backtracking). Purtroppo le mie conoscenze non lì permettono di implementare tale algoritmo. C'è qualcuno che potrebbe aiutarmi? Grazie

11 Risposte

  • Innanzitutto ti ringrazio per la risposta. Avevo già visto il problema che mi hai suggerito. Il problema è che conosco solo il visual basic e non riesco a trovare esempi di codice che non siano in Java o c (che non riesco a tradurre in vb). Sai indicarmi per caso qualche sito in cui posso trovare del codice vb che riguardi l'argomento? Grazie
  • karug64 ha scritto:


    Il problema è che conosco solo il visual basic
    Allora dovevi chiedere sul forum di Visual Basic, non al bar.
  • Forse troverai degli esempi in c#, poi puoi tradurre da c# a vb.net usando la pagina web "converter telerik" oppure SharpDevelop 4.4 (project -> convert->From c# to.vb.net) quando ho usato il converter di sharpdevelop ha funzionato bene ,

    grazie a migliorabile per il rompicapo delle 8 regine,interessante
  • Un cruciverba e una matrice e poi fai dei controlli sull'array di parole se esiste, dici questo?

    se la riga o colonna e l'ultima allora si fa un controllo se esiste.

    si procede per righe e colonne
  • signfra ha scritto:


    un cruciverba e una matrice e poi fai dei controlli sull'array di parole se esiste, dici questo?

    se la riga o colonna e l'ultima allora si fa un controllo se esiste.

    si procede per righe e colonne
    Ci sono varie tecniche. Si può cominciare dalla parola più lunga o dalla prima in alto a sinistra . Da dove cominci e cominci, la tecnica è quella di scrivere la parola, verificare se esistono parole che soddisfano tutti gli incroci, se si scrivi la prossima altrimenti cancelli e riprovi con un'altra. Ovviamente il backtracking di una parola è estremamente semplice, il problema nasce quando devi tornare indietro di "n" parole perché arrivi in un ramo morto e non hai più soluzioni, quindi devi trovare l'ultima soluzione che dava una possibilità positiva e ripartire da lì senza riprendere il percorso già fatto ....

    Semplice, no ?!?!?
  • gibra ha scritto:


    karug64 ha scritto:


    Il problema è che conosco solo il visual basic
    Allora dovevi chiedere sul forum di Visual Basic, non al bar.
    Allora posso postare là senza essere incorrere im crossposting?
  • No, devi chiedere ad un moderatore di spostare la discussione.
    Usa il pulsante [!] Segnala il messaggio (in rosso).
  • Ho spostato in VB.Net non nella sezione Visual Basic visto che ormai funge più che altro da museo.
  • Karug64,
    magari comincia con leggere i seguenti link:
    http://www.codeproject.com/Articles/32235/Eight-Queens-Problem-using-VB-NET
    http://www.vbforums.com/showthread.php?615010-Backtracking-algorithm
    http://www.hwupgrade.it/forum/archive/index.php/t-1846042.html

    https://www.jair.org/media/3437/live-3437-6039-jair.pd
    https://static.aminer.org/pdf/PDF/000/258/751/practical_crossword_generation_with_checkpoint_search.pdf
    http://www.gtoal.com/wordgames/zafer/zafer.pd
  • Grazie. Vediamo che riesco a fare .....
Devi accedere o registrarti per scrivere nel forum
11 risposte