September 2017 Update
This commit is contained in:
parent
bba7bfd280
commit
ba8067c3b7
14570 changed files with 153136 additions and 63871 deletions
|
|
@ -1,34 +1,34 @@
|
|||
const digits = (1..9 -> pick(4));
|
||||
const grammar = Regex.new(
|
||||
const digits = (1..9 -> pick(4))
|
||||
const grammar = Regex(
|
||||
'^ (?&exp) \z
|
||||
(?(DEFINE)
|
||||
(?<exp> ( (?&term) (?&op) (?&term) )+ )
|
||||
(?<term> \( (?&exp) \) | [' + digits.join + '])
|
||||
(?<op> [-+*/] )
|
||||
(?<op> [\-+*/] )
|
||||
)', 'x'
|
||||
);
|
||||
|
||||
say "Here are your digits: #{digits.join(' ')}";
|
||||
|
||||
)
|
||||
|
||||
say "Here are your digits: #{digits.join(' ')}"
|
||||
|
||||
loop {
|
||||
var input = Sys.scanln("Expression: ");
|
||||
|
||||
var expr = input;
|
||||
expr -= /\s+/g; # remove all whitespace
|
||||
|
||||
input == 'q' && (
|
||||
say "Goodbye. Sorry you couldn't win.";
|
||||
break;
|
||||
);
|
||||
|
||||
var given_digits = digits.map{.to_s}.sort.join;
|
||||
var entry_digits = input.scan(/\d/).sort.join;
|
||||
|
||||
if ((given_digits != entry_digits) || (expr !~ grammar)) {
|
||||
say "That's not valid";
|
||||
next;
|
||||
var input = read("Expression: ", String)
|
||||
|
||||
var expr = input
|
||||
expr -= /\s+/g # remove all whitespace
|
||||
|
||||
if (input == 'q') {
|
||||
say "Goodbye. Sorry you couldn't win."
|
||||
break
|
||||
}
|
||||
|
||||
|
||||
var given_digits = digits.map{.to_s}.sort.join
|
||||
var entry_digits = input.scan(/\d/).sort.join
|
||||
|
||||
if ((given_digits != entry_digits) || (expr !~ grammar)) {
|
||||
say "That's not valid"
|
||||
next
|
||||
}
|
||||
|
||||
given(var n = eval(input)) {
|
||||
when (24) { say "You win!"; break }
|
||||
default { say "Sorry, your expression is #{n}, not 24" }
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue