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.




 
# syntax: GAWK -f NIM_GAME.AWK
BEGIN {
    tokens = 12
    printf("Nim game - using %d tokens\n",tokens)
    while (tokens > 0) {
      for (;;) {
        printf("how many tokens 1-3? ")
        getline ans
        if (ans ~ /^[123]$/) {
          tokens -= ans
          prn("player")
          break
        }
        print("invalid input, try again")
      }
      tokens -= ans = tokens % 4
      prn("computer")
    }
    print("computer wins")
    exit(0)
}
function prn(who) {
    printf("%s takes %d token%s; there are %d remaining\n",who,ans,(ans==1)?"":"s",tokens)
}
 