Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
59
Task/24-game/11l/24-game.11l
Normal file
59
Task/24-game/11l/24-game.11l
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
T Error
|
||||
String message
|
||||
F (message)
|
||||
.message = message
|
||||
|
||||
T RPNParse
|
||||
[Float] stk
|
||||
[Int] digits
|
||||
|
||||
F op(f)
|
||||
I .stk.len < 2
|
||||
X Error(‘Improperly written expression’)
|
||||
V b = .stk.pop()
|
||||
V a = .stk.pop()
|
||||
.stk.append(f(a, b))
|
||||
|
||||
F parse(s)
|
||||
L(c) s
|
||||
I c C ‘0’..‘9’
|
||||
.stk.append(Float(c))
|
||||
.digits.append(Int(c))
|
||||
E I c == ‘+’ {.op((a, b) -> a + b)}
|
||||
E I c == ‘-’ {.op((a, b) -> a - b)}
|
||||
E I c == ‘*’ {.op((a, b) -> a * b)}
|
||||
E I c == ‘/’ {.op((a, b) -> a / b)}
|
||||
E I c != ‘ ’
|
||||
X Error(‘Wrong char: ’c)
|
||||
|
||||
F get_result()
|
||||
I .stk.len != 1
|
||||
X Error(‘Improperly written expression’)
|
||||
R .stk.last
|
||||
|
||||
[Int] digits
|
||||
print(‘Make 24 with the digits:’, end' ‘’)
|
||||
L 4
|
||||
V n = random:(1..9)
|
||||
print(‘ ’n, end' ‘’)
|
||||
digits.append(n)
|
||||
print()
|
||||
|
||||
V parser = RPNParse()
|
||||
|
||||
X.try
|
||||
parser.parse(input())
|
||||
V r = parser.get_result()
|
||||
|
||||
I sorted(digits) != sorted(parser.digits)
|
||||
print(‘Error: Not using the given digits’)
|
||||
E
|
||||
print(‘Result: ’r)
|
||||
|
||||
I r C 23.999<.<24.001
|
||||
print(‘Good job!’)
|
||||
E
|
||||
print(‘Try again.’)
|
||||
|
||||
X.catch Error error
|
||||
print(‘Error: ’error.message)
|
||||
Loading…
Add table
Add a link
Reference in a new issue