import scala.io.Source;
import java.io.File;
import scala.util.Random;
object voc {
def train(lst : List[Tuple2[String, String]]) : Unit = {
println();
if (lst.length == 0) {
println(":-D");
return;
}
val shuffled = Random.shuffle(lst);
val current = shuffled.head;
println(">>> " + current._1);
var line = Console.readLine();
if (line == current._2) {
println("correct");
train(shuffled.tail);
} else {
print("\007");
println("wrong - correct is: " + current._2);
train(shuffled);
}
}
def main(args: Array[String]) {
val lst = Source.fromFile(new File(args(0))).getLines()
.map { s => s.split("\t") }
.filter( l => l.length == 2 )
.map (l => Tuple2(l.head, l.last))
.toList;
train(lst);
}
}
Python version:
from __future__ import with_statement
import random
import sys
def train(lst):
while len(lst) > 0:
random.shuffle(lst)
lang1, lang2 = lst[0]
print ">>>", lang1
try:
answer = raw_input("answer: ").strip()
except EOFError:
# ^Z pressed, ignore
continue
if answer == lang2:
print "correct"
lst = lst[1:]
else:
print chr(7)
print "wrong - correct is =>", lang2
print
print
print ":-D"
def main():
filename = sys.argv[1]
lst = []
for line in open(filename):
line = line.strip()
if not line:
continue
parts = line.split("\t")
assert len(parts) == 2
lst.append(parts)
train(lst)
if __name__ == "__main__":
main()
0 Kommentare:
Post a Comment