24 game: Difference between revisions
Content added Content deleted
mNo edit summary |
Alextretyak (talk | contribs) (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}} |