Ciao ragazzi, sto leggendo un po’ di qua, un po’ di la per imparare il
linguaggio e volevo mettermi alla prova con un vero esercizio.
Volevo creare un programmino che mi aiutasse a trovare la parola da
indovinare per il gioco “Draw Me Something” (app iphone). Lo scopo del
gioco e indovinare la parola che ha provato a disegnare l’altro.
Le variabili del gioco sono:
- le lettere che hai a disposizione (10 max) per poter formare la parola
da indovinare - il numero di lettere che è composta la parola da indovinare
Questo è il codice che ho scritto:
puts “scrivi le lettere a tua disposizione:”
letters= gets.chomp
puts “ecco le parole trovate:”
a = File.open(‘words.txt’,“r”).each_line.map {|x| x.strip!}.to_a
a.compact!
a.each.map do |word|
next if word.each_char.map {|letter|
letters.include?letter}.include?false
puts word.upcase
end
come potete vedere sono stato costretto a creare un array (a) con tutte
le parole contenute nel file per poterle iterare.
Non ho capito perchè non funziona direttamente:
File.open(‘words.txt’,“r”).each_line.map do |word|
…
…
Cosa ne pensate?
come si poteva scriverlo meglio?
Grazie
Alberto
PS: in allegato il file