24 game: Difference between revisions

Content added Content deleted
mNo edit summary
(Added 11l)
Line 32: Line 32:
* [http://www.bbc.co.uk/dna/h2g2/A933121 The 24 Game] on h2g2.
* [http://www.bbc.co.uk/dna/h2g2/A933121 The 24 Game] on h2g2.
<br><br>
<br><br>

=={{header|11l}}==
{{trans|C++}}

<lang 11l>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)</lang>

{{out}}
The same as in C++.


=={{header|8th}}==
=={{header|8th}}==
Line 146: Line 212:
start
start
</lang>
</lang>

=={{header|AArch64 Assembly}}==
=={{header|AArch64 Assembly}}==
{{works with|as|Raspberry Pi 3B version Buster 64 bits}}
{{works with|as|Raspberry Pi 3B version Buster 64 bits}}