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.




 
tokens = 12
 
print("Nim Game\n")
print("Starting with " .. tokens .. " tokens.\n\n")
 
function printRemaining()
	print(tokens .. " tokens remaining.\n")
end
 
function playerTurn(take)
	take = math.floor(take)
	if (take < 1 or take > 3) then
		print ("\nTake must be between 1 and 3.\n")
		return false
	end
 
	tokens = tokens - take
 
	print ("\nPlayer takes " .. take .. " tokens.")
	printRemaining()
	return true
end
 
function computerTurn()
	take = tokens % 4
	tokens = tokens - take
 
	print("Computer takes " .. take .. " tokens.")
	printRemaining()
end
 
while (tokens > 0) do
	io.write("How many tokens would you like to take?: ")
	if playerTurn(io.read("*n")) then
		computerTurn()
	end
end
 
print ("Computer wins.")
 