How to resolve the algorithm Nim game step by step in the Common Lisp programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm Nim game step by step in the Common Lisp programming language

Table of Contents

Problem Statement

Nim is a simple game where the second player─if they know the trick─will always win.

The game has only 3 rules:

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. Design a simple Nim game where the human player goes first, and the computer always wins. The game should enforce the rules.

Let's start with the solution:

Step by Step solution about How to resolve the algorithm Nim game step by step in the Common Lisp programming language

Source code in the common programming language

(defun pturn (curTokens)
	(write-string "How many tokens would you like to take?: ")
	(setq ans (read))
	(setq tokensRemaining (- curTokens ans))
	(format t "You take ~D tokens~%" ans)
	(printRemaining tokensRemaining)
	tokensRemaining)

(defun cturn (curTokens)
	(setq take (mod curTokens 4))
	(setq tokensRemaining (- curTokens take))
	(format t "Computer takes ~D tokens~%" take)
	(printRemaining tokensRemaining)
	tokensRemaining)

(defun printRemaining (remaining)
	(format t "~D tokens remaining~%~%" remaining))


(format t "LISP Nim~%~%")
(setq tok 12)
(loop
	(setq tok (pturn tok))
	(setq tok (cturn tok))
	(if (<= tok 0)
		(return)))
(write-string "Computer wins!")


  

You may also check:How to resolve the algorithm XML/Input step by step in the Rust programming language
You may also check:How to resolve the algorithm Logical operations step by step in the REBOL programming language
You may also check:How to resolve the algorithm Catamorphism step by step in the PureBasic programming language
You may also check:How to resolve the algorithm Loops/Break step by step in the Rust programming language
You may also check:How to resolve the algorithm Ranking methods step by step in the Kotlin programming language