diff --git a/Connect4/Puissance4.html b/Connect4/Puissance4.html
new file mode 100644
index 0000000000000000000000000000000000000000..280d70b3c6d581575395d5ed2d3973df12b4035a
--- /dev/null
+++ b/Connect4/Puissance4.html
@@ -0,0 +1,3301 @@
+<!DOCTYPE html>
+<html>
+<head>
+     <!-- html file generated by ProB from a VisB visualization -->
+     <meta name="viewport" content="width=device-width, initial-scale=1.0">
+     <meta http-equiv="content-type" content="text/html; charset=utf-8">
+     <script>
+        function setAttr(id, attribute, value){
+			var obj = document.getElementById(id);
+			if (obj == null) {
+			    if (id != "visb_debug_messages") {
+				     console.error("Unknown SVG id " + id + " for attribute " + attribute);
+				}
+			} else if(attribute=="text") {
+				obj.textContent = value;
+			} else if(attribute=="class" && value != "") {
+			   if(value[0]=="+") {
+			      obj.classList.add(value.substr(1));
+			   } else if(value[0]=="-") {
+			      obj.classList.remove(value.substr(1));
+			   } else {
+				  obj.setAttribute(attribute, value);
+			   }
+			} else {
+				obj.setAttribute(attribute, value);
+			}
+        }
+		function sleep(ms) {
+		    return new Promise(resolve => setTimeout(resolve, ms));
+		}
+		var lastSelectedRow = 0;
+		function highlightRow(id) {
+             if (lastSelectedRow>0) {setAttr("row"+lastSelectedRow,"bgcolor","")};
+             setAttr("row"+id,"bgcolor","yellow");
+             lastSelectedRow = id;
+		}
+		function backStep() {
+		     if (lastSelectedRow>1) {
+		       var prev = lastSelectedRow-1;
+		       document.getElementById("row"+prev).click();
+		     }
+		}
+		function forwardStep() {
+		     if (lastSelectedRow>0) {
+		        var nxt = lastSelectedRow+1;
+		        var row = document.getElementById("row"+(nxt));
+		        if (row != null) { row.click() };
+		     }
+		}
+    </script>
+  
+	<style>
+	table {
+	  font-family: arial, sans-serif;
+	  font-size: 11px;
+	  border-collapse: collapse;
+	  width: 100%;
+	}
+	td, th {
+	  border: 1px solid #dddddd;
+	  text-align: left;
+	  padding: 2px;
+	}
+/* 
+	tr:nth-child(even) {
+	  background-color: #dddddd;
+	}
+ */
+	</style> 
+	
+	<style>
+	.collapsible {
+	  cursor: pointer;
+	}
+	.collapsible-style {
+	  background-color: #777;
+	  color: white;
+	  padding: 6px;
+	  width: 100%;
+	  border: none;
+	  text-align: left;
+	  outline: none;
+	  font-size: 12px;
+	}
+
+	.active, .collapsible:hover {
+	  background-color: #555;
+	}
+	
+	.collapsible:after {
+	  content: '\002B';
+	  color: white;
+	  font-weight: bold;
+	  float: right;
+	  margin-left: 5px;
+	}
+
+	.active:after {
+	  content: "\2212";
+	}
+
+	.coll-content-hid {
+	  padding: 0 12px;
+	  display: none;
+	  overflow: hidden;
+	  background-color: #f1f1f1;
+	}
+	.coll-content-vis {
+	  padding: 0 12px;
+	  display: block;
+	  overflow: hidden;
+	  background-color: #f1f1f1;
+	}
+	.visb-messages {
+	  text-align: left;
+	  outline: none;
+	  font-size: 12px;
+	  font-family: arial, sans-serif;
+	}
+  </style>
+
+        
+
+ <script>
+   function visualise0(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/23, State ID: 0");
+       highlightRow(stepNr);
+     }
+   function visualise1(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/23, State ID: 1");
+       setAttr("piece1_1","class","normal");
+       setAttr("piece1_2","class","normal");
+       setAttr("piece1_3","class","normal");
+       setAttr("piece1_4","class","normal");
+       setAttr("piece1_5","class","normal");
+       setAttr("piece1_6","class","normal");
+       setAttr("piece2_1","class","normal");
+       setAttr("piece2_2","class","normal");
+       setAttr("piece2_3","class","normal");
+       setAttr("piece2_4","class","normal");
+       setAttr("piece2_5","class","normal");
+       setAttr("piece2_6","class","normal");
+       setAttr("piece3_1","class","normal");
+       setAttr("piece3_2","class","normal");
+       setAttr("piece3_3","class","normal");
+       setAttr("piece3_4","class","normal");
+       setAttr("piece3_5","class","normal");
+       setAttr("piece3_6","class","normal");
+       setAttr("piece4_1","class","normal");
+       setAttr("piece4_2","class","normal");
+       setAttr("piece4_3","class","normal");
+       setAttr("piece4_4","class","normal");
+       setAttr("piece4_5","class","normal");
+       setAttr("piece4_6","class","normal");
+       setAttr("piece5_1","class","normal");
+       setAttr("piece5_2","class","normal");
+       setAttr("piece5_3","class","normal");
+       setAttr("piece5_4","class","normal");
+       setAttr("piece5_5","class","normal");
+       setAttr("piece5_6","class","normal");
+       setAttr("piece6_1","class","normal");
+       setAttr("piece6_2","class","normal");
+       setAttr("piece6_3","class","normal");
+       setAttr("piece6_4","class","normal");
+       setAttr("piece6_5","class","normal");
+       setAttr("piece6_6","class","normal");
+       setAttr("piece7_1","class","normal");
+       setAttr("piece7_2","class","normal");
+       setAttr("piece7_3","class","normal");
+       setAttr("piece7_4","class","normal");
+       setAttr("piece7_5","class","normal");
+       setAttr("piece7_6","class","normal");
+       setAttr("nxt_piece","class","red");
+       setAttr("bVar_board","text","{(1|->1|->vide),(1|->2|->vide),(1|->3|->vide),(1|->4|->vide),(1|->5|->vide),(1|->6|->vide),(2|->1|->vide),(2|->2|->vide),(2|->3|->vide),(2|->4|->vide),(2|->5|->vide),(2|->6|->vide),(3|->1|->vide),(3|->2|->vide),(3|->3|->vide),(3|->4|->vide),(3|->5|->vide),(3|->6|->vide),(4|->1|->vide),(4|->2|->vide),(4|->3|->vide),(4|->4|->vide),(4|->5|->vide),(4|->6|->vide),(5|->1|->vide),(5|->2|->vide),(5|->3|->vide),(5|->4|->vide),(5|->5|->vide),(5|->6|->vide),(6|->1|->vide),(6|->2|->vide),(6|->3|->vide),(6|->4|->vide),(6|->5|->vide),(6|->6|->vide),(7|->1|->vide),(7|->2|->vide),(7|->3|->vide),(7|->4|->vide),(7|->5|->vide),(7|->6|->vide)}");
+       setAttr("bVar_joueur","text","rouge");
+       setAttr("bVar_lastpos","text","(7|->6)");
+       highlightRow(stepNr);
+     }
+   function visualise5(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/23, State ID: 5");
+       setAttr("piece1_1","class","normal");
+       setAttr("piece1_2","class","normal");
+       setAttr("piece1_3","class","normal");
+       setAttr("piece1_4","class","normal");
+       setAttr("piece1_5","class","normal");
+       setAttr("piece1_6","class","normal");
+       setAttr("piece2_1","class","normal");
+       setAttr("piece2_2","class","normal");
+       setAttr("piece2_3","class","normal");
+       setAttr("piece2_4","class","normal");
+       setAttr("piece2_5","class","normal");
+       setAttr("piece2_6","class","normal");
+       setAttr("piece3_1","class","normal");
+       setAttr("piece3_2","class","normal");
+       setAttr("piece3_3","class","normal");
+       setAttr("piece3_4","class","normal");
+       setAttr("piece3_5","class","normal");
+       setAttr("piece3_6","class","normal");
+       setAttr("piece4_1","class","normal");
+       setAttr("piece4_2","class","normal");
+       setAttr("piece4_3","class","normal");
+       setAttr("piece4_4","class","normal");
+       setAttr("piece4_5","class","normal");
+       setAttr("piece4_6","class","red_last");
+       setAttr("piece5_1","class","normal");
+       setAttr("piece5_2","class","normal");
+       setAttr("piece5_3","class","normal");
+       setAttr("piece5_4","class","normal");
+       setAttr("piece5_5","class","normal");
+       setAttr("piece5_6","class","normal");
+       setAttr("piece6_1","class","normal");
+       setAttr("piece6_2","class","normal");
+       setAttr("piece6_3","class","normal");
+       setAttr("piece6_4","class","normal");
+       setAttr("piece6_5","class","normal");
+       setAttr("piece6_6","class","normal");
+       setAttr("piece7_1","class","normal");
+       setAttr("piece7_2","class","normal");
+       setAttr("piece7_3","class","normal");
+       setAttr("piece7_4","class","normal");
+       setAttr("piece7_5","class","normal");
+       setAttr("piece7_6","class","normal");
+       setAttr("nxt_piece","class","yellow");
+       setAttr("bVar_board","text","{(1|->1|->vide),(1|->2|->vide),(1|->3|->vide),(1|->4|->vide),(1|->5|->vide),(1|->6|->vide),(2|->1|->vide),(2|->2|->vide),(2|->3|->vide),(2|->4|->vide),(2|->5|->vide),(2|->6|->vide),(3|->1|->vide),(3|->2|->vide),(3|->3|->vide),(3|->4|->vide),(3|->5|->vide),(3|->6|->vide),(4|->1|->vide),(4|->2|->vide),(4|->3|->vide),(4|->4|->vide),(4|->5|->vide),(4|->6|->rouge),(5|->1|->vide),(5|->2|->vide),(5|->3|->vide),(5|->4|->vide),(5|->5|->vide),(5|->6|->vide),(6|->1|->vide),(6|->2|->vide),(6|->3|->vide),(6|->4|->vide),(6|->5|->vide),(6|->6|->vide),(7|->1|->vide),(7|->2|->vide),(7|->3|->vide),(7|->4|->vide),(7|->5|->vide),(7|->6|->vide)}");
+       setAttr("bVar_joueur","text","jaune");
+       setAttr("bVar_lastpos","text","(4|->6)");
+       highlightRow(stepNr);
+     }
+   function visualise13(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/23, State ID: 13");
+       setAttr("piece1_1","class","normal");
+       setAttr("piece1_2","class","normal");
+       setAttr("piece1_3","class","normal");
+       setAttr("piece1_4","class","normal");
+       setAttr("piece1_5","class","normal");
+       setAttr("piece1_6","class","normal");
+       setAttr("piece2_1","class","normal");
+       setAttr("piece2_2","class","normal");
+       setAttr("piece2_3","class","normal");
+       setAttr("piece2_4","class","normal");
+       setAttr("piece2_5","class","normal");
+       setAttr("piece2_6","class","normal");
+       setAttr("piece3_1","class","normal");
+       setAttr("piece3_2","class","normal");
+       setAttr("piece3_3","class","normal");
+       setAttr("piece3_4","class","normal");
+       setAttr("piece3_5","class","normal");
+       setAttr("piece3_6","class","normal");
+       setAttr("piece4_1","class","normal");
+       setAttr("piece4_2","class","normal");
+       setAttr("piece4_3","class","normal");
+       setAttr("piece4_4","class","normal");
+       setAttr("piece4_5","class","normal");
+       setAttr("piece4_6","class","red");
+       setAttr("piece5_1","class","normal");
+       setAttr("piece5_2","class","normal");
+       setAttr("piece5_3","class","normal");
+       setAttr("piece5_4","class","normal");
+       setAttr("piece5_5","class","normal");
+       setAttr("piece5_6","class","yellow_last");
+       setAttr("piece6_1","class","normal");
+       setAttr("piece6_2","class","normal");
+       setAttr("piece6_3","class","normal");
+       setAttr("piece6_4","class","normal");
+       setAttr("piece6_5","class","normal");
+       setAttr("piece6_6","class","normal");
+       setAttr("piece7_1","class","normal");
+       setAttr("piece7_2","class","normal");
+       setAttr("piece7_3","class","normal");
+       setAttr("piece7_4","class","normal");
+       setAttr("piece7_5","class","normal");
+       setAttr("piece7_6","class","normal");
+       setAttr("nxt_piece","class","red");
+       setAttr("bVar_board","text","{(1|->1|->vide),(1|->2|->vide),(1|->3|->vide),(1|->4|->vide),(1|->5|->vide),(1|->6|->vide),(2|->1|->vide),(2|->2|->vide),(2|->3|->vide),(2|->4|->vide),(2|->5|->vide),(2|->6|->vide),(3|->1|->vide),(3|->2|->vide),(3|->3|->vide),(3|->4|->vide),(3|->5|->vide),(3|->6|->vide),(4|->1|->vide),(4|->2|->vide),(4|->3|->vide),(4|->4|->vide),(4|->5|->vide),(4|->6|->rouge),(5|->1|->vide),(5|->2|->vide),(5|->3|->vide),(5|->4|->vide),(5|->5|->vide),(5|->6|->jaune),(6|->1|->vide),(6|->2|->vide),(6|->3|->vide),(6|->4|->vide),(6|->5|->vide),(6|->6|->vide),(7|->1|->vide),(7|->2|->vide),(7|->3|->vide),(7|->4|->vide),(7|->5|->vide),(7|->6|->vide)}");
+       setAttr("bVar_joueur","text","rouge");
+       setAttr("bVar_lastpos","text","(5|->6)");
+       highlightRow(stepNr);
+     }
+   function visualise19(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/23, State ID: 19");
+       setAttr("piece1_1","class","normal");
+       setAttr("piece1_2","class","normal");
+       setAttr("piece1_3","class","normal");
+       setAttr("piece1_4","class","normal");
+       setAttr("piece1_5","class","normal");
+       setAttr("piece1_6","class","normal");
+       setAttr("piece2_1","class","normal");
+       setAttr("piece2_2","class","normal");
+       setAttr("piece2_3","class","normal");
+       setAttr("piece2_4","class","normal");
+       setAttr("piece2_5","class","normal");
+       setAttr("piece2_6","class","normal");
+       setAttr("piece3_1","class","normal");
+       setAttr("piece3_2","class","normal");
+       setAttr("piece3_3","class","normal");
+       setAttr("piece3_4","class","normal");
+       setAttr("piece3_5","class","normal");
+       setAttr("piece3_6","class","normal");
+       setAttr("piece4_1","class","normal");
+       setAttr("piece4_2","class","normal");
+       setAttr("piece4_3","class","normal");
+       setAttr("piece4_4","class","normal");
+       setAttr("piece4_5","class","red_last");
+       setAttr("piece4_6","class","red");
+       setAttr("piece5_1","class","normal");
+       setAttr("piece5_2","class","normal");
+       setAttr("piece5_3","class","normal");
+       setAttr("piece5_4","class","normal");
+       setAttr("piece5_5","class","normal");
+       setAttr("piece5_6","class","yellow");
+       setAttr("piece6_1","class","normal");
+       setAttr("piece6_2","class","normal");
+       setAttr("piece6_3","class","normal");
+       setAttr("piece6_4","class","normal");
+       setAttr("piece6_5","class","normal");
+       setAttr("piece6_6","class","normal");
+       setAttr("piece7_1","class","normal");
+       setAttr("piece7_2","class","normal");
+       setAttr("piece7_3","class","normal");
+       setAttr("piece7_4","class","normal");
+       setAttr("piece7_5","class","normal");
+       setAttr("piece7_6","class","normal");
+       setAttr("nxt_piece","class","yellow");
+       setAttr("bVar_board","text","{(1|->1|->vide),(1|->2|->vide),(1|->3|->vide),(1|->4|->vide),(1|->5|->vide),(1|->6|->vide),(2|->1|->vide),(2|->2|->vide),(2|->3|->vide),(2|->4|->vide),(2|->5|->vide),(2|->6|->vide),(3|->1|->vide),(3|->2|->vide),(3|->3|->vide),(3|->4|->vide),(3|->5|->vide),(3|->6|->vide),(4|->1|->vide),(4|->2|->vide),(4|->3|->vide),(4|->4|->vide),(4|->5|->rouge),(4|->6|->rouge),(5|->1|->vide),(5|->2|->vide),(5|->3|->vide),(5|->4|->vide),(5|->5|->vide),(5|->6|->jaune),(6|->1|->vide),(6|->2|->vide),(6|->3|->vide),(6|->4|->vide),(6|->5|->vide),(6|->6|->vide),(7|->1|->vide),(7|->2|->vide),(7|->3|->vide),(7|->4|->vide),(7|->5|->vide),(7|->6|->vide)}");
+       setAttr("bVar_joueur","text","jaune");
+       setAttr("bVar_lastpos","text","(4|->5)");
+       highlightRow(stepNr);
+     }
+   function visualise27(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/23, State ID: 27");
+       setAttr("piece1_1","class","normal");
+       setAttr("piece1_2","class","normal");
+       setAttr("piece1_3","class","normal");
+       setAttr("piece1_4","class","normal");
+       setAttr("piece1_5","class","normal");
+       setAttr("piece1_6","class","normal");
+       setAttr("piece2_1","class","normal");
+       setAttr("piece2_2","class","normal");
+       setAttr("piece2_3","class","normal");
+       setAttr("piece2_4","class","normal");
+       setAttr("piece2_5","class","normal");
+       setAttr("piece2_6","class","normal");
+       setAttr("piece3_1","class","normal");
+       setAttr("piece3_2","class","normal");
+       setAttr("piece3_3","class","normal");
+       setAttr("piece3_4","class","normal");
+       setAttr("piece3_5","class","normal");
+       setAttr("piece3_6","class","normal");
+       setAttr("piece4_1","class","normal");
+       setAttr("piece4_2","class","normal");
+       setAttr("piece4_3","class","normal");
+       setAttr("piece4_4","class","normal");
+       setAttr("piece4_5","class","red");
+       setAttr("piece4_6","class","red");
+       setAttr("piece5_1","class","normal");
+       setAttr("piece5_2","class","normal");
+       setAttr("piece5_3","class","normal");
+       setAttr("piece5_4","class","normal");
+       setAttr("piece5_5","class","yellow_last");
+       setAttr("piece5_6","class","yellow");
+       setAttr("piece6_1","class","normal");
+       setAttr("piece6_2","class","normal");
+       setAttr("piece6_3","class","normal");
+       setAttr("piece6_4","class","normal");
+       setAttr("piece6_5","class","normal");
+       setAttr("piece6_6","class","normal");
+       setAttr("piece7_1","class","normal");
+       setAttr("piece7_2","class","normal");
+       setAttr("piece7_3","class","normal");
+       setAttr("piece7_4","class","normal");
+       setAttr("piece7_5","class","normal");
+       setAttr("piece7_6","class","normal");
+       setAttr("nxt_piece","class","red");
+       setAttr("bVar_board","text","{(1|->1|->vide),(1|->2|->vide),(1|->3|->vide),(1|->4|->vide),(1|->5|->vide),(1|->6|->vide),(2|->1|->vide),(2|->2|->vide),(2|->3|->vide),(2|->4|->vide),(2|->5|->vide),(2|->6|->vide),(3|->1|->vide),(3|->2|->vide),(3|->3|->vide),(3|->4|->vide),(3|->5|->vide),(3|->6|->vide),(4|->1|->vide),(4|->2|->vide),(4|->3|->vide),(4|->4|->vide),(4|->5|->rouge),(4|->6|->rouge),(5|->1|->vide),(5|->2|->vide),(5|->3|->vide),(5|->4|->vide),(5|->5|->jaune),(5|->6|->jaune),(6|->1|->vide),(6|->2|->vide),(6|->3|->vide),(6|->4|->vide),(6|->5|->vide),(6|->6|->vide),(7|->1|->vide),(7|->2|->vide),(7|->3|->vide),(7|->4|->vide),(7|->5|->vide),(7|->6|->vide)}");
+       setAttr("bVar_joueur","text","rouge");
+       setAttr("bVar_lastpos","text","(5|->5)");
+       highlightRow(stepNr);
+     }
+   function visualise33(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/23, State ID: 33");
+       setAttr("piece1_1","class","normal");
+       setAttr("piece1_2","class","normal");
+       setAttr("piece1_3","class","normal");
+       setAttr("piece1_4","class","normal");
+       setAttr("piece1_5","class","normal");
+       setAttr("piece1_6","class","normal");
+       setAttr("piece2_1","class","normal");
+       setAttr("piece2_2","class","normal");
+       setAttr("piece2_3","class","normal");
+       setAttr("piece2_4","class","normal");
+       setAttr("piece2_5","class","normal");
+       setAttr("piece2_6","class","normal");
+       setAttr("piece3_1","class","normal");
+       setAttr("piece3_2","class","normal");
+       setAttr("piece3_3","class","normal");
+       setAttr("piece3_4","class","normal");
+       setAttr("piece3_5","class","normal");
+       setAttr("piece3_6","class","normal");
+       setAttr("piece4_1","class","normal");
+       setAttr("piece4_2","class","normal");
+       setAttr("piece4_3","class","normal");
+       setAttr("piece4_4","class","red_last");
+       setAttr("piece4_5","class","red");
+       setAttr("piece4_6","class","red");
+       setAttr("piece5_1","class","normal");
+       setAttr("piece5_2","class","normal");
+       setAttr("piece5_3","class","normal");
+       setAttr("piece5_4","class","normal");
+       setAttr("piece5_5","class","yellow");
+       setAttr("piece5_6","class","yellow");
+       setAttr("piece6_1","class","normal");
+       setAttr("piece6_2","class","normal");
+       setAttr("piece6_3","class","normal");
+       setAttr("piece6_4","class","normal");
+       setAttr("piece6_5","class","normal");
+       setAttr("piece6_6","class","normal");
+       setAttr("piece7_1","class","normal");
+       setAttr("piece7_2","class","normal");
+       setAttr("piece7_3","class","normal");
+       setAttr("piece7_4","class","normal");
+       setAttr("piece7_5","class","normal");
+       setAttr("piece7_6","class","normal");
+       setAttr("nxt_piece","class","yellow");
+       setAttr("bVar_board","text","{(1|->1|->vide),(1|->2|->vide),(1|->3|->vide),(1|->4|->vide),(1|->5|->vide),(1|->6|->vide),(2|->1|->vide),(2|->2|->vide),(2|->3|->vide),(2|->4|->vide),(2|->5|->vide),(2|->6|->vide),(3|->1|->vide),(3|->2|->vide),(3|->3|->vide),(3|->4|->vide),(3|->5|->vide),(3|->6|->vide),(4|->1|->vide),(4|->2|->vide),(4|->3|->vide),(4|->4|->rouge),(4|->5|->rouge),(4|->6|->rouge),(5|->1|->vide),(5|->2|->vide),(5|->3|->vide),(5|->4|->vide),(5|->5|->jaune),(5|->6|->jaune),(6|->1|->vide),(6|->2|->vide),(6|->3|->vide),(6|->4|->vide),(6|->5|->vide),(6|->6|->vide),(7|->1|->vide),(7|->2|->vide),(7|->3|->vide),(7|->4|->vide),(7|->5|->vide),(7|->6|->vide)}");
+       setAttr("bVar_joueur","text","jaune");
+       setAttr("bVar_lastpos","text","(4|->4)");
+       highlightRow(stepNr);
+     }
+   function visualise40(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/23, State ID: 40");
+       setAttr("piece1_1","class","normal");
+       setAttr("piece1_2","class","normal");
+       setAttr("piece1_3","class","normal");
+       setAttr("piece1_4","class","normal");
+       setAttr("piece1_5","class","normal");
+       setAttr("piece1_6","class","normal");
+       setAttr("piece2_1","class","normal");
+       setAttr("piece2_2","class","normal");
+       setAttr("piece2_3","class","normal");
+       setAttr("piece2_4","class","normal");
+       setAttr("piece2_5","class","normal");
+       setAttr("piece2_6","class","normal");
+       setAttr("piece3_1","class","normal");
+       setAttr("piece3_2","class","normal");
+       setAttr("piece3_3","class","normal");
+       setAttr("piece3_4","class","normal");
+       setAttr("piece3_5","class","normal");
+       setAttr("piece3_6","class","normal");
+       setAttr("piece4_1","class","normal");
+       setAttr("piece4_2","class","normal");
+       setAttr("piece4_3","class","yellow_last");
+       setAttr("piece4_4","class","red");
+       setAttr("piece4_5","class","red");
+       setAttr("piece4_6","class","red");
+       setAttr("piece5_1","class","normal");
+       setAttr("piece5_2","class","normal");
+       setAttr("piece5_3","class","normal");
+       setAttr("piece5_4","class","normal");
+       setAttr("piece5_5","class","yellow");
+       setAttr("piece5_6","class","yellow");
+       setAttr("piece6_1","class","normal");
+       setAttr("piece6_2","class","normal");
+       setAttr("piece6_3","class","normal");
+       setAttr("piece6_4","class","normal");
+       setAttr("piece6_5","class","normal");
+       setAttr("piece6_6","class","normal");
+       setAttr("piece7_1","class","normal");
+       setAttr("piece7_2","class","normal");
+       setAttr("piece7_3","class","normal");
+       setAttr("piece7_4","class","normal");
+       setAttr("piece7_5","class","normal");
+       setAttr("piece7_6","class","normal");
+       setAttr("nxt_piece","class","red");
+       setAttr("bVar_board","text","{(1|->1|->vide),(1|->2|->vide),(1|->3|->vide),(1|->4|->vide),(1|->5|->vide),(1|->6|->vide),(2|->1|->vide),(2|->2|->vide),(2|->3|->vide),(2|->4|->vide),(2|->5|->vide),(2|->6|->vide),(3|->1|->vide),(3|->2|->vide),(3|->3|->vide),(3|->4|->vide),(3|->5|->vide),(3|->6|->vide),(4|->1|->vide),(4|->2|->vide),(4|->3|->jaune),(4|->4|->rouge),(4|->5|->rouge),(4|->6|->rouge),(5|->1|->vide),(5|->2|->vide),(5|->3|->vide),(5|->4|->vide),(5|->5|->jaune),(5|->6|->jaune),(6|->1|->vide),(6|->2|->vide),(6|->3|->vide),(6|->4|->vide),(6|->5|->vide),(6|->6|->vide),(7|->1|->vide),(7|->2|->vide),(7|->3|->vide),(7|->4|->vide),(7|->5|->vide),(7|->6|->vide)}");
+       setAttr("bVar_joueur","text","rouge");
+       setAttr("bVar_lastpos","text","(4|->3)");
+       highlightRow(stepNr);
+     }
+   function visualise48(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/23, State ID: 48");
+       setAttr("piece1_1","class","normal");
+       setAttr("piece1_2","class","normal");
+       setAttr("piece1_3","class","normal");
+       setAttr("piece1_4","class","normal");
+       setAttr("piece1_5","class","normal");
+       setAttr("piece1_6","class","normal");
+       setAttr("piece2_1","class","normal");
+       setAttr("piece2_2","class","normal");
+       setAttr("piece2_3","class","normal");
+       setAttr("piece2_4","class","normal");
+       setAttr("piece2_5","class","normal");
+       setAttr("piece2_6","class","normal");
+       setAttr("piece3_1","class","normal");
+       setAttr("piece3_2","class","normal");
+       setAttr("piece3_3","class","normal");
+       setAttr("piece3_4","class","normal");
+       setAttr("piece3_5","class","normal");
+       setAttr("piece3_6","class","normal");
+       setAttr("piece4_1","class","normal");
+       setAttr("piece4_2","class","normal");
+       setAttr("piece4_3","class","yellow");
+       setAttr("piece4_4","class","red");
+       setAttr("piece4_5","class","red");
+       setAttr("piece4_6","class","red");
+       setAttr("piece5_1","class","normal");
+       setAttr("piece5_2","class","normal");
+       setAttr("piece5_3","class","normal");
+       setAttr("piece5_4","class","red_last");
+       setAttr("piece5_5","class","yellow");
+       setAttr("piece5_6","class","yellow");
+       setAttr("piece6_1","class","normal");
+       setAttr("piece6_2","class","normal");
+       setAttr("piece6_3","class","normal");
+       setAttr("piece6_4","class","normal");
+       setAttr("piece6_5","class","normal");
+       setAttr("piece6_6","class","normal");
+       setAttr("piece7_1","class","normal");
+       setAttr("piece7_2","class","normal");
+       setAttr("piece7_3","class","normal");
+       setAttr("piece7_4","class","normal");
+       setAttr("piece7_5","class","normal");
+       setAttr("piece7_6","class","normal");
+       setAttr("nxt_piece","class","yellow");
+       setAttr("bVar_board","text","{(1|->1|->vide),(1|->2|->vide),(1|->3|->vide),(1|->4|->vide),(1|->5|->vide),(1|->6|->vide),(2|->1|->vide),(2|->2|->vide),(2|->3|->vide),(2|->4|->vide),(2|->5|->vide),(2|->6|->vide),(3|->1|->vide),(3|->2|->vide),(3|->3|->vide),(3|->4|->vide),(3|->5|->vide),(3|->6|->vide),(4|->1|->vide),(4|->2|->vide),(4|->3|->jaune),(4|->4|->rouge),(4|->5|->rouge),(4|->6|->rouge),(5|->1|->vide),(5|->2|->vide),(5|->3|->vide),(5|->4|->rouge),(5|->5|->jaune),(5|->6|->jaune),(6|->1|->vide),(6|->2|->vide),(6|->3|->vide),(6|->4|->vide),(6|->5|->vide),(6|->6|->vide),(7|->1|->vide),(7|->2|->vide),(7|->3|->vide),(7|->4|->vide),(7|->5|->vide),(7|->6|->vide)}");
+       setAttr("bVar_joueur","text","jaune");
+       setAttr("bVar_lastpos","text","(5|->4)");
+       highlightRow(stepNr);
+     }
+   function visualise52(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/23, State ID: 52");
+       setAttr("piece1_1","class","normal");
+       setAttr("piece1_2","class","normal");
+       setAttr("piece1_3","class","normal");
+       setAttr("piece1_4","class","normal");
+       setAttr("piece1_5","class","normal");
+       setAttr("piece1_6","class","normal");
+       setAttr("piece2_1","class","normal");
+       setAttr("piece2_2","class","normal");
+       setAttr("piece2_3","class","normal");
+       setAttr("piece2_4","class","normal");
+       setAttr("piece2_5","class","normal");
+       setAttr("piece2_6","class","yellow_last");
+       setAttr("piece3_1","class","normal");
+       setAttr("piece3_2","class","normal");
+       setAttr("piece3_3","class","normal");
+       setAttr("piece3_4","class","normal");
+       setAttr("piece3_5","class","normal");
+       setAttr("piece3_6","class","normal");
+       setAttr("piece4_1","class","normal");
+       setAttr("piece4_2","class","normal");
+       setAttr("piece4_3","class","yellow");
+       setAttr("piece4_4","class","red");
+       setAttr("piece4_5","class","red");
+       setAttr("piece4_6","class","red");
+       setAttr("piece5_1","class","normal");
+       setAttr("piece5_2","class","normal");
+       setAttr("piece5_3","class","normal");
+       setAttr("piece5_4","class","red");
+       setAttr("piece5_5","class","yellow");
+       setAttr("piece5_6","class","yellow");
+       setAttr("piece6_1","class","normal");
+       setAttr("piece6_2","class","normal");
+       setAttr("piece6_3","class","normal");
+       setAttr("piece6_4","class","normal");
+       setAttr("piece6_5","class","normal");
+       setAttr("piece6_6","class","normal");
+       setAttr("piece7_1","class","normal");
+       setAttr("piece7_2","class","normal");
+       setAttr("piece7_3","class","normal");
+       setAttr("piece7_4","class","normal");
+       setAttr("piece7_5","class","normal");
+       setAttr("piece7_6","class","normal");
+       setAttr("nxt_piece","class","red");
+       setAttr("bVar_board","text","{(1|->1|->vide),(1|->2|->vide),(1|->3|->vide),(1|->4|->vide),(1|->5|->vide),(1|->6|->vide),(2|->1|->vide),(2|->2|->vide),(2|->3|->vide),(2|->4|->vide),(2|->5|->vide),(2|->6|->jaune),(3|->1|->vide),(3|->2|->vide),(3|->3|->vide),(3|->4|->vide),(3|->5|->vide),(3|->6|->vide),(4|->1|->vide),(4|->2|->vide),(4|->3|->jaune),(4|->4|->rouge),(4|->5|->rouge),(4|->6|->rouge),(5|->1|->vide),(5|->2|->vide),(5|->3|->vide),(5|->4|->rouge),(5|->5|->jaune),(5|->6|->jaune),(6|->1|->vide),(6|->2|->vide),(6|->3|->vide),(6|->4|->vide),(6|->5|->vide),(6|->6|->vide),(7|->1|->vide),(7|->2|->vide),(7|->3|->vide),(7|->4|->vide),(7|->5|->vide),(7|->6|->vide)}");
+       setAttr("bVar_joueur","text","rouge");
+       setAttr("bVar_lastpos","text","(2|->6)");
+       highlightRow(stepNr);
+     }
+   function visualise59(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/23, State ID: 59");
+       setAttr("piece1_1","class","normal");
+       setAttr("piece1_2","class","normal");
+       setAttr("piece1_3","class","normal");
+       setAttr("piece1_4","class","normal");
+       setAttr("piece1_5","class","normal");
+       setAttr("piece1_6","class","normal");
+       setAttr("piece2_1","class","normal");
+       setAttr("piece2_2","class","normal");
+       setAttr("piece2_3","class","normal");
+       setAttr("piece2_4","class","normal");
+       setAttr("piece2_5","class","red_last");
+       setAttr("piece2_6","class","yellow");
+       setAttr("piece3_1","class","normal");
+       setAttr("piece3_2","class","normal");
+       setAttr("piece3_3","class","normal");
+       setAttr("piece3_4","class","normal");
+       setAttr("piece3_5","class","normal");
+       setAttr("piece3_6","class","normal");
+       setAttr("piece4_1","class","normal");
+       setAttr("piece4_2","class","normal");
+       setAttr("piece4_3","class","yellow");
+       setAttr("piece4_4","class","red");
+       setAttr("piece4_5","class","red");
+       setAttr("piece4_6","class","red");
+       setAttr("piece5_1","class","normal");
+       setAttr("piece5_2","class","normal");
+       setAttr("piece5_3","class","normal");
+       setAttr("piece5_4","class","red");
+       setAttr("piece5_5","class","yellow");
+       setAttr("piece5_6","class","yellow");
+       setAttr("piece6_1","class","normal");
+       setAttr("piece6_2","class","normal");
+       setAttr("piece6_3","class","normal");
+       setAttr("piece6_4","class","normal");
+       setAttr("piece6_5","class","normal");
+       setAttr("piece6_6","class","normal");
+       setAttr("piece7_1","class","normal");
+       setAttr("piece7_2","class","normal");
+       setAttr("piece7_3","class","normal");
+       setAttr("piece7_4","class","normal");
+       setAttr("piece7_5","class","normal");
+       setAttr("piece7_6","class","normal");
+       setAttr("nxt_piece","class","yellow");
+       setAttr("bVar_board","text","{(1|->1|->vide),(1|->2|->vide),(1|->3|->vide),(1|->4|->vide),(1|->5|->vide),(1|->6|->vide),(2|->1|->vide),(2|->2|->vide),(2|->3|->vide),(2|->4|->vide),(2|->5|->rouge),(2|->6|->jaune),(3|->1|->vide),(3|->2|->vide),(3|->3|->vide),(3|->4|->vide),(3|->5|->vide),(3|->6|->vide),(4|->1|->vide),(4|->2|->vide),(4|->3|->jaune),(4|->4|->rouge),(4|->5|->rouge),(4|->6|->rouge),(5|->1|->vide),(5|->2|->vide),(5|->3|->vide),(5|->4|->rouge),(5|->5|->jaune),(5|->6|->jaune),(6|->1|->vide),(6|->2|->vide),(6|->3|->vide),(6|->4|->vide),(6|->5|->vide),(6|->6|->vide),(7|->1|->vide),(7|->2|->vide),(7|->3|->vide),(7|->4|->vide),(7|->5|->vide),(7|->6|->vide)}");
+       setAttr("bVar_joueur","text","jaune");
+       setAttr("bVar_lastpos","text","(2|->5)");
+       highlightRow(stepNr);
+     }
+   function visualise69(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/23, State ID: 69");
+       setAttr("piece1_1","class","normal");
+       setAttr("piece1_2","class","normal");
+       setAttr("piece1_3","class","normal");
+       setAttr("piece1_4","class","normal");
+       setAttr("piece1_5","class","normal");
+       setAttr("piece1_6","class","normal");
+       setAttr("piece2_1","class","normal");
+       setAttr("piece2_2","class","normal");
+       setAttr("piece2_3","class","normal");
+       setAttr("piece2_4","class","normal");
+       setAttr("piece2_5","class","red");
+       setAttr("piece2_6","class","yellow");
+       setAttr("piece3_1","class","normal");
+       setAttr("piece3_2","class","normal");
+       setAttr("piece3_3","class","normal");
+       setAttr("piece3_4","class","normal");
+       setAttr("piece3_5","class","normal");
+       setAttr("piece3_6","class","normal");
+       setAttr("piece4_1","class","normal");
+       setAttr("piece4_2","class","normal");
+       setAttr("piece4_3","class","yellow");
+       setAttr("piece4_4","class","red");
+       setAttr("piece4_5","class","red");
+       setAttr("piece4_6","class","red");
+       setAttr("piece5_1","class","normal");
+       setAttr("piece5_2","class","normal");
+       setAttr("piece5_3","class","yellow_last");
+       setAttr("piece5_4","class","red");
+       setAttr("piece5_5","class","yellow");
+       setAttr("piece5_6","class","yellow");
+       setAttr("piece6_1","class","normal");
+       setAttr("piece6_2","class","normal");
+       setAttr("piece6_3","class","normal");
+       setAttr("piece6_4","class","normal");
+       setAttr("piece6_5","class","normal");
+       setAttr("piece6_6","class","normal");
+       setAttr("piece7_1","class","normal");
+       setAttr("piece7_2","class","normal");
+       setAttr("piece7_3","class","normal");
+       setAttr("piece7_4","class","normal");
+       setAttr("piece7_5","class","normal");
+       setAttr("piece7_6","class","normal");
+       setAttr("nxt_piece","class","red");
+       setAttr("bVar_board","text","{(1|->1|->vide),(1|->2|->vide),(1|->3|->vide),(1|->4|->vide),(1|->5|->vide),(1|->6|->vide),(2|->1|->vide),(2|->2|->vide),(2|->3|->vide),(2|->4|->vide),(2|->5|->rouge),(2|->6|->jaune),(3|->1|->vide),(3|->2|->vide),(3|->3|->vide),(3|->4|->vide),(3|->5|->vide),(3|->6|->vide),(4|->1|->vide),(4|->2|->vide),(4|->3|->jaune),(4|->4|->rouge),(4|->5|->rouge),(4|->6|->rouge),(5|->1|->vide),(5|->2|->vide),(5|->3|->jaune),(5|->4|->rouge),(5|->5|->jaune),(5|->6|->jaune),(6|->1|->vide),(6|->2|->vide),(6|->3|->vide),(6|->4|->vide),(6|->5|->vide),(6|->6|->vide),(7|->1|->vide),(7|->2|->vide),(7|->3|->vide),(7|->4|->vide),(7|->5|->vide),(7|->6|->vide)}");
+       setAttr("bVar_joueur","text","rouge");
+       setAttr("bVar_lastpos","text","(5|->3)");
+       highlightRow(stepNr);
+     }
+   function visualise73(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/23, State ID: 73");
+       setAttr("piece1_1","class","normal");
+       setAttr("piece1_2","class","normal");
+       setAttr("piece1_3","class","normal");
+       setAttr("piece1_4","class","normal");
+       setAttr("piece1_5","class","normal");
+       setAttr("piece1_6","class","normal");
+       setAttr("piece2_1","class","normal");
+       setAttr("piece2_2","class","normal");
+       setAttr("piece2_3","class","normal");
+       setAttr("piece2_4","class","red_last");
+       setAttr("piece2_5","class","red");
+       setAttr("piece2_6","class","yellow");
+       setAttr("piece3_1","class","normal");
+       setAttr("piece3_2","class","normal");
+       setAttr("piece3_3","class","normal");
+       setAttr("piece3_4","class","normal");
+       setAttr("piece3_5","class","normal");
+       setAttr("piece3_6","class","normal");
+       setAttr("piece4_1","class","normal");
+       setAttr("piece4_2","class","normal");
+       setAttr("piece4_3","class","yellow");
+       setAttr("piece4_4","class","red");
+       setAttr("piece4_5","class","red");
+       setAttr("piece4_6","class","red");
+       setAttr("piece5_1","class","normal");
+       setAttr("piece5_2","class","normal");
+       setAttr("piece5_3","class","yellow");
+       setAttr("piece5_4","class","red");
+       setAttr("piece5_5","class","yellow");
+       setAttr("piece5_6","class","yellow");
+       setAttr("piece6_1","class","normal");
+       setAttr("piece6_2","class","normal");
+       setAttr("piece6_3","class","normal");
+       setAttr("piece6_4","class","normal");
+       setAttr("piece6_5","class","normal");
+       setAttr("piece6_6","class","normal");
+       setAttr("piece7_1","class","normal");
+       setAttr("piece7_2","class","normal");
+       setAttr("piece7_3","class","normal");
+       setAttr("piece7_4","class","normal");
+       setAttr("piece7_5","class","normal");
+       setAttr("piece7_6","class","normal");
+       setAttr("nxt_piece","class","yellow");
+       setAttr("bVar_board","text","{(1|->1|->vide),(1|->2|->vide),(1|->3|->vide),(1|->4|->vide),(1|->5|->vide),(1|->6|->vide),(2|->1|->vide),(2|->2|->vide),(2|->3|->vide),(2|->4|->rouge),(2|->5|->rouge),(2|->6|->jaune),(3|->1|->vide),(3|->2|->vide),(3|->3|->vide),(3|->4|->vide),(3|->5|->vide),(3|->6|->vide),(4|->1|->vide),(4|->2|->vide),(4|->3|->jaune),(4|->4|->rouge),(4|->5|->rouge),(4|->6|->rouge),(5|->1|->vide),(5|->2|->vide),(5|->3|->jaune),(5|->4|->rouge),(5|->5|->jaune),(5|->6|->jaune),(6|->1|->vide),(6|->2|->vide),(6|->3|->vide),(6|->4|->vide),(6|->5|->vide),(6|->6|->vide),(7|->1|->vide),(7|->2|->vide),(7|->3|->vide),(7|->4|->vide),(7|->5|->vide),(7|->6|->vide)}");
+       setAttr("bVar_joueur","text","jaune");
+       setAttr("bVar_lastpos","text","(2|->4)");
+       highlightRow(stepNr);
+     }
+   function visualise80(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/23, State ID: 80");
+       setAttr("piece1_1","class","normal");
+       setAttr("piece1_2","class","normal");
+       setAttr("piece1_3","class","normal");
+       setAttr("piece1_4","class","normal");
+       setAttr("piece1_5","class","normal");
+       setAttr("piece1_6","class","normal");
+       setAttr("piece2_1","class","normal");
+       setAttr("piece2_2","class","normal");
+       setAttr("piece2_3","class","yellow_last");
+       setAttr("piece2_4","class","red");
+       setAttr("piece2_5","class","red");
+       setAttr("piece2_6","class","yellow");
+       setAttr("piece3_1","class","normal");
+       setAttr("piece3_2","class","normal");
+       setAttr("piece3_3","class","normal");
+       setAttr("piece3_4","class","normal");
+       setAttr("piece3_5","class","normal");
+       setAttr("piece3_6","class","normal");
+       setAttr("piece4_1","class","normal");
+       setAttr("piece4_2","class","normal");
+       setAttr("piece4_3","class","yellow");
+       setAttr("piece4_4","class","red");
+       setAttr("piece4_5","class","red");
+       setAttr("piece4_6","class","red");
+       setAttr("piece5_1","class","normal");
+       setAttr("piece5_2","class","normal");
+       setAttr("piece5_3","class","yellow");
+       setAttr("piece5_4","class","red");
+       setAttr("piece5_5","class","yellow");
+       setAttr("piece5_6","class","yellow");
+       setAttr("piece6_1","class","normal");
+       setAttr("piece6_2","class","normal");
+       setAttr("piece6_3","class","normal");
+       setAttr("piece6_4","class","normal");
+       setAttr("piece6_5","class","normal");
+       setAttr("piece6_6","class","normal");
+       setAttr("piece7_1","class","normal");
+       setAttr("piece7_2","class","normal");
+       setAttr("piece7_3","class","normal");
+       setAttr("piece7_4","class","normal");
+       setAttr("piece7_5","class","normal");
+       setAttr("piece7_6","class","normal");
+       setAttr("nxt_piece","class","red");
+       setAttr("bVar_board","text","{(1|->1|->vide),(1|->2|->vide),(1|->3|->vide),(1|->4|->vide),(1|->5|->vide),(1|->6|->vide),(2|->1|->vide),(2|->2|->vide),(2|->3|->jaune),(2|->4|->rouge),(2|->5|->rouge),(2|->6|->jaune),(3|->1|->vide),(3|->2|->vide),(3|->3|->vide),(3|->4|->vide),(3|->5|->vide),(3|->6|->vide),(4|->1|->vide),(4|->2|->vide),(4|->3|->jaune),(4|->4|->rouge),(4|->5|->rouge),(4|->6|->rouge),(5|->1|->vide),(5|->2|->vide),(5|->3|->jaune),(5|->4|->rouge),(5|->5|->jaune),(5|->6|->jaune),(6|->1|->vide),(6|->2|->vide),(6|->3|->vide),(6|->4|->vide),(6|->5|->vide),(6|->6|->vide),(7|->1|->vide),(7|->2|->vide),(7|->3|->vide),(7|->4|->vide),(7|->5|->vide),(7|->6|->vide)}");
+       setAttr("bVar_joueur","text","rouge");
+       setAttr("bVar_lastpos","text","(2|->3)");
+       highlightRow(stepNr);
+     }
+   function visualise89(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/23, State ID: 89");
+       setAttr("piece1_1","class","normal");
+       setAttr("piece1_2","class","normal");
+       setAttr("piece1_3","class","normal");
+       setAttr("piece1_4","class","normal");
+       setAttr("piece1_5","class","normal");
+       setAttr("piece1_6","class","normal");
+       setAttr("piece2_1","class","normal");
+       setAttr("piece2_2","class","normal");
+       setAttr("piece2_3","class","yellow");
+       setAttr("piece2_4","class","red");
+       setAttr("piece2_5","class","red");
+       setAttr("piece2_6","class","yellow");
+       setAttr("piece3_1","class","normal");
+       setAttr("piece3_2","class","normal");
+       setAttr("piece3_3","class","normal");
+       setAttr("piece3_4","class","normal");
+       setAttr("piece3_5","class","normal");
+       setAttr("piece3_6","class","normal");
+       setAttr("piece4_1","class","normal");
+       setAttr("piece4_2","class","red_last");
+       setAttr("piece4_3","class","yellow");
+       setAttr("piece4_4","class","red");
+       setAttr("piece4_5","class","red");
+       setAttr("piece4_6","class","red");
+       setAttr("piece5_1","class","normal");
+       setAttr("piece5_2","class","normal");
+       setAttr("piece5_3","class","yellow");
+       setAttr("piece5_4","class","red");
+       setAttr("piece5_5","class","yellow");
+       setAttr("piece5_6","class","yellow");
+       setAttr("piece6_1","class","normal");
+       setAttr("piece6_2","class","normal");
+       setAttr("piece6_3","class","normal");
+       setAttr("piece6_4","class","normal");
+       setAttr("piece6_5","class","normal");
+       setAttr("piece6_6","class","normal");
+       setAttr("piece7_1","class","normal");
+       setAttr("piece7_2","class","normal");
+       setAttr("piece7_3","class","normal");
+       setAttr("piece7_4","class","normal");
+       setAttr("piece7_5","class","normal");
+       setAttr("piece7_6","class","normal");
+       setAttr("nxt_piece","class","yellow");
+       setAttr("bVar_board","text","{(1|->1|->vide),(1|->2|->vide),(1|->3|->vide),(1|->4|->vide),(1|->5|->vide),(1|->6|->vide),(2|->1|->vide),(2|->2|->vide),(2|->3|->jaune),(2|->4|->rouge),(2|->5|->rouge),(2|->6|->jaune),(3|->1|->vide),(3|->2|->vide),(3|->3|->vide),(3|->4|->vide),(3|->5|->vide),(3|->6|->vide),(4|->1|->vide),(4|->2|->rouge),(4|->3|->jaune),(4|->4|->rouge),(4|->5|->rouge),(4|->6|->rouge),(5|->1|->vide),(5|->2|->vide),(5|->3|->jaune),(5|->4|->rouge),(5|->5|->jaune),(5|->6|->jaune),(6|->1|->vide),(6|->2|->vide),(6|->3|->vide),(6|->4|->vide),(6|->5|->vide),(6|->6|->vide),(7|->1|->vide),(7|->2|->vide),(7|->3|->vide),(7|->4|->vide),(7|->5|->vide),(7|->6|->vide)}");
+       setAttr("bVar_joueur","text","jaune");
+       setAttr("bVar_lastpos","text","(4|->2)");
+       highlightRow(stepNr);
+     }
+   function visualise99(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/23, State ID: 99");
+       setAttr("piece1_1","class","normal");
+       setAttr("piece1_2","class","normal");
+       setAttr("piece1_3","class","normal");
+       setAttr("piece1_4","class","normal");
+       setAttr("piece1_5","class","normal");
+       setAttr("piece1_6","class","normal");
+       setAttr("piece2_1","class","normal");
+       setAttr("piece2_2","class","normal");
+       setAttr("piece2_3","class","yellow");
+       setAttr("piece2_4","class","red");
+       setAttr("piece2_5","class","red");
+       setAttr("piece2_6","class","yellow");
+       setAttr("piece3_1","class","normal");
+       setAttr("piece3_2","class","normal");
+       setAttr("piece3_3","class","normal");
+       setAttr("piece3_4","class","normal");
+       setAttr("piece3_5","class","normal");
+       setAttr("piece3_6","class","normal");
+       setAttr("piece4_1","class","normal");
+       setAttr("piece4_2","class","red");
+       setAttr("piece4_3","class","yellow");
+       setAttr("piece4_4","class","red");
+       setAttr("piece4_5","class","red");
+       setAttr("piece4_6","class","red");
+       setAttr("piece5_1","class","normal");
+       setAttr("piece5_2","class","normal");
+       setAttr("piece5_3","class","yellow");
+       setAttr("piece5_4","class","red");
+       setAttr("piece5_5","class","yellow");
+       setAttr("piece5_6","class","yellow");
+       setAttr("piece6_1","class","normal");
+       setAttr("piece6_2","class","normal");
+       setAttr("piece6_3","class","normal");
+       setAttr("piece6_4","class","normal");
+       setAttr("piece6_5","class","normal");
+       setAttr("piece6_6","class","normal");
+       setAttr("piece7_1","class","normal");
+       setAttr("piece7_2","class","normal");
+       setAttr("piece7_3","class","normal");
+       setAttr("piece7_4","class","normal");
+       setAttr("piece7_5","class","normal");
+       setAttr("piece7_6","class","yellow_last");
+       setAttr("nxt_piece","class","red");
+       setAttr("bVar_board","text","{(1|->1|->vide),(1|->2|->vide),(1|->3|->vide),(1|->4|->vide),(1|->5|->vide),(1|->6|->vide),(2|->1|->vide),(2|->2|->vide),(2|->3|->jaune),(2|->4|->rouge),(2|->5|->rouge),(2|->6|->jaune),(3|->1|->vide),(3|->2|->vide),(3|->3|->vide),(3|->4|->vide),(3|->5|->vide),(3|->6|->vide),(4|->1|->vide),(4|->2|->rouge),(4|->3|->jaune),(4|->4|->rouge),(4|->5|->rouge),(4|->6|->rouge),(5|->1|->vide),(5|->2|->vide),(5|->3|->jaune),(5|->4|->rouge),(5|->5|->jaune),(5|->6|->jaune),(6|->1|->vide),(6|->2|->vide),(6|->3|->vide),(6|->4|->vide),(6|->5|->vide),(6|->6|->vide),(7|->1|->vide),(7|->2|->vide),(7|->3|->vide),(7|->4|->vide),(7|->5|->vide),(7|->6|->jaune)}");
+       setAttr("bVar_joueur","text","rouge");
+       setAttr("bVar_lastpos","text","(7|->6)");
+       highlightRow(stepNr);
+     }
+   function visualise103(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/23, State ID: 103");
+       setAttr("piece1_1","class","normal");
+       setAttr("piece1_2","class","normal");
+       setAttr("piece1_3","class","normal");
+       setAttr("piece1_4","class","normal");
+       setAttr("piece1_5","class","normal");
+       setAttr("piece1_6","class","normal");
+       setAttr("piece2_1","class","normal");
+       setAttr("piece2_2","class","normal");
+       setAttr("piece2_3","class","yellow");
+       setAttr("piece2_4","class","red");
+       setAttr("piece2_5","class","red");
+       setAttr("piece2_6","class","yellow");
+       setAttr("piece3_1","class","normal");
+       setAttr("piece3_2","class","normal");
+       setAttr("piece3_3","class","normal");
+       setAttr("piece3_4","class","normal");
+       setAttr("piece3_5","class","normal");
+       setAttr("piece3_6","class","normal");
+       setAttr("piece4_1","class","red_last");
+       setAttr("piece4_2","class","red");
+       setAttr("piece4_3","class","yellow");
+       setAttr("piece4_4","class","red");
+       setAttr("piece4_5","class","red");
+       setAttr("piece4_6","class","red");
+       setAttr("piece5_1","class","normal");
+       setAttr("piece5_2","class","normal");
+       setAttr("piece5_3","class","yellow");
+       setAttr("piece5_4","class","red");
+       setAttr("piece5_5","class","yellow");
+       setAttr("piece5_6","class","yellow");
+       setAttr("piece6_1","class","normal");
+       setAttr("piece6_2","class","normal");
+       setAttr("piece6_3","class","normal");
+       setAttr("piece6_4","class","normal");
+       setAttr("piece6_5","class","normal");
+       setAttr("piece6_6","class","normal");
+       setAttr("piece7_1","class","normal");
+       setAttr("piece7_2","class","normal");
+       setAttr("piece7_3","class","normal");
+       setAttr("piece7_4","class","normal");
+       setAttr("piece7_5","class","normal");
+       setAttr("piece7_6","class","yellow");
+       setAttr("nxt_piece","class","yellow");
+       setAttr("bVar_board","text","{(1|->1|->vide),(1|->2|->vide),(1|->3|->vide),(1|->4|->vide),(1|->5|->vide),(1|->6|->vide),(2|->1|->vide),(2|->2|->vide),(2|->3|->jaune),(2|->4|->rouge),(2|->5|->rouge),(2|->6|->jaune),(3|->1|->vide),(3|->2|->vide),(3|->3|->vide),(3|->4|->vide),(3|->5|->vide),(3|->6|->vide),(4|->1|->rouge),(4|->2|->rouge),(4|->3|->jaune),(4|->4|->rouge),(4|->5|->rouge),(4|->6|->rouge),(5|->1|->vide),(5|->2|->vide),(5|->3|->jaune),(5|->4|->rouge),(5|->5|->jaune),(5|->6|->jaune),(6|->1|->vide),(6|->2|->vide),(6|->3|->vide),(6|->4|->vide),(6|->5|->vide),(6|->6|->vide),(7|->1|->vide),(7|->2|->vide),(7|->3|->vide),(7|->4|->vide),(7|->5|->vide),(7|->6|->jaune)}");
+       setAttr("bVar_joueur","text","jaune");
+       setAttr("bVar_lastpos","text","(4|->1)");
+       highlightRow(stepNr);
+     }
+   function visualise107(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/23, State ID: 107");
+       setAttr("piece1_1","class","normal");
+       setAttr("piece1_2","class","normal");
+       setAttr("piece1_3","class","normal");
+       setAttr("piece1_4","class","normal");
+       setAttr("piece1_5","class","normal");
+       setAttr("piece1_6","class","yellow_last");
+       setAttr("piece2_1","class","normal");
+       setAttr("piece2_2","class","normal");
+       setAttr("piece2_3","class","yellow");
+       setAttr("piece2_4","class","red");
+       setAttr("piece2_5","class","red");
+       setAttr("piece2_6","class","yellow");
+       setAttr("piece3_1","class","normal");
+       setAttr("piece3_2","class","normal");
+       setAttr("piece3_3","class","normal");
+       setAttr("piece3_4","class","normal");
+       setAttr("piece3_5","class","normal");
+       setAttr("piece3_6","class","normal");
+       setAttr("piece4_1","class","red");
+       setAttr("piece4_2","class","red");
+       setAttr("piece4_3","class","yellow");
+       setAttr("piece4_4","class","red");
+       setAttr("piece4_5","class","red");
+       setAttr("piece4_6","class","red");
+       setAttr("piece5_1","class","normal");
+       setAttr("piece5_2","class","normal");
+       setAttr("piece5_3","class","yellow");
+       setAttr("piece5_4","class","red");
+       setAttr("piece5_5","class","yellow");
+       setAttr("piece5_6","class","yellow");
+       setAttr("piece6_1","class","normal");
+       setAttr("piece6_2","class","normal");
+       setAttr("piece6_3","class","normal");
+       setAttr("piece6_4","class","normal");
+       setAttr("piece6_5","class","normal");
+       setAttr("piece6_6","class","normal");
+       setAttr("piece7_1","class","normal");
+       setAttr("piece7_2","class","normal");
+       setAttr("piece7_3","class","normal");
+       setAttr("piece7_4","class","normal");
+       setAttr("piece7_5","class","normal");
+       setAttr("piece7_6","class","yellow");
+       setAttr("nxt_piece","class","red");
+       setAttr("bVar_board","text","{(1|->1|->vide),(1|->2|->vide),(1|->3|->vide),(1|->4|->vide),(1|->5|->vide),(1|->6|->jaune),(2|->1|->vide),(2|->2|->vide),(2|->3|->jaune),(2|->4|->rouge),(2|->5|->rouge),(2|->6|->jaune),(3|->1|->vide),(3|->2|->vide),(3|->3|->vide),(3|->4|->vide),(3|->5|->vide),(3|->6|->vide),(4|->1|->rouge),(4|->2|->rouge),(4|->3|->jaune),(4|->4|->rouge),(4|->5|->rouge),(4|->6|->rouge),(5|->1|->vide),(5|->2|->vide),(5|->3|->jaune),(5|->4|->rouge),(5|->5|->jaune),(5|->6|->jaune),(6|->1|->vide),(6|->2|->vide),(6|->3|->vide),(6|->4|->vide),(6|->5|->vide),(6|->6|->vide),(7|->1|->vide),(7|->2|->vide),(7|->3|->vide),(7|->4|->vide),(7|->5|->vide),(7|->6|->jaune)}");
+       setAttr("bVar_joueur","text","rouge");
+       setAttr("bVar_lastpos","text","(1|->6)");
+       highlightRow(stepNr);
+     }
+   function visualise113(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/23, State ID: 113");
+       setAttr("piece1_1","class","normal");
+       setAttr("piece1_2","class","normal");
+       setAttr("piece1_3","class","normal");
+       setAttr("piece1_4","class","normal");
+       setAttr("piece1_5","class","red_last");
+       setAttr("piece1_6","class","yellow");
+       setAttr("piece2_1","class","normal");
+       setAttr("piece2_2","class","normal");
+       setAttr("piece2_3","class","yellow");
+       setAttr("piece2_4","class","red");
+       setAttr("piece2_5","class","red");
+       setAttr("piece2_6","class","yellow");
+       setAttr("piece3_1","class","normal");
+       setAttr("piece3_2","class","normal");
+       setAttr("piece3_3","class","normal");
+       setAttr("piece3_4","class","normal");
+       setAttr("piece3_5","class","normal");
+       setAttr("piece3_6","class","normal");
+       setAttr("piece4_1","class","red");
+       setAttr("piece4_2","class","red");
+       setAttr("piece4_3","class","yellow");
+       setAttr("piece4_4","class","red");
+       setAttr("piece4_5","class","red");
+       setAttr("piece4_6","class","red");
+       setAttr("piece5_1","class","normal");
+       setAttr("piece5_2","class","normal");
+       setAttr("piece5_3","class","yellow");
+       setAttr("piece5_4","class","red");
+       setAttr("piece5_5","class","yellow");
+       setAttr("piece5_6","class","yellow");
+       setAttr("piece6_1","class","normal");
+       setAttr("piece6_2","class","normal");
+       setAttr("piece6_3","class","normal");
+       setAttr("piece6_4","class","normal");
+       setAttr("piece6_5","class","normal");
+       setAttr("piece6_6","class","normal");
+       setAttr("piece7_1","class","normal");
+       setAttr("piece7_2","class","normal");
+       setAttr("piece7_3","class","normal");
+       setAttr("piece7_4","class","normal");
+       setAttr("piece7_5","class","normal");
+       setAttr("piece7_6","class","yellow");
+       setAttr("nxt_piece","class","yellow");
+       setAttr("bVar_board","text","{(1|->1|->vide),(1|->2|->vide),(1|->3|->vide),(1|->4|->vide),(1|->5|->rouge),(1|->6|->jaune),(2|->1|->vide),(2|->2|->vide),(2|->3|->jaune),(2|->4|->rouge),(2|->5|->rouge),(2|->6|->jaune),(3|->1|->vide),(3|->2|->vide),(3|->3|->vide),(3|->4|->vide),(3|->5|->vide),(3|->6|->vide),(4|->1|->rouge),(4|->2|->rouge),(4|->3|->jaune),(4|->4|->rouge),(4|->5|->rouge),(4|->6|->rouge),(5|->1|->vide),(5|->2|->vide),(5|->3|->jaune),(5|->4|->rouge),(5|->5|->jaune),(5|->6|->jaune),(6|->1|->vide),(6|->2|->vide),(6|->3|->vide),(6|->4|->vide),(6|->5|->vide),(6|->6|->vide),(7|->1|->vide),(7|->2|->vide),(7|->3|->vide),(7|->4|->vide),(7|->5|->vide),(7|->6|->jaune)}");
+       setAttr("bVar_joueur","text","jaune");
+       setAttr("bVar_lastpos","text","(1|->5)");
+       highlightRow(stepNr);
+     }
+   function visualise119(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/23, State ID: 119");
+       setAttr("piece1_1","class","normal");
+       setAttr("piece1_2","class","normal");
+       setAttr("piece1_3","class","normal");
+       setAttr("piece1_4","class","yellow_last");
+       setAttr("piece1_5","class","red");
+       setAttr("piece1_6","class","yellow");
+       setAttr("piece2_1","class","normal");
+       setAttr("piece2_2","class","normal");
+       setAttr("piece2_3","class","yellow");
+       setAttr("piece2_4","class","red");
+       setAttr("piece2_5","class","red");
+       setAttr("piece2_6","class","yellow");
+       setAttr("piece3_1","class","normal");
+       setAttr("piece3_2","class","normal");
+       setAttr("piece3_3","class","normal");
+       setAttr("piece3_4","class","normal");
+       setAttr("piece3_5","class","normal");
+       setAttr("piece3_6","class","normal");
+       setAttr("piece4_1","class","red");
+       setAttr("piece4_2","class","red");
+       setAttr("piece4_3","class","yellow");
+       setAttr("piece4_4","class","red");
+       setAttr("piece4_5","class","red");
+       setAttr("piece4_6","class","red");
+       setAttr("piece5_1","class","normal");
+       setAttr("piece5_2","class","normal");
+       setAttr("piece5_3","class","yellow");
+       setAttr("piece5_4","class","red");
+       setAttr("piece5_5","class","yellow");
+       setAttr("piece5_6","class","yellow");
+       setAttr("piece6_1","class","normal");
+       setAttr("piece6_2","class","normal");
+       setAttr("piece6_3","class","normal");
+       setAttr("piece6_4","class","normal");
+       setAttr("piece6_5","class","normal");
+       setAttr("piece6_6","class","normal");
+       setAttr("piece7_1","class","normal");
+       setAttr("piece7_2","class","normal");
+       setAttr("piece7_3","class","normal");
+       setAttr("piece7_4","class","normal");
+       setAttr("piece7_5","class","normal");
+       setAttr("piece7_6","class","yellow");
+       setAttr("nxt_piece","class","red");
+       setAttr("bVar_board","text","{(1|->1|->vide),(1|->2|->vide),(1|->3|->vide),(1|->4|->jaune),(1|->5|->rouge),(1|->6|->jaune),(2|->1|->vide),(2|->2|->vide),(2|->3|->jaune),(2|->4|->rouge),(2|->5|->rouge),(2|->6|->jaune),(3|->1|->vide),(3|->2|->vide),(3|->3|->vide),(3|->4|->vide),(3|->5|->vide),(3|->6|->vide),(4|->1|->rouge),(4|->2|->rouge),(4|->3|->jaune),(4|->4|->rouge),(4|->5|->rouge),(4|->6|->rouge),(5|->1|->vide),(5|->2|->vide),(5|->3|->jaune),(5|->4|->rouge),(5|->5|->jaune),(5|->6|->jaune),(6|->1|->vide),(6|->2|->vide),(6|->3|->vide),(6|->4|->vide),(6|->5|->vide),(6|->6|->vide),(7|->1|->vide),(7|->2|->vide),(7|->3|->vide),(7|->4|->vide),(7|->5|->vide),(7|->6|->jaune)}");
+       setAttr("bVar_joueur","text","rouge");
+       setAttr("bVar_lastpos","text","(1|->4)");
+       highlightRow(stepNr);
+     }
+   function visualise127(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/23, State ID: 127");
+       setAttr("piece1_1","class","normal");
+       setAttr("piece1_2","class","normal");
+       setAttr("piece1_3","class","normal");
+       setAttr("piece1_4","class","yellow");
+       setAttr("piece1_5","class","red");
+       setAttr("piece1_6","class","yellow");
+       setAttr("piece2_1","class","normal");
+       setAttr("piece2_2","class","normal");
+       setAttr("piece2_3","class","yellow");
+       setAttr("piece2_4","class","red");
+       setAttr("piece2_5","class","red");
+       setAttr("piece2_6","class","yellow");
+       setAttr("piece3_1","class","normal");
+       setAttr("piece3_2","class","normal");
+       setAttr("piece3_3","class","normal");
+       setAttr("piece3_4","class","normal");
+       setAttr("piece3_5","class","normal");
+       setAttr("piece3_6","class","red_last");
+       setAttr("piece4_1","class","red");
+       setAttr("piece4_2","class","red");
+       setAttr("piece4_3","class","yellow");
+       setAttr("piece4_4","class","red");
+       setAttr("piece4_5","class","red");
+       setAttr("piece4_6","class","red");
+       setAttr("piece5_1","class","normal");
+       setAttr("piece5_2","class","normal");
+       setAttr("piece5_3","class","yellow");
+       setAttr("piece5_4","class","red");
+       setAttr("piece5_5","class","yellow");
+       setAttr("piece5_6","class","yellow");
+       setAttr("piece6_1","class","normal");
+       setAttr("piece6_2","class","normal");
+       setAttr("piece6_3","class","normal");
+       setAttr("piece6_4","class","normal");
+       setAttr("piece6_5","class","normal");
+       setAttr("piece6_6","class","normal");
+       setAttr("piece7_1","class","normal");
+       setAttr("piece7_2","class","normal");
+       setAttr("piece7_3","class","normal");
+       setAttr("piece7_4","class","normal");
+       setAttr("piece7_5","class","normal");
+       setAttr("piece7_6","class","yellow");
+       setAttr("nxt_piece","class","yellow");
+       setAttr("bVar_board","text","{(1|->1|->vide),(1|->2|->vide),(1|->3|->vide),(1|->4|->jaune),(1|->5|->rouge),(1|->6|->jaune),(2|->1|->vide),(2|->2|->vide),(2|->3|->jaune),(2|->4|->rouge),(2|->5|->rouge),(2|->6|->jaune),(3|->1|->vide),(3|->2|->vide),(3|->3|->vide),(3|->4|->vide),(3|->5|->vide),(3|->6|->rouge),(4|->1|->rouge),(4|->2|->rouge),(4|->3|->jaune),(4|->4|->rouge),(4|->5|->rouge),(4|->6|->rouge),(5|->1|->vide),(5|->2|->vide),(5|->3|->jaune),(5|->4|->rouge),(5|->5|->jaune),(5|->6|->jaune),(6|->1|->vide),(6|->2|->vide),(6|->3|->vide),(6|->4|->vide),(6|->5|->vide),(6|->6|->vide),(7|->1|->vide),(7|->2|->vide),(7|->3|->vide),(7|->4|->vide),(7|->5|->vide),(7|->6|->jaune)}");
+       setAttr("bVar_joueur","text","jaune");
+       setAttr("bVar_lastpos","text","(3|->6)");
+       highlightRow(stepNr);
+     }
+   function visualise132(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/23, State ID: 132");
+       setAttr("piece1_1","class","normal");
+       setAttr("piece1_2","class","normal");
+       setAttr("piece1_3","class","normal");
+       setAttr("piece1_4","class","yellow");
+       setAttr("piece1_5","class","red");
+       setAttr("piece1_6","class","yellow");
+       setAttr("piece2_1","class","normal");
+       setAttr("piece2_2","class","yellow_last");
+       setAttr("piece2_3","class","yellow");
+       setAttr("piece2_4","class","red");
+       setAttr("piece2_5","class","red");
+       setAttr("piece2_6","class","yellow");
+       setAttr("piece3_1","class","normal");
+       setAttr("piece3_2","class","normal");
+       setAttr("piece3_3","class","normal");
+       setAttr("piece3_4","class","normal");
+       setAttr("piece3_5","class","normal");
+       setAttr("piece3_6","class","red");
+       setAttr("piece4_1","class","red");
+       setAttr("piece4_2","class","red");
+       setAttr("piece4_3","class","yellow");
+       setAttr("piece4_4","class","red");
+       setAttr("piece4_5","class","red");
+       setAttr("piece4_6","class","red");
+       setAttr("piece5_1","class","normal");
+       setAttr("piece5_2","class","normal");
+       setAttr("piece5_3","class","yellow");
+       setAttr("piece5_4","class","red");
+       setAttr("piece5_5","class","yellow");
+       setAttr("piece5_6","class","yellow");
+       setAttr("piece6_1","class","normal");
+       setAttr("piece6_2","class","normal");
+       setAttr("piece6_3","class","normal");
+       setAttr("piece6_4","class","normal");
+       setAttr("piece6_5","class","normal");
+       setAttr("piece6_6","class","normal");
+       setAttr("piece7_1","class","normal");
+       setAttr("piece7_2","class","normal");
+       setAttr("piece7_3","class","normal");
+       setAttr("piece7_4","class","normal");
+       setAttr("piece7_5","class","normal");
+       setAttr("piece7_6","class","yellow");
+       setAttr("nxt_piece","class","red");
+       setAttr("bVar_board","text","{(1|->1|->vide),(1|->2|->vide),(1|->3|->vide),(1|->4|->jaune),(1|->5|->rouge),(1|->6|->jaune),(2|->1|->vide),(2|->2|->jaune),(2|->3|->jaune),(2|->4|->rouge),(2|->5|->rouge),(2|->6|->jaune),(3|->1|->vide),(3|->2|->vide),(3|->3|->vide),(3|->4|->vide),(3|->5|->vide),(3|->6|->rouge),(4|->1|->rouge),(4|->2|->rouge),(4|->3|->jaune),(4|->4|->rouge),(4|->5|->rouge),(4|->6|->rouge),(5|->1|->vide),(5|->2|->vide),(5|->3|->jaune),(5|->4|->rouge),(5|->5|->jaune),(5|->6|->jaune),(6|->1|->vide),(6|->2|->vide),(6|->3|->vide),(6|->4|->vide),(6|->5|->vide),(6|->6|->vide),(7|->1|->vide),(7|->2|->vide),(7|->3|->vide),(7|->4|->vide),(7|->5|->vide),(7|->6|->jaune)}");
+       setAttr("bVar_joueur","text","rouge");
+       setAttr("bVar_lastpos","text","(2|->2)");
+       highlightRow(stepNr);
+     }
+   function visualise139(stepNr) {
+       setAttr("trace_meter","value",stepNr);
+       setAttr("visb_debug_messages","text","Step "+stepNr+"/23, State ID: 139");
+       setAttr("piece1_1","class","normal");
+       setAttr("piece1_2","class","normal");
+       setAttr("piece1_3","class","normal");
+       setAttr("piece1_4","class","yellow");
+       setAttr("piece1_5","class","red");
+       setAttr("piece1_6","class","yellow");
+       setAttr("piece2_1","class","normal");
+       setAttr("piece2_2","class","yellow");
+       setAttr("piece2_3","class","yellow");
+       setAttr("piece2_4","class","red");
+       setAttr("piece2_5","class","red");
+       setAttr("piece2_6","class","yellow");
+       setAttr("piece3_1","class","normal");
+       setAttr("piece3_2","class","normal");
+       setAttr("piece3_3","class","normal");
+       setAttr("piece3_4","class","normal");
+       setAttr("piece3_5","class","red_last");
+       setAttr("piece3_6","class","red");
+       setAttr("piece4_1","class","red");
+       setAttr("piece4_2","class","red");
+       setAttr("piece4_3","class","yellow");
+       setAttr("piece4_4","class","red");
+       setAttr("piece4_5","class","red");
+       setAttr("piece4_6","class","red");
+       setAttr("piece5_1","class","normal");
+       setAttr("piece5_2","class","normal");
+       setAttr("piece5_3","class","yellow");
+       setAttr("piece5_4","class","red");
+       setAttr("piece5_5","class","yellow");
+       setAttr("piece5_6","class","yellow");
+       setAttr("piece6_1","class","normal");
+       setAttr("piece6_2","class","normal");
+       setAttr("piece6_3","class","normal");
+       setAttr("piece6_4","class","normal");
+       setAttr("piece6_5","class","normal");
+       setAttr("piece6_6","class","normal");
+       setAttr("piece7_1","class","normal");
+       setAttr("piece7_2","class","normal");
+       setAttr("piece7_3","class","normal");
+       setAttr("piece7_4","class","normal");
+       setAttr("piece7_5","class","normal");
+       setAttr("piece7_6","class","yellow");
+       setAttr("nxt_piece","class","yellow");
+       setAttr("bVar_board","text","{(1|->1|->vide),(1|->2|->vide),(1|->3|->vide),(1|->4|->jaune),(1|->5|->rouge),(1|->6|->jaune),(2|->1|->vide),(2|->2|->jaune),(2|->3|->jaune),(2|->4|->rouge),(2|->5|->rouge),(2|->6|->jaune),(3|->1|->vide),(3|->2|->vide),(3|->3|->vide),(3|->4|->vide),(3|->5|->rouge),(3|->6|->rouge),(4|->1|->rouge),(4|->2|->rouge),(4|->3|->jaune),(4|->4|->rouge),(4|->5|->rouge),(4|->6|->rouge),(5|->1|->vide),(5|->2|->vide),(5|->3|->jaune),(5|->4|->rouge),(5|->5|->jaune),(5|->6|->jaune),(6|->1|->vide),(6|->2|->vide),(6|->3|->vide),(6|->4|->vide),(6|->5|->vide),(6|->6|->vide),(7|->1|->vide),(7|->2|->vide),(7|->3|->vide),(7|->4|->vide),(7|->5|->vide),(7|->6|->jaune)}");
+       setAttr("bVar_joueur","text","jaune");
+       setAttr("bVar_lastpos","text","(3|->5)");
+       highlightRow(stepNr);
+     }
+   async function runAll(delay) {
+   visualise0(1);
+   setAttr("visb_debug_messages","text","Step: 1/23,  State ID: 0,  Event: SETUP_CONSTANTS(count=/*@symbolic*/ %(x,y,c,b,dx,dy).(x : INTEGER & y : INTEGER & c : Couleurs & b : POW(INTEGER * INTEG...");
+   await sleep(delay);
+   visualise1(2);
+   setAttr("visb_debug_messages","text","Step: 2/23,  State ID: 1,  Event: INITIALISATION(joueur=rouge)");
+   await sleep(delay);
+   visualise5(3);
+   setAttr("visb_debug_messages","text","Step: 3/23,  State ID: 5,  Event: joue(4)");
+   await sleep(delay);
+   visualise13(4);
+   setAttr("visb_debug_messages","text","Step: 4/23,  State ID: 13,  Event: joue(5)");
+   await sleep(delay);
+   visualise19(5);
+   setAttr("visb_debug_messages","text","Step: 5/23,  State ID: 19,  Event: joue(4)");
+   await sleep(delay);
+   visualise27(6);
+   setAttr("visb_debug_messages","text","Step: 6/23,  State ID: 27,  Event: joue(5)");
+   await sleep(delay);
+   visualise33(7);
+   setAttr("visb_debug_messages","text","Step: 7/23,  State ID: 33,  Event: joue(4)");
+   await sleep(delay);
+   visualise40(8);
+   setAttr("visb_debug_messages","text","Step: 8/23,  State ID: 40,  Event: joue(4)");
+   await sleep(delay);
+   visualise48(9);
+   setAttr("visb_debug_messages","text","Step: 9/23,  State ID: 48,  Event: joue(5)");
+   await sleep(delay);
+   visualise52(10);
+   setAttr("visb_debug_messages","text","Step: 10/23,  State ID: 52,  Event: joue(2)");
+   await sleep(delay);
+   visualise59(11);
+   setAttr("visb_debug_messages","text","Step: 11/23,  State ID: 59,  Event: joue(2)");
+   await sleep(delay);
+   visualise69(12);
+   setAttr("visb_debug_messages","text","Step: 12/23,  State ID: 69,  Event: joue(5)");
+   await sleep(delay);
+   visualise73(13);
+   setAttr("visb_debug_messages","text","Step: 13/23,  State ID: 73,  Event: joue(2)");
+   await sleep(delay);
+   visualise80(14);
+   setAttr("visb_debug_messages","text","Step: 14/23,  State ID: 80,  Event: joue(2)");
+   await sleep(delay);
+   visualise89(15);
+   setAttr("visb_debug_messages","text","Step: 15/23,  State ID: 89,  Event: joue(4)");
+   await sleep(delay);
+   visualise99(16);
+   setAttr("visb_debug_messages","text","Step: 16/23,  State ID: 99,  Event: joue(7)");
+   await sleep(delay);
+   visualise103(17);
+   setAttr("visb_debug_messages","text","Step: 17/23,  State ID: 103,  Event: joue(4)");
+   await sleep(delay);
+   visualise107(18);
+   setAttr("visb_debug_messages","text","Step: 18/23,  State ID: 107,  Event: joue(1)");
+   await sleep(delay);
+   visualise113(19);
+   setAttr("visb_debug_messages","text","Step: 19/23,  State ID: 113,  Event: joue(1)");
+   await sleep(delay);
+   visualise119(20);
+   setAttr("visb_debug_messages","text","Step: 20/23,  State ID: 119,  Event: joue(1)");
+   await sleep(delay);
+   visualise127(21);
+   setAttr("visb_debug_messages","text","Step: 21/23,  State ID: 127,  Event: joue(3)");
+   await sleep(delay);
+   visualise132(22);
+   setAttr("visb_debug_messages","text","Step: 22/23,  State ID: 132,  Event: joue(2)");
+   await sleep(delay);
+   visualise139(23);
+   setAttr("visb_debug_messages","text","Step: 23/23,  State ID: 139,  Event: joue(3)");
+   await sleep(delay);
+   }
+ </script>
+
+   <script>
+   function registerHovers() {
+     var obj;
+   obj = document.getElementById("grid1_1");
+   obj.onmouseover = function(ev){
+       setAttr("piece1_1","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece1_1","class","-hover")
+     };
+   obj = document.getElementById("grid1_2");
+   obj.onmouseover = function(ev){
+       setAttr("piece1_2","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece1_2","class","-hover")
+     };
+   obj = document.getElementById("grid1_3");
+   obj.onmouseover = function(ev){
+       setAttr("piece1_3","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece1_3","class","-hover")
+     };
+   obj = document.getElementById("grid1_4");
+   obj.onmouseover = function(ev){
+       setAttr("piece1_4","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece1_4","class","-hover")
+     };
+   obj = document.getElementById("grid1_5");
+   obj.onmouseover = function(ev){
+       setAttr("piece1_5","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece1_5","class","-hover")
+     };
+   obj = document.getElementById("grid1_6");
+   obj.onmouseover = function(ev){
+       setAttr("piece1_6","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece1_6","class","-hover")
+     };
+   obj = document.getElementById("grid2_1");
+   obj.onmouseover = function(ev){
+       setAttr("piece2_1","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece2_1","class","-hover")
+     };
+   obj = document.getElementById("grid2_2");
+   obj.onmouseover = function(ev){
+       setAttr("piece2_2","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece2_2","class","-hover")
+     };
+   obj = document.getElementById("grid2_3");
+   obj.onmouseover = function(ev){
+       setAttr("piece2_3","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece2_3","class","-hover")
+     };
+   obj = document.getElementById("grid2_4");
+   obj.onmouseover = function(ev){
+       setAttr("piece2_4","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece2_4","class","-hover")
+     };
+   obj = document.getElementById("grid2_5");
+   obj.onmouseover = function(ev){
+       setAttr("piece2_5","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece2_5","class","-hover")
+     };
+   obj = document.getElementById("grid2_6");
+   obj.onmouseover = function(ev){
+       setAttr("piece2_6","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece2_6","class","-hover")
+     };
+   obj = document.getElementById("grid3_1");
+   obj.onmouseover = function(ev){
+       setAttr("piece3_1","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece3_1","class","-hover")
+     };
+   obj = document.getElementById("grid3_2");
+   obj.onmouseover = function(ev){
+       setAttr("piece3_2","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece3_2","class","-hover")
+     };
+   obj = document.getElementById("grid3_3");
+   obj.onmouseover = function(ev){
+       setAttr("piece3_3","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece3_3","class","-hover")
+     };
+   obj = document.getElementById("grid3_4");
+   obj.onmouseover = function(ev){
+       setAttr("piece3_4","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece3_4","class","-hover")
+     };
+   obj = document.getElementById("grid3_5");
+   obj.onmouseover = function(ev){
+       setAttr("piece3_5","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece3_5","class","-hover")
+     };
+   obj = document.getElementById("grid3_6");
+   obj.onmouseover = function(ev){
+       setAttr("piece3_6","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece3_6","class","-hover")
+     };
+   obj = document.getElementById("grid4_1");
+   obj.onmouseover = function(ev){
+       setAttr("piece4_1","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece4_1","class","-hover")
+     };
+   obj = document.getElementById("grid4_2");
+   obj.onmouseover = function(ev){
+       setAttr("piece4_2","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece4_2","class","-hover")
+     };
+   obj = document.getElementById("grid4_3");
+   obj.onmouseover = function(ev){
+       setAttr("piece4_3","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece4_3","class","-hover")
+     };
+   obj = document.getElementById("grid4_4");
+   obj.onmouseover = function(ev){
+       setAttr("piece4_4","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece4_4","class","-hover")
+     };
+   obj = document.getElementById("grid4_5");
+   obj.onmouseover = function(ev){
+       setAttr("piece4_5","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece4_5","class","-hover")
+     };
+   obj = document.getElementById("grid4_6");
+   obj.onmouseover = function(ev){
+       setAttr("piece4_6","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece4_6","class","-hover")
+     };
+   obj = document.getElementById("grid5_1");
+   obj.onmouseover = function(ev){
+       setAttr("piece5_1","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece5_1","class","-hover")
+     };
+   obj = document.getElementById("grid5_2");
+   obj.onmouseover = function(ev){
+       setAttr("piece5_2","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece5_2","class","-hover")
+     };
+   obj = document.getElementById("grid5_3");
+   obj.onmouseover = function(ev){
+       setAttr("piece5_3","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece5_3","class","-hover")
+     };
+   obj = document.getElementById("grid5_4");
+   obj.onmouseover = function(ev){
+       setAttr("piece5_4","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece5_4","class","-hover")
+     };
+   obj = document.getElementById("grid5_5");
+   obj.onmouseover = function(ev){
+       setAttr("piece5_5","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece5_5","class","-hover")
+     };
+   obj = document.getElementById("grid5_6");
+   obj.onmouseover = function(ev){
+       setAttr("piece5_6","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece5_6","class","-hover")
+     };
+   obj = document.getElementById("grid6_1");
+   obj.onmouseover = function(ev){
+       setAttr("piece6_1","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece6_1","class","-hover")
+     };
+   obj = document.getElementById("grid6_2");
+   obj.onmouseover = function(ev){
+       setAttr("piece6_2","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece6_2","class","-hover")
+     };
+   obj = document.getElementById("grid6_3");
+   obj.onmouseover = function(ev){
+       setAttr("piece6_3","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece6_3","class","-hover")
+     };
+   obj = document.getElementById("grid6_4");
+   obj.onmouseover = function(ev){
+       setAttr("piece6_4","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece6_4","class","-hover")
+     };
+   obj = document.getElementById("grid6_5");
+   obj.onmouseover = function(ev){
+       setAttr("piece6_5","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece6_5","class","-hover")
+     };
+   obj = document.getElementById("grid6_6");
+   obj.onmouseover = function(ev){
+       setAttr("piece6_6","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece6_6","class","-hover")
+     };
+   obj = document.getElementById("grid7_1");
+   obj.onmouseover = function(ev){
+       setAttr("piece7_1","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece7_1","class","-hover")
+     };
+   obj = document.getElementById("grid7_2");
+   obj.onmouseover = function(ev){
+       setAttr("piece7_2","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece7_2","class","-hover")
+     };
+   obj = document.getElementById("grid7_3");
+   obj.onmouseover = function(ev){
+       setAttr("piece7_3","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece7_3","class","-hover")
+     };
+   obj = document.getElementById("grid7_4");
+   obj.onmouseover = function(ev){
+       setAttr("piece7_4","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece7_4","class","-hover")
+     };
+   obj = document.getElementById("grid7_5");
+   obj.onmouseover = function(ev){
+       setAttr("piece7_5","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece7_5","class","-hover")
+     };
+   obj = document.getElementById("grid7_6");
+   obj.onmouseover = function(ev){
+       setAttr("piece7_6","class","+hover")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece7_6","class","-hover")
+     };
+   obj = document.getElementById("piece1_1");
+   obj.onmouseover = function(ev){
+       setAttr("piece1_1","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","5")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece1_1","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece1_2");
+   obj.onmouseover = function(ev){
+       setAttr("piece1_2","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","5")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece1_2","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece1_3");
+   obj.onmouseover = function(ev){
+       setAttr("piece1_3","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","5")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece1_3","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece1_4");
+   obj.onmouseover = function(ev){
+       setAttr("piece1_4","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","5")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece1_4","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece1_5");
+   obj.onmouseover = function(ev){
+       setAttr("piece1_5","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","5")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece1_5","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece1_6");
+   obj.onmouseover = function(ev){
+       setAttr("piece1_6","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","5")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece1_6","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece2_1");
+   obj.onmouseover = function(ev){
+       setAttr("piece2_1","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","15")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece2_1","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece2_2");
+   obj.onmouseover = function(ev){
+       setAttr("piece2_2","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","15")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece2_2","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece2_3");
+   obj.onmouseover = function(ev){
+       setAttr("piece2_3","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","15")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece2_3","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece2_4");
+   obj.onmouseover = function(ev){
+       setAttr("piece2_4","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","15")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece2_4","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece2_5");
+   obj.onmouseover = function(ev){
+       setAttr("piece2_5","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","15")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece2_5","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece2_6");
+   obj.onmouseover = function(ev){
+       setAttr("piece2_6","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","15")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece2_6","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece3_1");
+   obj.onmouseover = function(ev){
+       setAttr("piece3_1","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","25")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece3_1","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece3_2");
+   obj.onmouseover = function(ev){
+       setAttr("piece3_2","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","25")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece3_2","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece3_3");
+   obj.onmouseover = function(ev){
+       setAttr("piece3_3","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","25")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece3_3","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece3_4");
+   obj.onmouseover = function(ev){
+       setAttr("piece3_4","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","25")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece3_4","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece3_5");
+   obj.onmouseover = function(ev){
+       setAttr("piece3_5","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","25")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece3_5","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece3_6");
+   obj.onmouseover = function(ev){
+       setAttr("piece3_6","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","25")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece3_6","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece4_1");
+   obj.onmouseover = function(ev){
+       setAttr("piece4_1","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","35")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece4_1","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece4_2");
+   obj.onmouseover = function(ev){
+       setAttr("piece4_2","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","35")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece4_2","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece4_3");
+   obj.onmouseover = function(ev){
+       setAttr("piece4_3","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","35")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece4_3","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece4_4");
+   obj.onmouseover = function(ev){
+       setAttr("piece4_4","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","35")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece4_4","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece4_5");
+   obj.onmouseover = function(ev){
+       setAttr("piece4_5","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","35")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece4_5","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece4_6");
+   obj.onmouseover = function(ev){
+       setAttr("piece4_6","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","35")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece4_6","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece5_1");
+   obj.onmouseover = function(ev){
+       setAttr("piece5_1","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","45")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece5_1","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece5_2");
+   obj.onmouseover = function(ev){
+       setAttr("piece5_2","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","45")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece5_2","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece5_3");
+   obj.onmouseover = function(ev){
+       setAttr("piece5_3","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","45")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece5_3","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece5_4");
+   obj.onmouseover = function(ev){
+       setAttr("piece5_4","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","45")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece5_4","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece5_5");
+   obj.onmouseover = function(ev){
+       setAttr("piece5_5","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","45")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece5_5","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece5_6");
+   obj.onmouseover = function(ev){
+       setAttr("piece5_6","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","45")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece5_6","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece6_1");
+   obj.onmouseover = function(ev){
+       setAttr("piece6_1","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","55")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece6_1","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece6_2");
+   obj.onmouseover = function(ev){
+       setAttr("piece6_2","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","55")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece6_2","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece6_3");
+   obj.onmouseover = function(ev){
+       setAttr("piece6_3","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","55")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece6_3","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece6_4");
+   obj.onmouseover = function(ev){
+       setAttr("piece6_4","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","55")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece6_4","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece6_5");
+   obj.onmouseover = function(ev){
+       setAttr("piece6_5","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","55")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece6_5","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece6_6");
+   obj.onmouseover = function(ev){
+       setAttr("piece6_6","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","55")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece6_6","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece7_1");
+   obj.onmouseover = function(ev){
+       setAttr("piece7_1","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","65")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece7_1","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece7_2");
+   obj.onmouseover = function(ev){
+       setAttr("piece7_2","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","65")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece7_2","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece7_3");
+   obj.onmouseover = function(ev){
+       setAttr("piece7_3","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","65")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece7_3","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece7_4");
+   obj.onmouseover = function(ev){
+       setAttr("piece7_4","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","65")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece7_4","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece7_5");
+   obj.onmouseover = function(ev){
+       setAttr("piece7_5","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","65")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece7_5","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("piece7_6");
+   obj.onmouseover = function(ev){
+       setAttr("piece7_6","class","+hover")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","65")
+     };
+   obj.onmouseout = function(){
+       setAttr("piece7_6","class","-hover")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("mcts");
+   obj.onmouseover = function(ev){
+       setAttr("mcts","opacity","1.0")
+       setAttr("mcts","stroke-width","0.85")
+       setAttr("nxt_piece","visibility","visible")
+       setAttr("nxt_piece","cx","35")
+     };
+   obj.onmouseout = function(){
+       setAttr("mcts","opacity","1.0")
+       setAttr("mcts","stroke-width","0.5")
+       setAttr("nxt_piece","visibility","hidden")
+       setAttr("nxt_piece","cx","0")
+     };
+   obj = document.getElementById("mcts_txt");
+   obj.onmouseover = function(ev){
+       setAttr("mcts","opacity","1.0")
+       setAttr("mcts","stroke-width","0.85")
+     };
+   obj.onmouseout = function(){
+       setAttr("mcts","opacity","1.0")
+       setAttr("mcts","stroke-width","0.5")
+     };
+   }
+  </script>
+    </head>
+<body>
+
+
+ <button type="button" class="collapsible collapsible-style">SVG Visualisation</button>
+ <div text-align="left">
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns="http://www.w3.org/2000/svg"
+   height="600" width="700"
+   viewBox="-2 -10 80 80"
+   >
+   
+  <filter id="displacementFilter">
+    <feTurbulence type="turbulence" baseFrequency="0.05"
+        numOctaves="2" result="turbulence"/>
+    <feDisplacementMap in2="turbulence" in="SourceGraphic"
+        scale="1.2" xChannelSelector="R" yChannelSelector="G"/>
+  </filter>
+  
+  
+	<style id="sudoku_styles">
+	@keyframes hideshow {
+	  0% {opacitiy: 1; fill: brown;}
+	  15% {opacitiy: 1;}
+	  20% {opacitiy: 1; fill: lightgrey;}
+	  25% {opacitiy: 1;}
+	  30% {opacitiy: 1; fill: red;}
+	  85% {opacitiy: 1;}
+	  100% {opacity: 1;}
+	}
+	@keyframes hideshowy {
+	  20% {opacitiy: 1; fill: orange;}
+	  35% {opacitiy: 1;}
+	  40% {opacitiy: 1; fill: lightgrey;}
+	  65% {opacitiy: 1;}
+	  70% {opacitiy: 1; fill: yellow;}
+	  99% {opacitiy: 1;}
+	  100% {opacity: 1;}
+	}
+	.normal {
+		fill : whitesmoke;
+	}
+	.red {
+		fill : red;
+	}
+	.red_last {
+		fill : red;
+		animation: hideshow 0.5s ease 2;
+	}
+	.yellow {
+		fill : yellow;
+	}
+	.yellow_last {
+		fill : yellow;
+		animation: hideshowy 0.5s ease 2;
+	}
+	.hover {
+		stroke : black;
+		stroke-width : 0.4
+	}
+	
+</style>
+	
+</svg>
+<script>
+  const svg = document.querySelector("svg");
+  const svgns = "http://www.w3.org/2000/svg";
+  if(document.getElementById("nxt_piece") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","nxt_piece");
+        new___obj.setAttribute("class","red");
+        new___obj.setAttribute("cx","0");
+        new___obj.setAttribute("cy","-5.0");
+        new___obj.setAttribute("opacity","1.0");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.4");
+        new___obj.setAttribute("visibility","hidden");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid1_1") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid1_1");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","0");
+        new___obj.setAttribute("y","0");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid1_2") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid1_2");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","0");
+        new___obj.setAttribute("y","10");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid1_3") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid1_3");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","0");
+        new___obj.setAttribute("y","20");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid1_4") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid1_4");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","0");
+        new___obj.setAttribute("y","30");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid1_5") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid1_5");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","0");
+        new___obj.setAttribute("y","40");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid1_6") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid1_6");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","0");
+        new___obj.setAttribute("y","50");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid2_1") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid2_1");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","10");
+        new___obj.setAttribute("y","0");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid2_2") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid2_2");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","10");
+        new___obj.setAttribute("y","10");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid2_3") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid2_3");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","10");
+        new___obj.setAttribute("y","20");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid2_4") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid2_4");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","10");
+        new___obj.setAttribute("y","30");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid2_5") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid2_5");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","10");
+        new___obj.setAttribute("y","40");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid2_6") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid2_6");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","10");
+        new___obj.setAttribute("y","50");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid3_1") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid3_1");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","20");
+        new___obj.setAttribute("y","0");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid3_2") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid3_2");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","20");
+        new___obj.setAttribute("y","10");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid3_3") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid3_3");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","20");
+        new___obj.setAttribute("y","20");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid3_4") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid3_4");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","20");
+        new___obj.setAttribute("y","30");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid3_5") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid3_5");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","20");
+        new___obj.setAttribute("y","40");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid3_6") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid3_6");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","20");
+        new___obj.setAttribute("y","50");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid4_1") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid4_1");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","30");
+        new___obj.setAttribute("y","0");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid4_2") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid4_2");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","30");
+        new___obj.setAttribute("y","10");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid4_3") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid4_3");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","30");
+        new___obj.setAttribute("y","20");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid4_4") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid4_4");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","30");
+        new___obj.setAttribute("y","30");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid4_5") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid4_5");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","30");
+        new___obj.setAttribute("y","40");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid4_6") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid4_6");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","30");
+        new___obj.setAttribute("y","50");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid5_1") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid5_1");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","40");
+        new___obj.setAttribute("y","0");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid5_2") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid5_2");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","40");
+        new___obj.setAttribute("y","10");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid5_3") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid5_3");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","40");
+        new___obj.setAttribute("y","20");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid5_4") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid5_4");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","40");
+        new___obj.setAttribute("y","30");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid5_5") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid5_5");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","40");
+        new___obj.setAttribute("y","40");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid5_6") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid5_6");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","40");
+        new___obj.setAttribute("y","50");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid6_1") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid6_1");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","50");
+        new___obj.setAttribute("y","0");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid6_2") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid6_2");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","50");
+        new___obj.setAttribute("y","10");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid6_3") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid6_3");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","50");
+        new___obj.setAttribute("y","20");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid6_4") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid6_4");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","50");
+        new___obj.setAttribute("y","30");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid6_5") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid6_5");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","50");
+        new___obj.setAttribute("y","40");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid6_6") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid6_6");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","50");
+        new___obj.setAttribute("y","50");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid7_1") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid7_1");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","60");
+        new___obj.setAttribute("y","0");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid7_2") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid7_2");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","60");
+        new___obj.setAttribute("y","10");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid7_3") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid7_3");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","60");
+        new___obj.setAttribute("y","20");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid7_4") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid7_4");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","60");
+        new___obj.setAttribute("y","30");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid7_5") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid7_5");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","60");
+        new___obj.setAttribute("y","40");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("grid7_6") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","grid7_6");
+        new___obj.setAttribute("fill","white");
+        new___obj.setAttribute("height","10");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.25");
+        new___obj.setAttribute("width","10");
+        new___obj.setAttribute("x","60");
+        new___obj.setAttribute("y","50");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece1_1") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece1_1");
+        new___obj.setAttribute("cx","5");
+        new___obj.setAttribute("cy","5");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece1_2") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece1_2");
+        new___obj.setAttribute("cx","5");
+        new___obj.setAttribute("cy","15");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece1_3") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece1_3");
+        new___obj.setAttribute("cx","5");
+        new___obj.setAttribute("cy","25");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece1_4") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece1_4");
+        new___obj.setAttribute("cx","5");
+        new___obj.setAttribute("cy","35");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece1_5") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece1_5");
+        new___obj.setAttribute("cx","5");
+        new___obj.setAttribute("cy","45");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece1_6") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece1_6");
+        new___obj.setAttribute("cx","5");
+        new___obj.setAttribute("cy","55");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece2_1") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece2_1");
+        new___obj.setAttribute("cx","15");
+        new___obj.setAttribute("cy","5");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece2_2") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece2_2");
+        new___obj.setAttribute("cx","15");
+        new___obj.setAttribute("cy","15");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece2_3") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece2_3");
+        new___obj.setAttribute("cx","15");
+        new___obj.setAttribute("cy","25");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece2_4") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece2_4");
+        new___obj.setAttribute("cx","15");
+        new___obj.setAttribute("cy","35");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece2_5") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece2_5");
+        new___obj.setAttribute("cx","15");
+        new___obj.setAttribute("cy","45");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece2_6") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece2_6");
+        new___obj.setAttribute("cx","15");
+        new___obj.setAttribute("cy","55");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece3_1") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece3_1");
+        new___obj.setAttribute("cx","25");
+        new___obj.setAttribute("cy","5");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece3_2") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece3_2");
+        new___obj.setAttribute("cx","25");
+        new___obj.setAttribute("cy","15");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece3_3") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece3_3");
+        new___obj.setAttribute("cx","25");
+        new___obj.setAttribute("cy","25");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece3_4") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece3_4");
+        new___obj.setAttribute("cx","25");
+        new___obj.setAttribute("cy","35");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece3_5") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece3_5");
+        new___obj.setAttribute("cx","25");
+        new___obj.setAttribute("cy","45");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece3_6") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece3_6");
+        new___obj.setAttribute("cx","25");
+        new___obj.setAttribute("cy","55");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece4_1") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece4_1");
+        new___obj.setAttribute("cx","35");
+        new___obj.setAttribute("cy","5");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece4_2") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece4_2");
+        new___obj.setAttribute("cx","35");
+        new___obj.setAttribute("cy","15");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece4_3") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece4_3");
+        new___obj.setAttribute("cx","35");
+        new___obj.setAttribute("cy","25");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece4_4") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece4_4");
+        new___obj.setAttribute("cx","35");
+        new___obj.setAttribute("cy","35");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece4_5") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece4_5");
+        new___obj.setAttribute("cx","35");
+        new___obj.setAttribute("cy","45");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece4_6") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece4_6");
+        new___obj.setAttribute("cx","35");
+        new___obj.setAttribute("cy","55");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece5_1") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece5_1");
+        new___obj.setAttribute("cx","45");
+        new___obj.setAttribute("cy","5");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece5_2") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece5_2");
+        new___obj.setAttribute("cx","45");
+        new___obj.setAttribute("cy","15");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece5_3") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece5_3");
+        new___obj.setAttribute("cx","45");
+        new___obj.setAttribute("cy","25");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece5_4") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece5_4");
+        new___obj.setAttribute("cx","45");
+        new___obj.setAttribute("cy","35");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece5_5") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece5_5");
+        new___obj.setAttribute("cx","45");
+        new___obj.setAttribute("cy","45");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece5_6") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece5_6");
+        new___obj.setAttribute("cx","45");
+        new___obj.setAttribute("cy","55");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece6_1") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece6_1");
+        new___obj.setAttribute("cx","55");
+        new___obj.setAttribute("cy","5");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece6_2") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece6_2");
+        new___obj.setAttribute("cx","55");
+        new___obj.setAttribute("cy","15");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece6_3") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece6_3");
+        new___obj.setAttribute("cx","55");
+        new___obj.setAttribute("cy","25");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece6_4") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece6_4");
+        new___obj.setAttribute("cx","55");
+        new___obj.setAttribute("cy","35");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece6_5") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece6_5");
+        new___obj.setAttribute("cx","55");
+        new___obj.setAttribute("cy","45");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece6_6") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece6_6");
+        new___obj.setAttribute("cx","55");
+        new___obj.setAttribute("cy","55");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece7_1") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece7_1");
+        new___obj.setAttribute("cx","65");
+        new___obj.setAttribute("cy","5");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece7_2") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece7_2");
+        new___obj.setAttribute("cx","65");
+        new___obj.setAttribute("cy","15");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece7_3") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece7_3");
+        new___obj.setAttribute("cx","65");
+        new___obj.setAttribute("cy","25");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece7_4") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece7_4");
+        new___obj.setAttribute("cx","65");
+        new___obj.setAttribute("cy","35");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece7_5") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece7_5");
+        new___obj.setAttribute("cx","65");
+        new___obj.setAttribute("cy","45");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("piece7_6") == null) {
+    var new___obj = document.createElementNS(svgns,"circle");
+        new___obj.setAttribute("id","piece7_6");
+        new___obj.setAttribute("cx","65");
+        new___obj.setAttribute("cy","55");
+        new___obj.setAttribute("fill","green");
+        new___obj.setAttribute("r","4.5");
+        new___obj.setAttribute("stroke","lightgray");
+        new___obj.setAttribute("stroke-width","0.1");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("mcts") == null) {
+    var new___obj = document.createElementNS(svgns,"rect");
+        new___obj.setAttribute("id","mcts");
+        new___obj.setAttribute("fill","lightgray");
+        new___obj.setAttribute("height","5");
+        new___obj.setAttribute("stroke","black");
+        new___obj.setAttribute("stroke-width","0.5");
+        new___obj.setAttribute("width","20");
+        new___obj.setAttribute("x","25");
+        new___obj.setAttribute("y","63");
+    svg.appendChild(new___obj);
+  }
+  if(document.getElementById("mcts_txt") == null) {
+    var new___obj = document.createElementNS(svgns,"text");
+        new___obj.setAttribute("id","mcts_txt");
+        new___obj.setAttribute("font-size","2.0");
+        new___obj.textContent = "MCTS AUTO PLAY";
+        new___obj.setAttribute("x","26");
+        new___obj.setAttribute("y","66");
+    svg.appendChild(new___obj);
+  }
+</script>
+ </div>
+ <button type="button" class="collapsible-style">Replay Trace</button>
+ <div class="coll-content-vis">
+  <button onclick="backStep()">&laquo; Back</button>
+  <button onclick="forwardStep()">Forward &raquo;</button>
+  <button onclick="runAll(10)">Run Trace (10 ms delay)</button>
+  <button onclick="runAll(500)">Run Trace (500 ms delay)</button>
+  <br><text id="visb_debug_messages" class="visb-messages"> </text>
+ </div>
+ <progress id="trace_meter" min="0" max="23" value="0"></progress>
+ <button type="button" class="collapsible collapsible-style">Variables (3/3)</button>
+<div class="coll-content-hid">
+ <table> <tr> <th>Nr</th> <th>Name</th> <th>Value</th> </tr>
+
+ <tr id="var_rowboard"> <td>1</td> <td>board</td> <td id="bVar_board">?</td></tr>
+
+ <tr id="var_rowjoueur"> <td>2</td> <td>joueur</td> <td id="bVar_joueur">?</td></tr>
+
+ <tr id="var_rowlastpos"> <td>3</td> <td>lastpos</td> <td id="bVar_lastpos">?</td></tr>
+ </table>
+ </div>
+ <button type="button" class="collapsible collapsible-style">Constants (3/3)</button>
+<div class="coll-content-hid">
+ <table> <tr> <th>Nr</th> <th>Name</th> <th>Value</th> </tr>
+
+ <tr id="var_rowcount"> <td>1</td> <td>count</td> <td id="bVar_count">/*@symbolic*/ %(x,y,c,b,dx,dy).(x : INTEGER &amp; y : INTEGER &amp; c : Couleurs &amp; b : POW(INTEGER * INTEGER * Couleurs) &amp; dx : INTEGER &amp; dy : INTEGER|(IF x |-&gt; y |-&gt; c : b THEN 1 + count(x + dx |-&gt; y + dy |-&gt; c |-&gt; b |-&gt; dx |-&gt; dy) ELSE 0 END))</td></tr>
+
+ <tr id="var_rowmaxRow"> <td>2</td> <td>maxRow</td> <td id="bVar_maxRow">6</td></tr>
+
+ <tr id="var_rowmaxCol"> <td>3</td> <td>maxCol</td> <td id="bVar_maxCol">7</td></tr>
+ </table>
+ </div>
+ <button type="button" class="collapsible collapsible-style">Sets (3/3)</button>
+<div class="coll-content-hid">
+ <table> <tr> <th>Nr</th> <th>Name</th> <th>Value</th> </tr>
+
+ <tr id="var_rowCouleurs"> <td>1</td> <td>Couleurs</td> <td id="bVar_Couleurs">{jaune,rouge,vide}</td></tr>
+
+ <tr id="var_rowPHASES"> <td>2</td> <td>PHASES</td> <td id="bVar_PHASES">{jouer,compter,verifier}</td></tr>
+
+ <tr id="var_rowINT"> <td>3</td> <td>INT</td> <td id="bVar_INT">(-1 .. 3)</td></tr>
+ </table>
+ </div>
+ <button type="button" class="collapsible-style">Trace (length=23)</button>
+<div class="coll-content-vis">
+ <table> <tr> <th>Nr</th> <th>Event</th> <th>Target State ID</th> </tr>
+
+ <tr id="row1"><td>1</td><td style="cursor:not-allowed">SETUP_CONSTANTS(count=/*@symbolic*/ %(x,y,c,b,dx,dy).(x : INTEGER & y : INTEGER & c : Couleurs & b : POW(INTEGER * INTEG...</td><td>State 0</td></tr>
+
+  <tr id="row2" onclick="visualise1(2)"><td>2</td><td style="cursor:pointer">INITIALISATION(joueur=rouge)</td><td><button onclick="visualise1(2);">State 1</button></td></tr>
+
+  <tr id="row3" onclick="visualise5(3)"><td>3</td><td style="cursor:pointer">joue(4)</td><td><button onclick="visualise5(3);">State 5</button></td></tr>
+
+  <tr id="row4" onclick="visualise13(4)"><td>4</td><td style="cursor:pointer">joue(5)</td><td><button onclick="visualise13(4);">State 13</button></td></tr>
+
+  <tr id="row5" onclick="visualise19(5)"><td>5</td><td style="cursor:pointer">joue(4)</td><td><button onclick="visualise19(5);">State 19</button></td></tr>
+
+  <tr id="row6" onclick="visualise27(6)"><td>6</td><td style="cursor:pointer">joue(5)</td><td><button onclick="visualise27(6);">State 27</button></td></tr>
+
+  <tr id="row7" onclick="visualise33(7)"><td>7</td><td style="cursor:pointer">joue(4)</td><td><button onclick="visualise33(7);">State 33</button></td></tr>
+
+  <tr id="row8" onclick="visualise40(8)"><td>8</td><td style="cursor:pointer">joue(4)</td><td><button onclick="visualise40(8);">State 40</button></td></tr>
+
+  <tr id="row9" onclick="visualise48(9)"><td>9</td><td style="cursor:pointer">joue(5)</td><td><button onclick="visualise48(9);">State 48</button></td></tr>
+
+  <tr id="row10" onclick="visualise52(10)"><td>10</td><td style="cursor:pointer">joue(2)</td><td><button onclick="visualise52(10);">State 52</button></td></tr>
+
+  <tr id="row11" onclick="visualise59(11)"><td>11</td><td style="cursor:pointer">joue(2)</td><td><button onclick="visualise59(11);">State 59</button></td></tr>
+
+  <tr id="row12" onclick="visualise69(12)"><td>12</td><td style="cursor:pointer">joue(5)</td><td><button onclick="visualise69(12);">State 69</button></td></tr>
+
+  <tr id="row13" onclick="visualise73(13)"><td>13</td><td style="cursor:pointer">joue(2)</td><td><button onclick="visualise73(13);">State 73</button></td></tr>
+
+  <tr id="row14" onclick="visualise80(14)"><td>14</td><td style="cursor:pointer">joue(2)</td><td><button onclick="visualise80(14);">State 80</button></td></tr>
+
+  <tr id="row15" onclick="visualise89(15)"><td>15</td><td style="cursor:pointer">joue(4)</td><td><button onclick="visualise89(15);">State 89</button></td></tr>
+
+  <tr id="row16" onclick="visualise99(16)"><td>16</td><td style="cursor:pointer">joue(7)</td><td><button onclick="visualise99(16);">State 99</button></td></tr>
+
+  <tr id="row17" onclick="visualise103(17)"><td>17</td><td style="cursor:pointer">joue(4)</td><td><button onclick="visualise103(17);">State 103</button></td></tr>
+
+  <tr id="row18" onclick="visualise107(18)"><td>18</td><td style="cursor:pointer">joue(1)</td><td><button onclick="visualise107(18);">State 107</button></td></tr>
+
+  <tr id="row19" onclick="visualise113(19)"><td>19</td><td style="cursor:pointer">joue(1)</td><td><button onclick="visualise113(19);">State 113</button></td></tr>
+
+  <tr id="row20" onclick="visualise119(20)"><td>20</td><td style="cursor:pointer">joue(1)</td><td><button onclick="visualise119(20);">State 119</button></td></tr>
+
+  <tr id="row21" onclick="visualise127(21)"><td>21</td><td style="cursor:pointer">joue(3)</td><td><button onclick="visualise127(21);">State 127</button></td></tr>
+
+  <tr id="row22" onclick="visualise132(22)"><td>22</td><td style="cursor:pointer">joue(2)</td><td><button onclick="visualise132(22);">State 132</button></td></tr>
+
+  <tr id="row23" onclick="visualise139(23)"><td>23</td><td style="cursor:pointer">joue(3)</td><td><button onclick="visualise139(23);">State 139</button></td></tr>
+ </table>
+ </div>
+ <button type="button" class="collapsible-style">Info</button>
+<div class="coll-content-vis visb-messages">
+Generated on 2/1/2024 at 18:02 using ProB version 1.12.3-nightly
+<br>Main specification file: Puissance4.mch (modified on 2/1/2024 at 18:00)
+<br>Main specification name: Puissance4
+<br>Main VisB JSON file: puissance4_visb_B.json (modified on 2/1/2024 at 13:37)
+<br>VisB SVG file: puissance4_grid.svg (modified on 2/1/2024 at 11:32)
+ <script> visualise139(23); </script>
+ </div>
+ <script> registerHovers() </script>
+ 
+<script>
+var collapsibles = document.getElementsByClassName("collapsible");
+var ii;
+
+for (ii = 0; ii < collapsibles.length; ii++) {
+  collapsibles[ii].addEventListener("click", function() {
+    this.classList.toggle("active");
+    var content = this.nextElementSibling;
+    if (content.style.display === "block") {
+      content.style.display = "none";
+    } else {
+      content.style.display = "block";
+    }
+  });
+}
+</script>
+
+</body>
+</html>
+
diff --git a/Connect4/Puissance4.mch b/Connect4/Puissance4.mch
new file mode 100644
index 0000000000000000000000000000000000000000..4c511fb28ce37b859a334d108a417e865afb0a9d
--- /dev/null
+++ b/Connect4/Puissance4.mch
@@ -0,0 +1,92 @@
+
+MACHINE Puissance4 // Connect 4 Game
+ // adapted and partially rewritten version of Event-B model by Jean-Pierre Jacquot
+DEFINITIONS
+    WINNING_PIECE(c,r) == /* check if insertion of piece at c↦r causes win for player */
+         r ∈ 1 ‥ maxRow
+      & /* @c-val */ c ∈ 1 ‥ maxCol
+      & LET bcr BE bcr = board(c ↦ r) IN
+         /* @non-vide */ bcr ≠ vide
+        & (
+           ( c↦r+1↦bcr : board & c↦r+2↦bcr : board & c↦r+3↦bcr : board ) /*@desc "vertical" */
+           or
+           ( count(c+1,r+1,bcr,board,1,1) +  count(c-1,r-1,bcr,board,-1,-1) ≥ 3) /*@desc "diagonal 1" */
+           or
+           ( count(c+1,r-1,bcr,board,1,-1) +  count(c-1,r+1,bcr,board,-1,1) ≥ 3) /*@desc "diagonal 2" */
+           or
+           ( count(c+1,r,bcr,board,1,0) +  count(c-1,r,bcr,board,-1,0) ≥ 3) /*@desc "horizontal" */
+          )
+      END;
+
+     // Definitions for ProB to be able to use MCTS game play:
+     GAME_PLAYER == {jaune ↦ "min", rouge ↦ "max"} (joueur);
+     GAME_VALUE == {jaune ↦ 1, rouge ↦ -1} (joueur); // assume we call it directly when first winning piece was placed by other player
+     GAME_OVER == bool(WINNING_PIECE(prj1(lastpos),prj2(lastpos)));
+     GAME_MCTS_RUNS == 200;
+     GAME_MCTS_TIMEOUT == 3000;
+     GAME_MCTS_CACHE_LAST_TREE == TRUE;
+
+     SET_PREF_CLPFD==FALSE; SET_PREF_COMPRESSION==TRUE;
+
+     VISB_JSON_FILE == "puissance4_visb_B.json";
+     // definitions for old-style Tk animation:
+     ANIMATION_FUNCTION == {r,c,i| c↦r:dom(board) & i = {jaune↦3,rouge↦2,vide↦1}(board(c↦r))};
+     ANIMATION_CLICK(c,r) == BEGIN joue(c); MCTS_AUTO_PLAY(TRUE) END;
+     ANIMATION_IMG1 == "images/sm_O_light.gif";
+     ANIMATION_IMG2 == "images/sm_O_red.gif";
+     ANIMATION_IMG3 == "images/sm_O_yellow.gif";
+     ANIMATION_IMG4 == "images/sm_gray_box.gif";
+     EXTERNAL_SUBSTITUTION_MCTS_AUTO_PLAY == BOOL;
+     MCTS_AUTO_PLAY(x) == skip;
+SETS /* enumerated */
+  Couleurs={jaune,rouge,vide};
+  PHASES={jouer,compter,verifier}
+CONCRETE_CONSTANTS
+  maxRow,
+  maxCol
+ABSTRACT_CONSTANTS
+  count
+ABSTRACT_VARIABLES
+  joueur,
+  board,
+  lastpos /*@desc "position of last played piece (for more efficient win checking)" */
+PROPERTIES
+    /* @Board:ax2 */ maxCol ∈ 1 ‥ 10
+  & /* @Board:ax3 */ maxRow ∈ 1 ‥ 10
+  & maxCol = 7
+  & maxRow = 6
+  &
+    count = %(x,y,c,b,dx,dy).({x,y,dx,dy} <: INTEGER & c:Couleurs
+              | IF x↦y↦c : b
+                THEN 1+count(x+dx,y+dy,c,b,dx,dy)
+                ELSE 0
+                END
+             )
+INVARIANT
+    /* @PuisQGJ:type-joueur */ joueur ∈ {jaune,rouge}
+  & /* @PuisQ:boad-type */ board ∈ (1 ‥ maxCol) × (1 ‥ maxRow) → Couleurs
+  & lastpos : (1 ‥ maxCol) × (1 ‥ maxRow)
+
+INITIALISATION  /* of machine PuisQGJ_prob */
+    BEGIN
+         board := (1 ‥ maxCol) × (1 ‥ maxRow) × {vide}
+      ||
+         joueur :: {rouge}
+      ||
+         lastpos := maxCol↦maxRow // dummy value
+    END
+OPERATIONS
+  joue(col) =
+    SELECT
+        /* @type-col */ col ∈ 1 ‥ maxCol
+      & /* @col-possible */ board(col ↦ 1) = vide
+    THEN
+      LET row BE /* @line */ row = max({li|li ∈ 1 ‥ maxRow ∧ board(col ↦ li) = vide}) IN
+         board := board <+ {col ↦ row ↦ joueur}
+      ||
+         joueur :: {jaune,rouge} - {joueur}
+      ||
+         lastpos := (col ↦ row)
+      END
+    END
+END
diff --git a/Connect4/puissance4_grid.svg b/Connect4/puissance4_grid.svg
new file mode 100644
index 0000000000000000000000000000000000000000..b5f8fba43d319712208baa3e3e8ddb017b223a60
--- /dev/null
+++ b/Connect4/puissance4_grid.svg
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<svg
+   xmlns="http://www.w3.org/2000/svg"
+   height="600" width="700"
+   viewBox="-2 -10 80 80"
+   >
+   
+  <filter id="displacementFilter">
+    <feTurbulence type="turbulence" baseFrequency="0.05"
+        numOctaves="2" result="turbulence"/>
+    <feDisplacementMap in2="turbulence" in="SourceGraphic"
+        scale="1.2" xChannelSelector="R" yChannelSelector="G"/>
+  </filter>
+  
+  
+	<style id="sudoku_styles">
+	@keyframes hideshow {
+	  0% {opacitiy: 1; fill: brown;}
+	  15% {opacitiy: 1;}
+	  20% {opacitiy: 1; fill: lightgrey;}
+	  25% {opacitiy: 1;}
+	  30% {opacitiy: 1; fill: red;}
+	  85% {opacitiy: 1;}
+	  100% {opacity: 1;}
+	}
+	@keyframes hideshowy {
+	  20% {opacitiy: 1; fill: orange;}
+	  35% {opacitiy: 1;}
+	  40% {opacitiy: 1; fill: lightgrey;}
+	  65% {opacitiy: 1;}
+	  70% {opacitiy: 1; fill: yellow;}
+	  99% {opacitiy: 1;}
+	  100% {opacity: 1;}
+	}
+	.normal {
+		fill : whitesmoke;
+	}
+	.red {
+		fill : red;
+	}
+	.red_last {
+		fill : red;
+		animation: hideshow 0.5s ease 2;
+	}
+	.yellow {
+		fill : yellow;
+	}
+	.yellow_last {
+		fill : yellow;
+		animation: hideshowy 0.5s ease 2;
+	}
+	.hover {
+		stroke : black;
+		stroke-width : 0.4
+	}
+	
+</style>
+	
+</svg>
diff --git a/Connect4/puissance4_visb.json b/Connect4/puissance4_visb.json
new file mode 100644
index 0000000000000000000000000000000000000000..68a6716e2b8d349578d1b3f43ac87726e85b105b
--- /dev/null
+++ b/Connect4/puissance4_visb.json
@@ -0,0 +1,75 @@
+{
+  "svg": "puissance4_grid.svg",
+  "comment": "version which uses new svg object creation",
+  "definitions": [
+    { "name":"nrcols",
+      "value" : "7"
+    },
+    { "name":"nrrows",
+      "value":"[6,6,6,6,6,6,6]"
+    }
+  ],
+  "svg_objects":[
+    {
+      "for":{"from":1,"to":"nrcols"}, 
+      "for":{"from":1,"to":6}, 
+      "svg_class":"rect",
+      "id":"grid%0_%1",
+      "x":"10*(%0-1)",
+      "y":"10*(%1-1)",
+      "width":"10",
+      "height" : "10",
+      "stroke":"black",
+      "stroke-width":"0.25",
+      "fill":"white"
+    },
+    {
+      "for":{"from":1,"to":"nrcols"}, 
+      "for":{"from":1,"to":"nrrows(%0)"}, 
+      "svg_class":"circle",
+      "id":"piece%0_%1",
+      "cx":"5+10*(%0-1)",
+      "cy":"5+10*(%1-1)",
+      "r":"4.5",
+      "stroke":"black",
+      "stroke-width":"0.5",
+      "style": "",
+      "fill":"green"
+    }
+    ],
+  "items": [
+    { 
+      "for":{"from":1,"to":"nrcols"}, 
+      "for":{"from":1,"to":"nrrows(%0)"}, 
+      "id":"piece%0_%1",
+      "attr": "fill",
+      "value": "IF board(%0,%1) = rouge THEN \"red\" ELSIF board(%0,%1) /= vide  THEN \"blue\" ELSE \"white\" END"
+    }
+    ],
+  "events":[ 
+    {
+      "for":{"from":1,"to":"nrcols"}, 
+      "for":{"from":1,"to":"nrrows(%0)"}, 
+      "id":"grid%0_%1",
+      "event":"joue",
+      "predicates": [ "col=%0", "l=%1"],
+      "hovers": [{ "id":"piece%0_%1", "attr":"stroke-width", "enter":"0.85", "leave":"0.5"}]
+    },
+    {
+      "for":{"from":1,"to":"nrcols"}, 
+      "for":{"from":1,"to":"nrrows(%0)"}, 
+      "id":"piece%0_%1",
+      "event":"joue",
+      "predicates": [ "col=%0", "l=%1"],
+      "hovers": [{ "attr":"opacity", "enter":"1.0", "leave":"1.0"},
+                 { "attr":"stroke-width", "enter":"0.85", "leave":"0.5"}]
+    },
+    {
+      "for":{"from":1,"to":"nrcols"}, 
+      "for":{"from":1,"to":"nrrows(%0)"}, 
+      "id":"piece%0_%1",
+      "optonal":"true",
+      "event":"changeJoueur"
+    }
+    ]
+}