From 932d367fbda2dacd73da177b54f0ec00489225b4 Mon Sep 17 00:00:00 2001
From: Benjamin Auder <benjamin.auder@somewhere>
Date: Wed, 24 Jan 2018 12:45:05 +0100
Subject: [PATCH] debug attempt with simple RPS

---
 rpsls.js | 19 ++++++++++---------
 1 file changed, 10 insertions(+), 9 deletions(-)

diff --git a/rpsls.js b/rpsls.js
index f14b617..661e31c 100644
--- a/rpsls.js
+++ b/rpsls.js
@@ -1,14 +1,14 @@
-const nChoice = 5; //fixed for this game
+const nChoice = 3; //fixed for this game
 
 // Rewards matrix. Order: rock, lizard, Spock, scissors, paper
 const rewards = Array.from(Array(nChoice)).map( (e,i) => { //lines
 	return Array.from(Array(nChoice)).map( (f,j) => { //columns
 		// i against j: gain from i viewpoint
-		if (j == (i+1) % nChoice || j == (i+3) % nChoice)
+		if (j == (i+1) % nChoice)// || j == (i+3) % nChoice)
 			return 1; //I win :)
-		else if ((i+1) % nChoice == j || j == (i+2) % nChoice)
+		else if (i != j)
 			return -1; //I lose :(
-		else
+		else //i == j
 			return 0;
 	});
 });
@@ -64,12 +64,12 @@ new Vue({
 			});
 			// Pick a choice at random in maxValue (total random for first move)
 			let randIdx = Math.floor((Math.random() * candidates.length) + 1);
-			this.updateGameState(candidates[randIdx]);
+			this.updateGameState(candidates[randIdx].index);
 		},
-		updateGameState: function(move) {
-			let reward = rewards[move.val][this.humanMove]; //viewpoint of computer
+		updateGameState: function(index) {
+			let reward = rewards[index][this.humanMove]; //viewpoint of computer
 			this.gameState += reward;
-			this.updateWeights(reward, move.index);
+			this.updateWeights(reward, index);
 		},
 		updateWeights: function(reward, index) {
 			let delta = Math.sign(reward);
@@ -100,7 +100,8 @@ new Vue({
 			});
 			// Update human moves history
 			this.humanHistory.push(this.humanMove);
-			this.humanHistory.shift();
+			if (this.humanHistory.length > this.nInput)
+				this.humanHistory.shift();
 		},
   },
 });
-- 
2.44.0