Nim game: Difference between revisions
Content added Content deleted
(v lang) |
(+add Pike) |
||
Line 2,056: | Line 2,056: | ||
4 tokens remaining. How many tokens do you want to remove; 1, 2, or 3?:3. Computer takes 1. |
4 tokens remaining. How many tokens do you want to remove; 1, 2, or 3?:3. Computer takes 1. |
||
0 tokens remaining. Computer wins. |
0 tokens remaining. Computer wins. |
||
</pre> |
|||
=={{header|Pike}}== |
|||
{{trans|Python}} |
|||
<lang Pike>int tokens = 12; |
|||
void get_tokens(int cur_tokens) { |
|||
write("How many tokens would you like to take? "); |
|||
int take = (int)Stdio.stdin->gets(); |
|||
if (take < 1 || take > 3) { |
|||
write("Number must be between 1 and 3.\n"); |
|||
get_tokens(cur_tokens); |
|||
} |
|||
else { |
|||
tokens = cur_tokens - take; |
|||
write("You take " + (string)take + " tokens\n"); |
|||
write((string)tokens + " tokens remaing\n\n"); |
|||
} |
|||
} |
|||
void comp_turn(int cur_tokens) { |
|||
int take = cur_tokens % 4; |
|||
tokens = cur_tokens - take; |
|||
write("Computer take " + (string)take + " tokens\n"); |
|||
write((string)tokens + " tokens remaing\n\n"); |
|||
} |
|||
int main() { |
|||
write("Pike Nim\n\n"); |
|||
while(tokens > 0) { |
|||
get_tokens(tokens); |
|||
comp_turn(tokens); |
|||
} |
|||
write("Computer wins!\n"); |
|||
return 0; |
|||
}</lang> |
|||
{{out}} |
|||
<pre>Pike Nim |
|||
How many tokens would you like to take? 2 |
|||
You take 2 tokens |
|||
10 tokens remaing |
|||
Computer take 2 tokens |
|||
8 tokens remaing |
|||
How many tokens would you like to take? 6 |
|||
Number must be between 1 and 3. |
|||
How many tokens would you like to take? -2 |
|||
Number must be between 1 and 3. |
|||
How many tokens would you like to take? 1 |
|||
You take 1 tokens |
|||
7 tokens remaing |
|||
Computer take 3 tokens |
|||
4 tokens remaing |
|||
How many tokens would you like to take? 3 |
|||
You take 3 tokens |
|||
1 tokens remaing |
|||
Computer take 1 tokens |
|||
0 tokens remaing |
|||
Computer wins! |
|||
</pre> |
</pre> |
||