From 68ef4f6da8b5fc35f409e350a6bfc957fcba2ffa Mon Sep 17 00:00:00 2001 From: Moritz Lenz Date: Fri, 22 Oct 2010 16:11:02 +0200 Subject: [PATCH] more concise storage format --- coach.pl | 47 ++++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/coach.pl b/coach.pl index f7970ef..aa2c808 100644 --- a/coach.pl +++ b/coach.pl @@ -71,31 +71,32 @@ ($x) last; } - unless defined %state{$sl} { - %state{$sl} = []; + if %state{$sl} -> @a { + my $i = 0; + for @a { + last unless $_; + $i++; + } + %state{$sl} = $i; + %state{$sl}.delete('answers'); } - given %state{$sl} { - if $response eq $fl { - say ":-)"; - $right++; - .push: True; - } elsif normalize($response) eq normalize($fl) { - say ":-/ $fl"; - $right++; - .push: True; - } else { - say ":-( $fl"; - $wrong++; - .push: False; - } - if .elems > 5 { - .shift; - if all @($_) { - say ":-)))))"; - %words.delete($sl); - } - } + if $response eq $fl { + say ":-)"; + ++%state{$sl}; + ++$right; + } elsif normalize($response) eq normalize($fl) { + say ":-/ $fl"; + ++$right; + ++%state{$sl}; + } else { + say ":-( $fl"; + ++$wrong; + %state{$sl} = 0; + } + if %state{$sl} > 3 { + say ':-)))))'; + %words.delete($sl); } }