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.




Red [
    date: 2021-10-24
    version: 0.6.4
    summary: "Demonstrate the game of Nim in Red for Rosetta Code"
]
 
take-tokens: function [
    "Ask the user to take between 1 and 3 tokens."
][
    forever [
        n: trim ask "Would you like to take 1, 2, or 3 tokens (q to quit)? "
        if n = "q" [quit]
        n: try [to-integer n]
        case [
            not integer? n [print "Please enter an integer."]
            any [n < 1 n > 3] [print "Please enter a number between 1 and 3."]
            true [return n]
        ]
    ]
]
 
tokens: 12
while [tokens > 0][
    print ["There are" tokens "tokens remaining."]
    n: take-tokens
    print ["You took" n "tokens."]
    tokens: tokens - n
    print ["Computer takes" 4 - n "tokens."]
    tokens: subtract tokens subtract 4 n
]
print "Computer wins!"