Buongiorno a tutti,
ho due dubbi nella progettazione di una funzione.. in pratica ho una matrice composta da varie lettere e una lista di parole e devo controllare se in qualcuna di tutte le possibili diagonali della matrice sono presenti le parole date.
Per prima cosa trasformo ogni parola in una lista dei caratteri della parola, poi creo un ciclo che mi cerca per ogni riga e colonna il primo carattere della parola, se trova il carattere allora poi controlla che il secondo carattere sia presente in una delle "celle" delle diagonali..
Spero di aver reso chiaro il concetto... solo che sono ferma all' "if" del controllo del secondo carattere, 1) come posso creare un ciclo per controllare poi se tutti i caratteri successivi della diagonale corrispondono con i caratteri della parola? ..e 2) se alla fine la parola è in una di queste diagonali, devo eliminare i caratteri della matrice.. come faccio a digli che deve eliminare i valori di una diagonale? So come fare per una riga o una colonna di matrice, ma in diagonale emh
Questo è il codice:
lista_parola = [x for x in x in p] --------trasformo la parola in una lista dei suoi caratteri
for i, riga in enumerate(M): --------per ogni riga
for i, j in enumerate(riga): --------per ogni colonna
for i, c in enumerate(lista_parola): --------per ogni carattere della parola
if c == M[j]: --------se il carattere della parola è uguale al valore in riga i e in colonna j
for c in lista_parole: --------per ogni carattere della parola faccio
if lista_parole[i+1] == M[i-1][j-1] or lista_parole == M[i-1][j+1] or lista_parole == M[i+1][j+1] or lista_parole == M[i+1][j-1]: --------controllo che tutti valori vicini che possono creare diagonali siano uguali al secondo carattere della parola
In pratica .. come faccio a creare un ciclo che se è vero che il primo carattere e il secondo sono uguali ai valori della matrice allora fa lo stesso controllo anche per i restanti caratteri della parola?
E cancellare poi questi caratteri nella matrice se è presente l'intera parola?
Grazie mille... spero di aver spiegato abbastanza bene, se servono altre informazioni ditemi pure.
Buona giornata