aboutsummaryrefslogtreecommitdiff
path: root/tabelvortoj.rb
diff options
context:
space:
mode:
authorNat Lasseter <nat.lasseter@york.ac.uk>2024-01-22 10:23:58 +0000
committerNat Lasseter <nat.lasseter@york.ac.uk>2024-01-22 10:23:58 +0000
commita79414bcf14d17c58e040a7b8524f7bd8f7e5e03 (patch)
tree4f2f232aca568711ecb35caa3444b54f4dfa4361 /tabelvortoj.rb
Migrate from gists
Diffstat (limited to 'tabelvortoj.rb')
-rw-r--r--tabelvortoj.rb101
1 files changed, 101 insertions, 0 deletions
diff --git a/tabelvortoj.rb b/tabelvortoj.rb
new file mode 100644
index 0000000..2e85ccd
--- /dev/null
+++ b/tabelvortoj.rb
@@ -0,0 +1,101 @@
+#!/usr/bin/env ruby
+
+#!DESCRIBE: Flash cards for table words
+
+require "io/console"
+
+data = DATA.each_line.map { |l| l.strip.split(?;) }
+correct = 0
+total = 0
+
+loop do
+ get = data.sample(4)
+ if rand(2).zero?
+ qn = get.first.first
+ ans = get.first.last
+ opts = get.map(&:last).shuffle
+ else
+ qn = get.first.last
+ ans = get.first.first
+ opts = get.map(&:first).shuffle
+ end
+
+ print <<-EOT.chop
+
+#{qn}
+
+ 1: #{opts[0]}
+ 2: #{opts[1]}
+ 3: #{opts[2]}
+ 4: #{opts[3]}
+
+>:
+EOT
+
+ r = $stdin.getch.to_i
+
+ break unless r > 0 && r < 5
+
+ print "#{r} "
+ if ans == opts[r - 1]
+ puts ?✔
+ correct += 1
+ else
+ puts ?✘
+ end
+
+ total += 1
+end
+
+puts <<-EOT
+
+
+Score: #{correct}/#{total}
+EOT
+
+__END__
+kio;what
+tio;that
+io;something
+ĉio;everything
+nenio;nothing
+kiu;who, which
+tiu;that person, that one
+iu;someone
+ĉiu;everyone, every
+neniu;no-one, none of them
+kiam;when
+tiam;then
+iam;some time, ever
+ĉiam;always, every time
+neniam;never, no time
+kia;what kind of
+tia;that kind of
+ia;some kind of
+ĉia;every kind of
+nenia;no kind of
+kie;where
+tie;there
+ie;somewhere
+ĉie;everywhere
+nenie;nowhere
+kiel;how
+tiel;like that, thus
+iel;in some way
+ĉiel;in every way
+neniel;in no way
+kiom;how much
+tiom;that much
+iom;to some extent, a certain amount
+ĉiom;all of it, the whole amount
+neniom;none of it, no amount
+kial;why
+tial;for that reason
+ial;for some reason
+ĉial;for every reason
+nenial;for no reason
+kies;whose
+ties;their, that one's
+ies;someone's
+ĉies;everyone's
+nenies;no-one's