J
Justin brainy
Hello! I'm new to Ruby, but I spent some time with C. I would like to
know if the program I wrote was syntaxically correct for a Ruby program.
For example, I used a while loop to iterate through a string (with a
"i") to compare two strings... Should I have used Ruby's iterator?
Basically, the program is a *very* simple touch typing tutor. It reads
through a file to set the "lecture, for example : "jfjf fff ff jjf fj
jjjf fj" and then prints the line and asks the user for his answer. It
calculates number of errors (n_erreurs in french), precision in %, time
(okay too?).
Thanks !
------------------------------------------------------------------------
know if the program I wrote was syntaxically correct for a Ruby program.
For example, I used a while loop to iterate through a string (with a
"i") to compare two strings... Should I have used Ruby's iterator?
Basically, the program is a *very* simple touch typing tutor. It reads
through a file to set the "lecture, for example : "jfjf fff ff jjf fj
jjjf fj" and then prints the line and asks the user for his answer. It
calculates number of errors (n_erreurs in french), precision in %, time
(okay too?).
Thanks !
------------------------------------------------------------------------
Code:
#!/usr/bin/ruby
# Fichier de lecture
f = File.open("lecture.txt" ,"r")
s_file = f.readline
f.close
# Variables & Constantes
n_erreurs = precision = 0
n_char = s_file.length
BUT = 95 # %
L_PAGE = 40
puts "Tapez le texte suivant :"
puts
print "Debute dans 3 ."
sleep 1
print " 2 ."
sleep 1
puts "1"
sleep 1
puts
puts s_file
t_1 = Time.now
s_input = gets.chomp
t_2 = Time.now
i = 0
puts
puts "Resultats".center(L_PAGE)
while(i.to_i < n_char)
# Comparaison des deux chaines
if (s_file[i] != s_input[i])
n_erreurs = n_erreurs + 1
# puts "Erreur : ##{i}"
end
i = i + 1
end
precision = (100 - ( n_erreurs.to_f / n_char ) * 100).floor
puts
puts "Nombre d'erreurs : #{n_erreurs}"
puts "Nombre de caracteres : #{n_char}"
puts "Precision : #{precision} %"
puts "Temps : #{(t_2 - t_1).floor} s"
puts (precision > BUT) ? "Objectif atteint !" : "Objectif manque"
puts