Nim game

You are encouraged to solve this task according to the task description, using any language you may know.
Nim is a simple game where the second player ─── if they know the trick ─── will always win.



The game has only 3 rules:

   start with   12   tokens
   each player takes   1,  2,  or  3   tokens in turn
  the player who takes the last token wins.


To win every time,   the second player simply takes 4 minus the number the first player took.   So if the first player takes 1,   the second takes 3 ─── if the first player takes 2,   the second should take 2 ─── and if the first player takes 3,   the second player will take 1.



Task

Design a simple Nim game where the human player goes first, and the computer always wins. The game should enforce the rules.




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;
}