diff --git a/Sudoku/SudokuFeld.svg b/Sudoku/SudokuFeld.svg
index 0b965d4bdc7cf02a9f7ac85bfaa8f812e8536db4..947371e7df3ce5a3ec7406146db1d1e36f0f6ebc 100644
--- a/Sudoku/SudokuFeld.svg
+++ b/Sudoku/SudokuFeld.svg
@@ -8,10 +8,25 @@
 	id="svg5154">
 
 	<style id="sudoku_styles">
+	@keyframes hideshow {
+	  0% {opacitiy: 1; fill: darkseagreen;}
+	  15% {opacitiy: 0;}
+	  20% {opacitiy: 1; fill: lightgrey;}
+	  25% {opacitiy: 0;}
+	  30% {opacitiy: 1; fill: seagreen;}
+	  85% {opacitiy: 0;}
+	  100% {opacity: 0;}
+	}
 	.normal {
 		stroke : lightgray;
 		stroke-width : 0.1;
-		fill : white
+		fill : white;
+	}
+	.win {
+		stroke : lightgray;
+		stroke-width : 0.1;
+		fill : darkseagreen;
+		animation: hideshow 0.8s ease 2;
 	}
 	.fixed {
 		stroke : lightgray;
@@ -1100,8 +1115,8 @@
   <ellipse ry="7" rx="7" id="RemoveCircle" cy="7.5" cx="7.5" class="normalKeyboard"/>
   <g id="Ruler" transform="translate(1,0.4) scale(0.9,0.9)">
   	<text stroke="#000" font-style="normal"  class="normalActionbuttons" font-weight="normal" xml:space="preserve" text-anchor="start" font-family="sans-serif" font-size="9" id="svg_1" y="10.98608" x="3.99945" stroke-width="0" fill="#000000">8</text>
-  	<rect id="Remove1" transform="rotate(-130.94 9.89569 9.61504)" stroke="#000" rx="0.6" id="svg_2" height="5.84219" width="3.62026" y="6.69395" x="8.08556" stroke-width="0" fill="lightgray"/>
-  	<rect id="Remove2" transform="rotate(-131 9.92115 9.6195)" stroke="#000" rx="0.6" id="svg_3" height="5.37765" width="3.12474" y="6.93068" x="8.35877" stroke-width="0" fill="#000000"/>
+  	<rect id="Remove1" transform="rotate(-130.94 9.89569 9.61504)" stroke="#000" rx="0.6" height="5.84219" width="3.62026" y="6.69395" x="8.08556" stroke-width="0" fill="lightgray"/>
+  	<rect id="Remove2" transform="rotate(-131 9.92115 9.6195)" stroke="#000" rx="0.6" height="5.37765" width="3.12474" y="6.93068" x="8.35877" stroke-width="0" fill="#000000"/>
   	<line transform="rotate(19.8657 9.85376 9.67272)" stroke="lightgray" stroke-width="0.6" id="svg_5" y2="11.0162" x2="11.05154" y1="8.32925" x1="8.65599" fill="none"/>
   </g>
  </g>
diff --git a/Sudoku/visb_sudoku.json b/Sudoku/visb_sudoku.json
index a207aa2df17b5e82609e9e4a12823867111106eb..ff925829dbd575ca5fbcb93e355db90b4cbb097a 100644
--- a/Sudoku/visb_sudoku.json
+++ b/Sudoku/visb_sudoku.json
@@ -4,6 +4,9 @@
   [
     { "name":"BOARD",
       "value" : "%x.(x:DOM|%y.(y:DOM|0)  <+ Board(x))"
+    },
+    { "name":"Won",
+      "value" : "bool(Board : DOM --> (DOM --> RAN))"
     }
   ],
   "items": [
@@ -26,7 +29,7 @@
 	  "repeat": [1,2,3,4,5,6,7,8,9],
       "id": "board_%0_%1",
       "attr": "class",
-      "value" : "IF curx=%0 & cury=%1 THEN \"selected\" ELSIF  %0|->%1:conflict_pos(curx,cury) THEN IF %1:dom(Board(%0)) & BOARD(%0)(%1)=BOARD(curx)(cury) THEN \"wrong\" ELSE \"conflictpos\" END ELSIF %1:dom(Board(%0)) & BOARD(%0)(%1)=BOARD(curx)(cury) THEN \"samevalue\" ELSIF %1:dom(PuzzleBoard(%0)) THEN \"fixed\" ELSE \"normal\" END"
+      "value" : "IF Won=TRUE THEN \"win\" ELSIF curx=%0 & cury=%1 THEN \"selected\" ELSIF  %0|->%1:conflict_pos(curx,cury) THEN IF %1:dom(Board(%0)) & BOARD(%0)(%1)=BOARD(curx)(cury) THEN \"wrong\" ELSE \"conflictpos\" END ELSIF %1:dom(Board(%0)) & BOARD(%0)(%1)=BOARD(curx)(cury) THEN \"samevalue\" ELSIF %1:dom(PuzzleBoard(%0)) THEN \"fixed\" ELSE \"normal\" END"
     },
 	{
 	  "for": {"from":1, "to":9},