crosslanguagespotter 0.0.2-java

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +19 -0
  3. data/Gemfile +3 -0
  4. data/Rakefile +13 -0
  5. data/crosslanguagespotter.gemspec +36 -0
  6. data/examples/ex1.rb +13 -0
  7. data/examples/services_example.rb +13 -0
  8. data/lib/crosslanguagespotter/basic.rb +157 -0
  9. data/lib/crosslanguagespotter/context.rb +139 -0
  10. data/lib/crosslanguagespotter/figures_evaluator.rb +160 -0
  11. data/lib/crosslanguagespotter/jaccard.rb +114 -0
  12. data/lib/crosslanguagespotter/methods/context.rb +127 -0
  13. data/lib/crosslanguagespotter/methods/jaro.rb +118 -0
  14. data/lib/crosslanguagespotter/methods/tversky.rb +44 -0
  15. data/lib/crosslanguagespotter/model_loading.rb +333 -0
  16. data/lib/crosslanguagespotter/oracle.rb +261 -0
  17. data/lib/crosslanguagespotter/report.rb +88 -0
  18. data/lib/crosslanguagespotter/version.rb +5 -0
  19. data/lib/crosslanguagespotter/wekaintegration.rb +83 -0
  20. data/lib/crosslanguagespotter.rb +7 -0
  21. data/lib/jars/weka.jar +0 -0
  22. data/resources/css/bootstrap-theme.css +346 -0
  23. data/resources/css/bootstrap-theme.min.css +7 -0
  24. data/resources/css/bootstrap.css +5780 -0
  25. data/resources/css/bootstrap.min.css +7 -0
  26. data/resources/css/highlightstyles/arta.css +160 -0
  27. data/resources/css/highlightstyles/ascetic.css +50 -0
  28. data/resources/css/highlightstyles/atelier-dune.dark.css +93 -0
  29. data/resources/css/highlightstyles/atelier-dune.light.css +93 -0
  30. data/resources/css/highlightstyles/atelier-forest.dark.css +93 -0
  31. data/resources/css/highlightstyles/atelier-forest.light.css +93 -0
  32. data/resources/css/highlightstyles/atelier-heath.dark.css +93 -0
  33. data/resources/css/highlightstyles/atelier-heath.light.css +93 -0
  34. data/resources/css/highlightstyles/atelier-lakeside.dark.css +93 -0
  35. data/resources/css/highlightstyles/atelier-lakeside.light.css +93 -0
  36. data/resources/css/highlightstyles/atelier-seaside.dark.css +93 -0
  37. data/resources/css/highlightstyles/atelier-seaside.light.css +93 -0
  38. data/resources/css/highlightstyles/brown_paper.css +105 -0
  39. data/resources/css/highlightstyles/brown_papersq.png +0 -0
  40. data/resources/css/highlightstyles/dark.css +105 -0
  41. data/resources/css/highlightstyles/default.css +153 -0
  42. data/resources/css/highlightstyles/docco.css +132 -0
  43. data/resources/css/highlightstyles/far.css +113 -0
  44. data/resources/css/highlightstyles/foundation.css +133 -0
  45. data/resources/css/highlightstyles/github.css +125 -0
  46. data/resources/css/highlightstyles/googlecode.css +147 -0
  47. data/resources/css/highlightstyles/idea.css +122 -0
  48. data/resources/css/highlightstyles/ir_black.css +105 -0
  49. data/resources/css/highlightstyles/magula.css +123 -0
  50. data/resources/css/highlightstyles/mono-blue.css +62 -0
  51. data/resources/css/highlightstyles/monokai.css +127 -0
  52. data/resources/css/highlightstyles/monokai_sublime.css +149 -0
  53. data/resources/css/highlightstyles/obsidian.css +154 -0
  54. data/resources/css/highlightstyles/paraiso.dark.css +93 -0
  55. data/resources/css/highlightstyles/paraiso.light.css +93 -0
  56. data/resources/css/highlightstyles/pojoaque.css +106 -0
  57. data/resources/css/highlightstyles/pojoaque.jpg +0 -0
  58. data/resources/css/highlightstyles/railscasts.css +182 -0
  59. data/resources/css/highlightstyles/rainbow.css +112 -0
  60. data/resources/css/highlightstyles/school_book.css +113 -0
  61. data/resources/css/highlightstyles/school_book.png +0 -0
  62. data/resources/css/highlightstyles/solarized_dark.css +107 -0
  63. data/resources/css/highlightstyles/solarized_light.css +107 -0
  64. data/resources/css/highlightstyles/sunburst.css +160 -0
  65. data/resources/css/highlightstyles/tomorrow-night-blue.css +93 -0
  66. data/resources/css/highlightstyles/tomorrow-night-bright.css +92 -0
  67. data/resources/css/highlightstyles/tomorrow-night-eighties.css +92 -0
  68. data/resources/css/highlightstyles/tomorrow-night.css +93 -0
  69. data/resources/css/highlightstyles/tomorrow.css +90 -0
  70. data/resources/css/highlightstyles/vs.css +89 -0
  71. data/resources/css/highlightstyles/xcode.css +158 -0
  72. data/resources/css/highlightstyles/zenburn.css +117 -0
  73. data/resources/example.html +1501 -0
  74. data/resources/js/bootstrap.js +1943 -0
  75. data/resources/js/bootstrap.min.js +7 -0
  76. data/resources/js/highlight.pack.js +1 -0
  77. data/resources/services_example.html +141 -0
  78. data/resources/template.html +61 -0
  79. data/test/data/angular-puzzle.GS +111 -0
  80. data/test/data/angular_puzzle/app.js +66 -0
  81. data/test/data/angular_puzzle/index.html +67 -0
  82. data/test/data/angular_puzzle/slidingPuzzle.js +203 -0
  83. data/test/data/angular_puzzle/wordSearchPuzzle.js +270 -0
  84. data/test/data/example.html +5 -0
  85. data/test/data/example.js +4 -0
  86. data/test/data/services/index.html +33 -0
  87. data/test/data/services/script.js +15 -0
  88. data/test/test_helper.rb +9 -0
  89. data/test/test_parsing.rb +23 -0
  90. data/test/test_spotter.rb +42 -0
  91. data/test/test_wekaintegration.rb +43 -0
  92. metadata +328 -0
@@ -0,0 +1,1501 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="utf-8">
5
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
6
+ <meta name="viewport" content="width=device-width, initial-scale=1">
7
+ <title>Cross Language Spotter - Debug Interface</title>
8
+
9
+ <!-- Bootstrap -->
10
+ <link href="css/bootstrap.min.css" rel="stylesheet">
11
+ <link rel="stylesheet" href="css/highlightstyles/default.css">
12
+
13
+ <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
14
+ <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
15
+ <!--[if lt IE 9]>
16
+ <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
17
+ <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
18
+ <![endif]-->
19
+
20
+ </head>
21
+ <body>
22
+ <div class="container">
23
+ <h1> Cross Language Relations - Console Log</h1>
24
+
25
+ <div class="row text-left">
26
+ <div class="col-md-6">
27
+ <h2> ./test/data/angular_puzzle/index.html</h2>
28
+ <pre>
29
+ <code class="language-html"}}>
30
+ &#60;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; href=&#34;css/styles.css&#34;/&#62;&#10;&#60;/head&#62;&#10;&#60;body ng-app=&#34;puzzleApp&#34;&#62;&#10;&#9;&#60;ul id=&#34;types&#34;&#62;&#10;&#9;&#9;&#60;li ng-repeat=&#34;t in types&#34; ng-class=&#34;{&#39;selected&#39;: t.id == type}&#34;&#62;&#10;&#9;&#9;&#9;&#60;a ng-href=&#34;#/{{t.id}}&#34;&#62;{{t.<span style="background-color:yellow;padding:2px">title</span>}}&#60;/a&#62;&#10;&#9;&#9;&#60;/li&#62;&#10;&#9;&#60;/ul&#62;&#10;&#10;&#9;&#60;div ng-include=&#34;type&#34;&#62;&#60;/div&#62;
31
+ </code>
32
+ </pre>
33
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
34
+ </div>
35
+ <div class="col-md-6">
36
+ <h2> ./test/data/angular_puzzle/app.js</h2>
37
+ <pre>
38
+ <code class="language-javascript">
39
+ &#10; var app = angular.module(&#39;puzzleApp&#39;, [&#39;slidingPuzzle&#39;, &#39;wordSearchPuzzle&#39;]);&#10;&#10; // puzzle types&#10; var types = [&#10; { id: &#39;sliding-puzzle&#39;, <span style="background-color:yellow;padding:2px">title</span>: &#39;Sliding puzzle&#39; },&#10; { id: &#39;word-search-puzzle&#39;, title: &#39;Word search puzzle&#39; }&#10; ];&#10;&#10; /**&#10; * Config
40
+ </code>
41
+ </pre>
42
+ </div>
43
+ </div> <!-- end row -->
44
+
45
+ <div class="row text-left">
46
+ <div class="col-md-6">
47
+ <h2> ./test/data/angular_puzzle/index.html</h2>
48
+ <pre>
49
+ <code class="language-html"}}>
50
+ &#60;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; href=&#34;css/styles.css&#34;/&#62;&#10;&#60;/head&#62;&#10;&#60;body ng-app=&#34;puzzleApp&#34;&#62;&#10;&#9;&#60;ul id=&#34;types&#34;&#62;&#10;&#9;&#9;&#60;li ng-repeat=&#34;t in types&#34; ng-class=&#34;{&#39;selected&#39;: t.id == type}&#34;&#62;&#10;&#9;&#9;&#9;&#60;a ng-href=&#34;#/{{t.id}}&#34;&#62;{{t.<span style="background-color:yellow;padding:2px">title</span>}}&#60;/a&#62;&#10;&#9;&#9;&#60;/li&#62;&#10;&#9;&#60;/ul&#62;&#10;&#10;&#9;&#60;div ng-include=&#34;type&#34;&#62;&#60;/div&#62;
51
+ </code>
52
+ </pre>
53
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
54
+ </div>
55
+ <div class="col-md-6">
56
+ <h2> ./test/data/angular_puzzle/app.js</h2>
57
+ <pre>
58
+ <code class="language-javascript">
59
+ var app = angular.module(&#39;puzzleApp&#39;, [&#39;slidingPuzzle&#39;, &#39;wordSearchPuzzle&#39;]);&#10;&#10; // puzzle types&#10; var types = [&#10; { id: &#39;sliding-puzzle&#39;, title: &#39;Sliding puzzle&#39; },&#10; { id: &#39;word-search-puzzle&#39;, <span style="background-color:yellow;padding:2px">title</span>: &#39;Word search puzzle&#39; }&#10; ];&#10;&#10; /**&#10; * Config&#10; */
60
+ </code>
61
+ </pre>
62
+ </div>
63
+ </div> <!-- end row -->
64
+
65
+ <div class="row text-left">
66
+ <div class="col-md-6">
67
+ <h2> ./test/data/angular_puzzle/index.html</h2>
68
+ <pre>
69
+ <code class="language-html"}}>
70
+ &#9;&#9;&#60;/fieldset&#62;&#60;br/&#62;&#10;&#10;&#9;&#9;&#60;fieldset id=&#34;sliding-advanced&#34; ng-controller=&#34;slidingAdvancedCtrl&#34;&#62;&#10;&#9;&#9;&#9;&#60;legend&#62;Advanced&#60;/legend&#62;&#10;&#9;&#9;&#9;&#60;div ng-repeat=&#34;puzzle in puzzles&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;h2&#62;{{puzzle.<span style="background-color:yellow;padding:2px">title</span>}}&#60;/h2&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;src&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;input type=&#34;text&#34; ng-model=&#34;puzzle.src&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;moves: &#60;strong&#62;{{puzzle.api.moves}}&#60;/strong&#62;&#60;br/&#62;
71
+ </code>
72
+ </pre>
73
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
74
+ </div>
75
+ <div class="col-md-6">
76
+ <h2> ./test/data/angular_puzzle/app.js</h2>
77
+ <pre>
78
+ <code class="language-javascript">
79
+ /**&#10; * Advanced sliding puzzle controller&#10; */&#10;app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { src: &#39;./img/misko.jpg&#39;, <span style="background-color:yellow;padding:2px">title</span>: &#39;Misko Hevery&#39;, rows: 4, cols: 4 },&#10; { src: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, rows: 3, cols: 3 },&#10; { src: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, rows: 4, cols: 3 }&#10; ];&#10;});
80
+ </code>
81
+ </pre>
82
+ </div>
83
+ </div> <!-- end row -->
84
+
85
+ <div class="row text-left">
86
+ <div class="col-md-6">
87
+ <h2> ./test/data/angular_puzzle/index.html</h2>
88
+ <pre>
89
+ <code class="language-html"}}>
90
+ &#9;&#9;&#60;/fieldset&#62;&#60;br/&#62;&#10;&#10;&#9;&#9;&#60;fieldset id=&#34;sliding-advanced&#34; ng-controller=&#34;slidingAdvancedCtrl&#34;&#62;&#10;&#9;&#9;&#9;&#60;legend&#62;Advanced&#60;/legend&#62;&#10;&#9;&#9;&#9;&#60;div ng-repeat=&#34;puzzle in puzzles&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;h2&#62;{{puzzle.<span style="background-color:yellow;padding:2px">title</span>}}&#60;/h2&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;src&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;input type=&#34;text&#34; ng-model=&#34;puzzle.src&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;moves: &#60;strong&#62;{{puzzle.api.moves}}&#60;/strong&#62;&#60;br/&#62;
91
+ </code>
92
+ </pre>
93
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
94
+ </div>
95
+ <div class="col-md-6">
96
+ <h2> ./test/data/angular_puzzle/app.js</h2>
97
+ <pre>
98
+ <code class="language-javascript">
99
+ * Advanced sliding puzzle controller&#10; */&#10; app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { src: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, rows: 4, cols: 4 },&#10; { src: &#39;./img/igor.jpg&#39;, <span style="background-color:yellow;padding:2px">title</span>: &#39;Igor Minar&#39;, rows: 3, cols: 3 },&#10; { src: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, rows: 4, cols: 3 }&#10; ];&#10; });&#10;&#10; /**
100
+ </code>
101
+ </pre>
102
+ </div>
103
+ </div> <!-- end row -->
104
+
105
+ <div class="row text-left">
106
+ <div class="col-md-6">
107
+ <h2> ./test/data/angular_puzzle/index.html</h2>
108
+ <pre>
109
+ <code class="language-html"}}>
110
+ &#9;&#9;&#60;/fieldset&#62;&#60;br/&#62;&#10;&#10;&#9;&#9;&#60;fieldset id=&#34;sliding-advanced&#34; ng-controller=&#34;slidingAdvancedCtrl&#34;&#62;&#10;&#9;&#9;&#9;&#60;legend&#62;Advanced&#60;/legend&#62;&#10;&#9;&#9;&#9;&#60;div ng-repeat=&#34;puzzle in puzzles&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;h2&#62;{{puzzle.<span style="background-color:yellow;padding:2px">title</span>}}&#60;/h2&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;src&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;input type=&#34;text&#34; ng-model=&#34;puzzle.src&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;moves: &#60;strong&#62;{{puzzle.api.moves}}&#60;/strong&#62;&#60;br/&#62;
111
+ </code>
112
+ </pre>
113
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
114
+ </div>
115
+ <div class="col-md-6">
116
+ <h2> ./test/data/angular_puzzle/app.js</h2>
117
+ <pre>
118
+ <code class="language-javascript">
119
+ */&#10; app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { src: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, rows: 4, cols: 4 },&#10; { src: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, rows: 3, cols: 3 },&#10; { src: &#39;./img/vojta.jpg&#39;, <span style="background-color:yellow;padding:2px">title</span>: &#39;Vojta Jina&#39;, rows: 4, cols: 3 }&#10; ];&#10; });&#10;&#10; /**&#10; * Word search puzzle controller
120
+ </code>
121
+ </pre>
122
+ </div>
123
+ </div> <!-- end row -->
124
+
125
+ <div class="row text-left">
126
+ <div class="col-md-6">
127
+ <h2> ./test/data/angular_puzzle/index.html</h2>
128
+ <pre>
129
+ <code class="language-html"}}>
130
+ &#9;&#9;&#60;fieldset id=&#34;sliding-advanced&#34; ng-controller=&#34;slidingAdvancedCtrl&#34;&#62;&#10;&#9;&#9;&#9;&#60;legend&#62;Advanced&#60;/legend&#62;&#10;&#9;&#9;&#9;&#60;div ng-repeat=&#34;puzzle in puzzles&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;h2&#62;{{puzzle.title}}&#60;/h2&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;src&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;input type=&#34;text&#34; ng-model=&#34;puzzle.<span style="background-color:yellow;padding:2px">src</span>&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;moves: &#60;strong&#62;{{puzzle.api.moves}}&#60;/strong&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;solved: &#60;strong&#62;{{puzzle.api.isSolved()}}&#60;/strong&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;
131
+ </code>
132
+ </pre>
133
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
134
+ </div>
135
+ <div class="col-md-6">
136
+ <h2> ./test/data/angular_puzzle/app.js</h2>
137
+ <pre>
138
+ <code class="language-javascript">
139
+ /**&#10; * Advanced sliding puzzle controller&#10; */&#10;app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { <span style="background-color:yellow;padding:2px">src</span>: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, rows: 4, cols: 4 },&#10; { src: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, rows: 3, cols: 3 },&#10; { src: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, rows: 4, cols: 3 }&#10; ];&#10;});
140
+ </code>
141
+ </pre>
142
+ </div>
143
+ </div> <!-- end row -->
144
+
145
+ <div class="row text-left">
146
+ <div class="col-md-6">
147
+ <h2> ./test/data/angular_puzzle/index.html</h2>
148
+ <pre>
149
+ <code class="language-html"}}>
150
+ &#9;&#9;&#60;fieldset id=&#34;sliding-advanced&#34; ng-controller=&#34;slidingAdvancedCtrl&#34;&#62;&#10;&#9;&#9;&#9;&#60;legend&#62;Advanced&#60;/legend&#62;&#10;&#9;&#9;&#9;&#60;div ng-repeat=&#34;puzzle in puzzles&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;h2&#62;{{puzzle.title}}&#60;/h2&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;src&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;input type=&#34;text&#34; ng-model=&#34;puzzle.<span style="background-color:yellow;padding:2px">src</span>&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;moves: &#60;strong&#62;{{puzzle.api.moves}}&#60;/strong&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;solved: &#60;strong&#62;{{puzzle.api.isSolved()}}&#60;/strong&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;
151
+ </code>
152
+ </pre>
153
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
154
+ </div>
155
+ <div class="col-md-6">
156
+ <h2> ./test/data/angular_puzzle/app.js</h2>
157
+ <pre>
158
+ <code class="language-javascript">
159
+ * Advanced sliding puzzle controller&#10; */&#10; app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { src: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, rows: 4, cols: 4 },&#10; { <span style="background-color:yellow;padding:2px">src</span>: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, rows: 3, cols: 3 },&#10; { src: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, rows: 4, cols: 3 }&#10; ];&#10; });&#10;&#10; /**
160
+ </code>
161
+ </pre>
162
+ </div>
163
+ </div> <!-- end row -->
164
+
165
+ <div class="row text-left">
166
+ <div class="col-md-6">
167
+ <h2> ./test/data/angular_puzzle/index.html</h2>
168
+ <pre>
169
+ <code class="language-html"}}>
170
+ &#9;&#9;&#60;fieldset id=&#34;sliding-advanced&#34; ng-controller=&#34;slidingAdvancedCtrl&#34;&#62;&#10;&#9;&#9;&#9;&#60;legend&#62;Advanced&#60;/legend&#62;&#10;&#9;&#9;&#9;&#60;div ng-repeat=&#34;puzzle in puzzles&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;h2&#62;{{puzzle.title}}&#60;/h2&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;src&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;input type=&#34;text&#34; ng-model=&#34;puzzle.<span style="background-color:yellow;padding:2px">src</span>&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;moves: &#60;strong&#62;{{puzzle.api.moves}}&#60;/strong&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;solved: &#60;strong&#62;{{puzzle.api.isSolved()}}&#60;/strong&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;
171
+ </code>
172
+ </pre>
173
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
174
+ </div>
175
+ <div class="col-md-6">
176
+ <h2> ./test/data/angular_puzzle/app.js</h2>
177
+ <pre>
178
+ <code class="language-javascript">
179
+ */&#10; app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { src: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, rows: 4, cols: 4 },&#10; { src: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, rows: 3, cols: 3 },&#10; { <span style="background-color:yellow;padding:2px">src</span>: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, rows: 4, cols: 3 }&#10; ];&#10; });&#10;&#10; /**&#10; * Word search puzzle controller
180
+ </code>
181
+ </pre>
182
+ </div>
183
+ </div> <!-- end row -->
184
+
185
+ <div class="row text-left">
186
+ <div class="col-md-6">
187
+ <h2> ./test/data/angular_puzzle/index.html</h2>
188
+ <pre>
189
+ <code class="language-html"}}>
190
+ &#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; <span style="background-color:yellow;padding:2px">src=&#34;{{puzzle.src}}&#34;&#62;</span>&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;&#10;&#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;
191
+ </code>
192
+ </pre>
193
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
194
+ </div>
195
+ <div class="col-md-6">
196
+ <h2> ./test/data/angular_puzzle/app.js</h2>
197
+ <pre>
198
+ <code class="language-javascript">
199
+ /**&#10; * Advanced sliding puzzle controller&#10; */&#10;app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { <span style="background-color:yellow;padding:2px">src</span>: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, rows: 4, cols: 4 },&#10; { src: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, rows: 3, cols: 3 },&#10; { src: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, rows: 4, cols: 3 }&#10; ];&#10;});
200
+ </code>
201
+ </pre>
202
+ </div>
203
+ </div> <!-- end row -->
204
+
205
+ <div class="row text-left">
206
+ <div class="col-md-6">
207
+ <h2> ./test/data/angular_puzzle/index.html</h2>
208
+ <pre>
209
+ <code class="language-html"}}>
210
+ &#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; <span style="background-color:yellow;padding:2px">src=&#34;{{puzzle.src}}&#34;&#62;</span>&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;&#10;&#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;
211
+ </code>
212
+ </pre>
213
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
214
+ </div>
215
+ <div class="col-md-6">
216
+ <h2> ./test/data/angular_puzzle/app.js</h2>
217
+ <pre>
218
+ <code class="language-javascript">
219
+ * Advanced sliding puzzle controller&#10; */&#10; app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { src: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, rows: 4, cols: 4 },&#10; { <span style="background-color:yellow;padding:2px">src</span>: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, rows: 3, cols: 3 },&#10; { src: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, rows: 4, cols: 3 }&#10; ];&#10; });&#10;&#10; /**
220
+ </code>
221
+ </pre>
222
+ </div>
223
+ </div> <!-- end row -->
224
+
225
+ <div class="row text-left">
226
+ <div class="col-md-6">
227
+ <h2> ./test/data/angular_puzzle/index.html</h2>
228
+ <pre>
229
+ <code class="language-html"}}>
230
+ &#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; <span style="background-color:yellow;padding:2px">src=&#34;{{puzzle.src}}&#34;&#62;</span>&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;&#10;&#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;
231
+ </code>
232
+ </pre>
233
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
234
+ </div>
235
+ <div class="col-md-6">
236
+ <h2> ./test/data/angular_puzzle/app.js</h2>
237
+ <pre>
238
+ <code class="language-javascript">
239
+ */&#10; app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { src: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, rows: 4, cols: 4 },&#10; { src: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, rows: 3, cols: 3 },&#10; { <span style="background-color:yellow;padding:2px">src</span>: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, rows: 4, cols: 3 }&#10; ];&#10; });&#10;&#10; /**&#10; * Word search puzzle controller
240
+ </code>
241
+ </pre>
242
+ </div>
243
+ </div> <!-- end row -->
244
+
245
+ <div class="row text-left">
246
+ <div class="col-md-6">
247
+ <h2> ./test/data/angular_puzzle/index.html</h2>
248
+ <pre>
249
+ <code class="language-html"}}>
250
+ &#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.<span style="background-color:yellow;padding:2px">src</span>}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;&#10;&#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;
251
+ </code>
252
+ </pre>
253
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
254
+ </div>
255
+ <div class="col-md-6">
256
+ <h2> ./test/data/angular_puzzle/app.js</h2>
257
+ <pre>
258
+ <code class="language-javascript">
259
+ /**&#10; * Advanced sliding puzzle controller&#10; */&#10;app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { <span style="background-color:yellow;padding:2px">src</span>: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, rows: 4, cols: 4 },&#10; { src: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, rows: 3, cols: 3 },&#10; { src: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, rows: 4, cols: 3 }&#10; ];&#10;});
260
+ </code>
261
+ </pre>
262
+ </div>
263
+ </div> <!-- end row -->
264
+
265
+ <div class="row text-left">
266
+ <div class="col-md-6">
267
+ <h2> ./test/data/angular_puzzle/index.html</h2>
268
+ <pre>
269
+ <code class="language-html"}}>
270
+ &#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.<span style="background-color:yellow;padding:2px">src</span>}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;&#10;&#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;
271
+ </code>
272
+ </pre>
273
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
274
+ </div>
275
+ <div class="col-md-6">
276
+ <h2> ./test/data/angular_puzzle/app.js</h2>
277
+ <pre>
278
+ <code class="language-javascript">
279
+ * Advanced sliding puzzle controller&#10; */&#10; app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { src: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, rows: 4, cols: 4 },&#10; { <span style="background-color:yellow;padding:2px">src</span>: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, rows: 3, cols: 3 },&#10; { src: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, rows: 4, cols: 3 }&#10; ];&#10; });&#10;&#10; /**
280
+ </code>
281
+ </pre>
282
+ </div>
283
+ </div> <!-- end row -->
284
+
285
+ <div class="row text-left">
286
+ <div class="col-md-6">
287
+ <h2> ./test/data/angular_puzzle/index.html</h2>
288
+ <pre>
289
+ <code class="language-html"}}>
290
+ &#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.<span style="background-color:yellow;padding:2px">src</span>}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;&#10;&#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;
291
+ </code>
292
+ </pre>
293
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
294
+ </div>
295
+ <div class="col-md-6">
296
+ <h2> ./test/data/angular_puzzle/app.js</h2>
297
+ <pre>
298
+ <code class="language-javascript">
299
+ */&#10; app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { src: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, rows: 4, cols: 4 },&#10; { src: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, rows: 3, cols: 3 },&#10; { <span style="background-color:yellow;padding:2px">src</span>: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, rows: 4, cols: 3 }&#10; ];&#10; });&#10;&#10; /**&#10; * Word search puzzle controller
300
+ </code>
301
+ </pre>
302
+ </div>
303
+ </div> <!-- end row -->
304
+
305
+ <div class="row text-left">
306
+ <div class="col-md-6">
307
+ <h2> ./test/data/angular_puzzle/index.html</h2>
308
+ <pre>
309
+ <code class="language-html"}}>
310
+ &#60;script type=&#34;text/javascript&#34; src=&#34;js/puzzle/slidingPuzzle.js&#34;&#62;&#60;/script&#62;&#10;&#9;&#60;script type=&#34;text/javascript&#34; src=&#34;js/puzzle/wordSearchPuzzle.js&#34;&#62;&#60;/script&#62;&#10;&#9;&#60;script type=&#34;text/javascript&#34; src=&#34;js/app.js&#34;&#62;&#60;/script&#62;&#10; &#60;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; href=&#34;css/styles.css&#34;/&#62;&#10;&#60;/head&#62;&#10;&#60;body <span style="background-color:yellow;padding:2px">ng-app=&#34;puzzleApp&#34;&#62;</span>&#10;&#9;&#60;ul id=&#34;types&#34;&#62;&#10;&#9;&#9;&#60;li ng-repeat=&#34;t in types&#34; ng-class=&#34;{&#39;selected&#39;: t.id == type}&#34;&#62;&#10;&#9;&#9;&#9;&#60;a ng-href=&#34;#/{{t.id}}&#34;&#62;{{t.title}}&#60;/a&#62;&#10;&#9;&#9;&#60;/li&#62;&#10;&#9;&#60;/ul&#62;
311
+ </code>
312
+ </pre>
313
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
314
+ </div>
315
+ <div class="col-md-6">
316
+ <h2> ./test/data/angular_puzzle/app.js</h2>
317
+ <pre>
318
+ <code class="language-javascript">
319
+ (function(angular) {&#10; &#39;use strict&#39;;&#10;&#10; var app = angular.module(<span style="background-color:yellow;padding:2px">&#39;puzzleApp&#39;</span>, [&#39;slidingPuzzle&#39;, &#39;wordSearchPuzzle&#39;]);&#10;&#10; // puzzle types&#10; var types = [&#10; { id: &#39;sliding-puzzle&#39;, title: &#39;Sliding puzzle&#39; },&#10; { id: &#39;word-search-puzzle&#39;, title: &#39;Word search puzzle&#39; }
320
+ </code>
321
+ </pre>
322
+ </div>
323
+ </div> <!-- end row -->
324
+
325
+ <div class="row text-left">
326
+ <div class="col-md-6">
327
+ <h2> ./test/data/angular_puzzle/index.html</h2>
328
+ <pre>
329
+ <code class="language-html"}}>
330
+ &#60;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; href=&#34;css/styles.css&#34;/&#62;&#10;&#60;/head&#62;&#10;&#60;body ng-app=&#34;puzzleApp&#34;&#62;&#10;&#9;&#60;ul id=&#34;types&#34;&#62;&#10;&#9;&#9;&#60;li ng-repeat=&#34;t in types&#34; ng-class=&#34;{&#39;selected&#39;: t.id == type}&#34;&#62;&#10;&#9;&#9;&#9;&#60;a ng-href=&#34;#/{{t.<span style="background-color:yellow;padding:2px">id</span>}}&#34;&#62;{{t.title}}&#60;/a&#62;&#10;&#9;&#9;&#60;/li&#62;&#10;&#9;&#60;/ul&#62;&#10;&#10;&#9;&#60;div ng-include=&#34;type&#34;&#62;&#60;/div&#62;
331
+ </code>
332
+ </pre>
333
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
334
+ </div>
335
+ <div class="col-md-6">
336
+ <h2> ./test/data/angular_puzzle/app.js</h2>
337
+ <pre>
338
+ <code class="language-javascript">
339
+ &#10; var app = angular.module(&#39;puzzleApp&#39;, [&#39;slidingPuzzle&#39;, &#39;wordSearchPuzzle&#39;]);&#10;&#10; // puzzle types&#10; var types = [&#10; { <span style="background-color:yellow;padding:2px">id</span>: &#39;sliding-puzzle&#39;, title: &#39;Sliding puzzle&#39; },&#10; { id: &#39;word-search-puzzle&#39;, title: &#39;Word search puzzle&#39; }&#10; ];&#10;&#10; /**&#10; * Config
340
+ </code>
341
+ </pre>
342
+ </div>
343
+ </div> <!-- end row -->
344
+
345
+ <div class="row text-left">
346
+ <div class="col-md-6">
347
+ <h2> ./test/data/angular_puzzle/index.html</h2>
348
+ <pre>
349
+ <code class="language-html"}}>
350
+ &#60;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; href=&#34;css/styles.css&#34;/&#62;&#10;&#60;/head&#62;&#10;&#60;body ng-app=&#34;puzzleApp&#34;&#62;&#10;&#9;&#60;ul id=&#34;types&#34;&#62;&#10;&#9;&#9;&#60;li ng-repeat=&#34;t in types&#34; ng-class=&#34;{&#39;selected&#39;: t.id == type}&#34;&#62;&#10;&#9;&#9;&#9;&#60;a ng-href=&#34;#/{{t.<span style="background-color:yellow;padding:2px">id</span>}}&#34;&#62;{{t.title}}&#60;/a&#62;&#10;&#9;&#9;&#60;/li&#62;&#10;&#9;&#60;/ul&#62;&#10;&#10;&#9;&#60;div ng-include=&#34;type&#34;&#62;&#60;/div&#62;
351
+ </code>
352
+ </pre>
353
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
354
+ </div>
355
+ <div class="col-md-6">
356
+ <h2> ./test/data/angular_puzzle/app.js</h2>
357
+ <pre>
358
+ <code class="language-javascript">
359
+ var app = angular.module(&#39;puzzleApp&#39;, [&#39;slidingPuzzle&#39;, &#39;wordSearchPuzzle&#39;]);&#10;&#10; // puzzle types&#10; var types = [&#10; { id: &#39;sliding-puzzle&#39;, title: &#39;Sliding puzzle&#39; },&#10; { <span style="background-color:yellow;padding:2px">id</span>: &#39;word-search-puzzle&#39;, title: &#39;Word search puzzle&#39; }&#10; ];&#10;&#10; /**&#10; * Config&#10; */
360
+ </code>
361
+ </pre>
362
+ </div>
363
+ </div> <!-- end row -->
364
+
365
+ <div class="row text-left">
366
+ <div class="col-md-6">
367
+ <h2> ./test/data/angular_puzzle/index.html</h2>
368
+ <pre>
369
+ <code class="language-html"}}>
370
+ &#9;&#60;script type=&#34;text/javascript&#34; src=&#34;js/app.js&#34;&#62;&#60;/script&#62;&#10; &#60;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; href=&#34;css/styles.css&#34;/&#62;&#10;&#60;/head&#62;&#10;&#60;body ng-app=&#34;puzzleApp&#34;&#62;&#10;&#9;&#60;ul id=&#34;types&#34;&#62;&#10;&#9;&#9;&#60;li ng-repeat=&#34;t in <span style="background-color:yellow;padding:2px">types</span>&#34; ng-class=&#34;{&#39;selected&#39;: t.id == type}&#34;&#62;&#10;&#9;&#9;&#9;&#60;a ng-href=&#34;#/{{t.id}}&#34;&#62;{{t.title}}&#60;/a&#62;&#10;&#9;&#9;&#60;/li&#62;&#10;&#9;&#60;/ul&#62;&#10;&#10;&#9;&#60;div ng-include=&#34;type&#34;&#62;&#60;/div&#62;
371
+ </code>
372
+ </pre>
373
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
374
+ </div>
375
+ <div class="col-md-6">
376
+ <h2> ./test/data/angular_puzzle/app.js</h2>
377
+ <pre>
378
+ <code class="language-javascript">
379
+ &#39;use strict&#39;;&#10;&#10; var app = angular.module(&#39;puzzleApp&#39;, [&#39;slidingPuzzle&#39;, &#39;wordSearchPuzzle&#39;]);&#10;&#10; // puzzle types&#10; var <span style="background-color:yellow;padding:2px">types</span> = [&#10; { id: &#39;sliding-puzzle&#39;, title: &#39;Sliding puzzle&#39; },&#10; { id: &#39;word-search-puzzle&#39;, title: &#39;Word search puzzle&#39; }&#10; ];&#10;&#10; /**
380
+ </code>
381
+ </pre>
382
+ </div>
383
+ </div> <!-- end row -->
384
+
385
+ <div class="row text-left">
386
+ <div class="col-md-6">
387
+ <h2> ./test/data/angular_puzzle/index.html</h2>
388
+ <pre>
389
+ <code class="language-html"}}>
390
+ &#9;&#60;script type=&#34;text/javascript&#34; src=&#34;js/app.js&#34;&#62;&#60;/script&#62;&#10; &#60;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; href=&#34;css/styles.css&#34;/&#62;&#10;&#60;/head&#62;&#10;&#60;body ng-app=&#34;puzzleApp&#34;&#62;&#10;&#9;&#60;ul id=&#34;types&#34;&#62;&#10;&#9;&#9;&#60;li ng-repeat=&#34;t in <span style="background-color:yellow;padding:2px">types</span>&#34; ng-class=&#34;{&#39;selected&#39;: t.id == type}&#34;&#62;&#10;&#9;&#9;&#9;&#60;a ng-href=&#34;#/{{t.id}}&#34;&#62;{{t.title}}&#60;/a&#62;&#10;&#9;&#9;&#60;/li&#62;&#10;&#9;&#60;/ul&#62;&#10;&#10;&#9;&#60;div ng-include=&#34;type&#34;&#62;&#60;/div&#62;
391
+ </code>
392
+ </pre>
393
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
394
+ </div>
395
+ <div class="col-md-6">
396
+ <h2> ./test/data/angular_puzzle/app.js</h2>
397
+ <pre>
398
+ <code class="language-javascript">
399
+ &#10; /**&#10; * Startup&#10; */&#10; app.run(function($rootScope, $route, $filter) {&#10; $rootScope.<span style="background-color:yellow;padding:2px">types</span> = types;&#10; $rootScope.type = types[0].id;&#10;&#10; // set type on route change&#10; $rootScope.$on(&#39;$routeChangeSuccess&#39;, function(event, route) {&#10; $rootScope.type = ($filter(&#39;filter&#39;)(types, { id: route.params.type }).length ? route.params.type : types[0].id);
400
+ </code>
401
+ </pre>
402
+ </div>
403
+ </div> <!-- end row -->
404
+
405
+ <div class="row text-left">
406
+ <div class="col-md-6">
407
+ <h2> ./test/data/angular_puzzle/index.html</h2>
408
+ <pre>
409
+ <code class="language-html"}}>
410
+ &#9;&#60;script type=&#34;text/javascript&#34; src=&#34;js/app.js&#34;&#62;&#60;/script&#62;&#10; &#60;link rel=&#34;stylesheet&#34; type=&#34;text/css&#34; href=&#34;css/styles.css&#34;/&#62;&#10;&#60;/head&#62;&#10;&#60;body ng-app=&#34;puzzleApp&#34;&#62;&#10;&#9;&#60;ul id=&#34;types&#34;&#62;&#10;&#9;&#9;&#60;li ng-repeat=&#34;t in <span style="background-color:yellow;padding:2px">types</span>&#34; ng-class=&#34;{&#39;selected&#39;: t.id == type}&#34;&#62;&#10;&#9;&#9;&#9;&#60;a ng-href=&#34;#/{{t.id}}&#34;&#62;{{t.title}}&#60;/a&#62;&#10;&#9;&#9;&#60;/li&#62;&#10;&#9;&#60;/ul&#62;&#10;&#10;&#9;&#60;div ng-include=&#34;type&#34;&#62;&#60;/div&#62;
411
+ </code>
412
+ </pre>
413
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
414
+ </div>
415
+ <div class="col-md-6">
416
+ <h2> ./test/data/angular_puzzle/app.js</h2>
417
+ <pre>
418
+ <code class="language-javascript">
419
+ &#10; /**&#10; * Startup&#10; */&#10; app.run(function($rootScope, $route, $filter) {&#10; $rootScope.types = <span style="background-color:yellow;padding:2px">types</span>;&#10; $rootScope.type = types[0].id;&#10;&#10; // set type on route change&#10; $rootScope.$on(&#39;$routeChangeSuccess&#39;, function(event, route) {&#10; $rootScope.type = ($filter(&#39;filter&#39;)(types, { id: route.params.type }).length ? route.params.type : types[0].id);
420
+ </code>
421
+ </pre>
422
+ </div>
423
+ </div> <!-- end row -->
424
+
425
+ <div class="row text-left">
426
+ <div class="col-md-6">
427
+ <h2> ./test/data/angular_puzzle/index.html</h2>
428
+ <pre>
429
+ <code class="language-html"}}>
430
+ &#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;moves: &#60;strong&#62;{{puzzle.api.moves}}&#60;/strong&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;solved: &#60;strong&#62;{{puzzle.api.isSolved()}}&#60;/strong&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div <span style="background-color:yellow;padding:2px">class=&#34;size&#34;&#62;</span>&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;
431
+ </code>
432
+ </pre>
433
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
434
+ </div>
435
+ <div class="col-md-6">
436
+ <h2> ./test/data/angular_puzzle/slidingPuzzle.js</h2>
437
+ <pre>
438
+ <code class="language-javascript">
439
+ &#39;&#60;tr ng-repeat=&#34;($row, row) in puzzle.grid&#34;&#62;&#39; +&#10; &#39;&#60;td ng-repeat=&#34;($col, tile) in row&#34; ng-click=&#34;puzzle.move($row, $col)&#34; ng-style=&#34;tile.style&#34; ng-class=&#34;{\&#39;puzzle-empty\&#39;: tile.empty}&#34; title=&#34;{{tile.id}}&#34;&#62;&#60;/td&#62;&#39; +&#10; &#39;&#60;/tr&#62;&#39; +&#10; &#39;&#60;/table&#62;&#39;,&#10;scope: {&#10; <span style="background-color:yellow;padding:2px">size</span>: &#39;@&#39;,&#10; src: &#39;@&#39;,&#10; api: &#39;=&#39;&#10;},&#10;link: function(scope, element, attrs) {&#10; var rows, cols,
440
+ </code>
441
+ </pre>
442
+ </div>
443
+ </div> <!-- end row -->
444
+
445
+ <div class="row text-left">
446
+ <div class="col-md-6">
447
+ <h2> ./test/data/angular_puzzle/index.html</h2>
448
+ <pre>
449
+ <code class="language-html"}}>
450
+ &#9;&#9;&#60;fieldset id=&#34;sliding-simple&#34;&#62;&#10;&#9;&#9;&#9;&#60;legend&#62;Basic&#60;/legend&#62;&#10;&#9;&#9;&#9;&#60;sliding-puzzle size=&#34;3x3&#34; src=&#34;img/angular.png&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#60;/fieldset&#62;&#60;br/&#62;&#10;&#10;&#9;&#9;&#60;fieldset id=&#34;sliding-advanced&#34; <span style="background-color:yellow;padding:2px">ng-controller=&#34;slidingAdvancedCtrl&#34;&#62;</span>&#10;&#9;&#9;&#9;&#60;legend&#62;Advanced&#60;/legend&#62;&#10;&#9;&#9;&#9;&#60;div ng-repeat=&#34;puzzle in puzzles&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;h2&#62;{{puzzle.title}}&#60;/h2&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;src&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;input type=&#34;text&#34; ng-model=&#34;puzzle.src&#34;/&#62;
451
+ </code>
452
+ </pre>
453
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
454
+ </div>
455
+ <div class="col-md-6">
456
+ <h2> ./test/data/angular_puzzle/app.js</h2>
457
+ <pre>
458
+ <code class="language-javascript">
459
+ });&#10;&#10; /**&#10; * Advanced sliding puzzle controller&#10; */&#10; app.controller(<span style="background-color:yellow;padding:2px">&#39;slidingAdvancedCtrl&#39;</span>, function($scope) {&#10; $scope.puzzles = [&#10; { src: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, rows: 4, cols: 4 },&#10; { src: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, rows: 3, cols: 3 },&#10; { src: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, rows: 4, cols: 3 }&#10; ];
460
+ </code>
461
+ </pre>
462
+ </div>
463
+ </div> <!-- end row -->
464
+
465
+ <div class="row text-left">
466
+ <div class="col-md-6">
467
+ <h2> ./test/data/angular_puzzle/index.html</h2>
468
+ <pre>
469
+ <code class="language-html"}}>
470
+ &#9;&#9;&#9;&#60;sliding-puzzle size=&#34;3x3&#34; src=&#34;img/angular.png&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#60;/fieldset&#62;&#60;br/&#62;&#10;&#10;&#9;&#9;&#60;fieldset id=&#34;sliding-advanced&#34; ng-controller=&#34;slidingAdvancedCtrl&#34;&#62;&#10;&#9;&#9;&#9;&#60;legend&#62;Advanced&#60;/legend&#62;&#10;&#9;&#9;&#9;&#60;div ng-repeat=&#34;puzzle in <span style="background-color:yellow;padding:2px">puzzles</span>&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;h2&#62;{{puzzle.title}}&#60;/h2&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;src&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;input type=&#34;text&#34; ng-model=&#34;puzzle.src&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;
471
+ </code>
472
+ </pre>
473
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
474
+ </div>
475
+ <div class="col-md-6">
476
+ <h2> ./test/data/angular_puzzle/app.js</h2>
477
+ <pre>
478
+ <code class="language-javascript">
479
+ &#10; /**&#10; * Advanced sliding puzzle controller&#10; */&#10; app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.<span style="background-color:yellow;padding:2px">puzzles</span> = [&#10; { src: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, rows: 4, cols: 4 },&#10; { src: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, rows: 3, cols: 3 },&#10; { src: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, rows: 4, cols: 3 }&#10; ];&#10; });
480
+ </code>
481
+ </pre>
482
+ </div>
483
+ </div> <!-- end row -->
484
+
485
+ <div class="row text-left">
486
+ <div class="col-md-6">
487
+ <h2> ./test/data/angular_puzzle/index.html</h2>
488
+ <pre>
489
+ <code class="language-html"}}>
490
+ &#9;&#9;&#9;&#9;&#60;h2&#62;{{puzzle.title}}&#60;/h2&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;src&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;input type=&#34;text&#34; ng-model=&#34;puzzle.src&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;moves: &#60;strong&#62;{{puzzle.<span style="background-color:yellow;padding:2px">api</span>.moves}}&#60;/strong&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;solved: &#60;strong&#62;{{puzzle.api.isSolved()}}&#60;/strong&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;size&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;
491
+ </code>
492
+ </pre>
493
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
494
+ </div>
495
+ <div class="col-md-6">
496
+ <h2> ./test/data/angular_puzzle/slidingPuzzle.js</h2>
497
+ <pre>
498
+ <code class="language-javascript">
499
+ image = new Image();&#10;&#10; function create() {&#10; scope.puzzle = slidingPuzzle(rows, cols);&#10;&#10; if (attrs.<span style="background-color:yellow;padding:2px">api</span>) {&#10; scope.api = scope.puzzle;&#10; }&#10;&#10; tile();&#10; }
500
+ </code>
501
+ </pre>
502
+ </div>
503
+ </div> <!-- end row -->
504
+
505
+ <div class="row text-left">
506
+ <div class="col-md-6">
507
+ <h2> ./test/data/angular_puzzle/index.html</h2>
508
+ <pre>
509
+ <code class="language-html"}}>
510
+ &#9;&#9;&#9;&#9;&#60;h2&#62;{{puzzle.title}}&#60;/h2&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;src&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;input type=&#34;text&#34; ng-model=&#34;puzzle.src&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;moves: &#60;strong&#62;{{puzzle.<span style="background-color:yellow;padding:2px">api</span>.moves}}&#60;/strong&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;solved: &#60;strong&#62;{{puzzle.api.isSolved()}}&#60;/strong&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;size&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;
511
+ </code>
512
+ </pre>
513
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
514
+ </div>
515
+ <div class="col-md-6">
516
+ <h2> ./test/data/angular_puzzle/slidingPuzzle.js</h2>
517
+ <pre>
518
+ <code class="language-javascript">
519
+ &#10; function create() {&#10; scope.puzzle = slidingPuzzle(rows, cols);&#10;&#10; if (attrs.api) {&#10; scope.<span style="background-color:yellow;padding:2px">api</span> = scope.puzzle;&#10; }&#10;&#10; tile();&#10; }
520
+ </code>
521
+ </pre>
522
+ </div>
523
+ </div> <!-- end row -->
524
+
525
+ <div class="row text-left">
526
+ <div class="col-md-6">
527
+ <h2> ./test/data/angular_puzzle/index.html</h2>
528
+ <pre>
529
+ <code class="language-html"}}>
530
+ &#9;&#9;&#9;&#9;&#60;div class=&#34;src&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;input type=&#34;text&#34; ng-model=&#34;puzzle.src&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;moves: &#60;strong&#62;{{puzzle.api.moves}}&#60;/strong&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;solved: &#60;strong&#62;{{puzzle.<span style="background-color:yellow;padding:2px">api</span>.isSolved()}}&#60;/strong&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;size&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;
531
+ </code>
532
+ </pre>
533
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
534
+ </div>
535
+ <div class="col-md-6">
536
+ <h2> ./test/data/angular_puzzle/slidingPuzzle.js</h2>
537
+ <pre>
538
+ <code class="language-javascript">
539
+ image = new Image();&#10;&#10; function create() {&#10; scope.puzzle = slidingPuzzle(rows, cols);&#10;&#10; if (attrs.<span style="background-color:yellow;padding:2px">api</span>) {&#10; scope.api = scope.puzzle;&#10; }&#10;&#10; tile();&#10; }
540
+ </code>
541
+ </pre>
542
+ </div>
543
+ </div> <!-- end row -->
544
+
545
+ <div class="row text-left">
546
+ <div class="col-md-6">
547
+ <h2> ./test/data/angular_puzzle/index.html</h2>
548
+ <pre>
549
+ <code class="language-html"}}>
550
+ &#9;&#9;&#9;&#9;&#60;div class=&#34;src&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;input type=&#34;text&#34; ng-model=&#34;puzzle.src&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;moves: &#60;strong&#62;{{puzzle.api.moves}}&#60;/strong&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;solved: &#60;strong&#62;{{puzzle.<span style="background-color:yellow;padding:2px">api</span>.isSolved()}}&#60;/strong&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;size&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;
551
+ </code>
552
+ </pre>
553
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
554
+ </div>
555
+ <div class="col-md-6">
556
+ <h2> ./test/data/angular_puzzle/slidingPuzzle.js</h2>
557
+ <pre>
558
+ <code class="language-javascript">
559
+ &#10; function create() {&#10; scope.puzzle = slidingPuzzle(rows, cols);&#10;&#10; if (attrs.api) {&#10; scope.<span style="background-color:yellow;padding:2px">api</span> = scope.puzzle;&#10; }&#10;&#10; tile();&#10; }
560
+ </code>
561
+ </pre>
562
+ </div>
563
+ </div> <!-- end row -->
564
+
565
+ <div class="row text-left">
566
+ <div class="col-md-6">
567
+ <h2> ./test/data/angular_puzzle/index.html</h2>
568
+ <pre>
569
+ <code class="language-html"}}>
570
+ &#9;&#9;&#9;&#9;&#9;solved: &#60;strong&#62;{{puzzle.api.isSolved()}}&#60;/strong&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;size&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.<span style="background-color:yellow;padding:2px">api</span>.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;
571
+ </code>
572
+ </pre>
573
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
574
+ </div>
575
+ <div class="col-md-6">
576
+ <h2> ./test/data/angular_puzzle/slidingPuzzle.js</h2>
577
+ <pre>
578
+ <code class="language-javascript">
579
+ image = new Image();&#10;&#10; function create() {&#10; scope.puzzle = slidingPuzzle(rows, cols);&#10;&#10; if (attrs.<span style="background-color:yellow;padding:2px">api</span>) {&#10; scope.api = scope.puzzle;&#10; }&#10;&#10; tile();&#10; }
580
+ </code>
581
+ </pre>
582
+ </div>
583
+ </div> <!-- end row -->
584
+
585
+ <div class="row text-left">
586
+ <div class="col-md-6">
587
+ <h2> ./test/data/angular_puzzle/index.html</h2>
588
+ <pre>
589
+ <code class="language-html"}}>
590
+ &#9;&#9;&#9;&#9;&#9;solved: &#60;strong&#62;{{puzzle.api.isSolved()}}&#60;/strong&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;size&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.<span style="background-color:yellow;padding:2px">api</span>.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;
591
+ </code>
592
+ </pre>
593
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
594
+ </div>
595
+ <div class="col-md-6">
596
+ <h2> ./test/data/angular_puzzle/slidingPuzzle.js</h2>
597
+ <pre>
598
+ <code class="language-javascript">
599
+ &#10; function create() {&#10; scope.puzzle = slidingPuzzle(rows, cols);&#10;&#10; if (attrs.api) {&#10; scope.<span style="background-color:yellow;padding:2px">api</span> = scope.puzzle;&#10; }&#10;&#10; tile();&#10; }
600
+ </code>
601
+ </pre>
602
+ </div>
603
+ </div> <!-- end row -->
604
+
605
+ <div class="row text-left">
606
+ <div class="col-md-6">
607
+ <h2> ./test/data/angular_puzzle/index.html</h2>
608
+ <pre>
609
+ <code class="language-html"}}>
610
+ &#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;size&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.<span style="background-color:yellow;padding:2px">api</span>.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;&#10;&#9;&#60;/script&#62;
611
+ </code>
612
+ </pre>
613
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
614
+ </div>
615
+ <div class="col-md-6">
616
+ <h2> ./test/data/angular_puzzle/slidingPuzzle.js</h2>
617
+ <pre>
618
+ <code class="language-javascript">
619
+ image = new Image();&#10;&#10; function create() {&#10; scope.puzzle = slidingPuzzle(rows, cols);&#10;&#10; if (attrs.<span style="background-color:yellow;padding:2px">api</span>) {&#10; scope.api = scope.puzzle;&#10; }&#10;&#10; tile();&#10; }
620
+ </code>
621
+ </pre>
622
+ </div>
623
+ </div> <!-- end row -->
624
+
625
+ <div class="row text-left">
626
+ <div class="col-md-6">
627
+ <h2> ./test/data/angular_puzzle/index.html</h2>
628
+ <pre>
629
+ <code class="language-html"}}>
630
+ &#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;size&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.<span style="background-color:yellow;padding:2px">api</span>.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;&#10;&#9;&#60;/script&#62;
631
+ </code>
632
+ </pre>
633
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
634
+ </div>
635
+ <div class="col-md-6">
636
+ <h2> ./test/data/angular_puzzle/slidingPuzzle.js</h2>
637
+ <pre>
638
+ <code class="language-javascript">
639
+ &#10; function create() {&#10; scope.puzzle = slidingPuzzle(rows, cols);&#10;&#10; if (attrs.api) {&#10; scope.<span style="background-color:yellow;padding:2px">api</span> = scope.puzzle;&#10; }&#10;&#10; tile();&#10; }
640
+ </code>
641
+ </pre>
642
+ </div>
643
+ </div> <!-- end row -->
644
+
645
+ <div class="row text-left">
646
+ <div class="col-md-6">
647
+ <h2> ./test/data/angular_puzzle/index.html</h2>
648
+ <pre>
649
+ <code class="language-html"}}>
650
+ &#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle <span style="background-color:yellow;padding:2px">api=&#34;puzzle.api&#34; </span>size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;&#10;&#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;
651
+ </code>
652
+ </pre>
653
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
654
+ </div>
655
+ <div class="col-md-6">
656
+ <h2> ./test/data/angular_puzzle/slidingPuzzle.js</h2>
657
+ <pre>
658
+ <code class="language-javascript">
659
+ image = new Image();&#10;&#10; function create() {&#10; scope.puzzle = slidingPuzzle(rows, cols);&#10;&#10; if (attrs.<span style="background-color:yellow;padding:2px">api</span>) {&#10; scope.api = scope.puzzle;&#10; }&#10;&#10; tile();&#10; }
660
+ </code>
661
+ </pre>
662
+ </div>
663
+ </div> <!-- end row -->
664
+
665
+ <div class="row text-left">
666
+ <div class="col-md-6">
667
+ <h2> ./test/data/angular_puzzle/index.html</h2>
668
+ <pre>
669
+ <code class="language-html"}}>
670
+ &#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle <span style="background-color:yellow;padding:2px">api=&#34;puzzle.api&#34; </span>size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;&#10;&#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;
671
+ </code>
672
+ </pre>
673
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
674
+ </div>
675
+ <div class="col-md-6">
676
+ <h2> ./test/data/angular_puzzle/slidingPuzzle.js</h2>
677
+ <pre>
678
+ <code class="language-javascript">
679
+ &#10; function create() {&#10; scope.puzzle = slidingPuzzle(rows, cols);&#10;&#10; if (attrs.api) {&#10; scope.<span style="background-color:yellow;padding:2px">api</span> = scope.puzzle;&#10; }&#10;&#10; tile();&#10; }
680
+ </code>
681
+ </pre>
682
+ </div>
683
+ </div> <!-- end row -->
684
+
685
+ <div class="row text-left">
686
+ <div class="col-md-6">
687
+ <h2> ./test/data/angular_puzzle/index.html</h2>
688
+ <pre>
689
+ <code class="language-html"}}>
690
+ &#9;&#9;&#9;&#60;ul class=&#34;words&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;li ng-repeat=&#34;word in puzzle.words&#34; ng-class=&#34;{&#39;found&#39;: word.found}&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;{{word.name}}&#10;&#9;&#9;&#9;&#9;&#60;/li&#62;&#10;&#9;&#9;&#9;&#60;/ul&#62;&#10;&#9;&#9;&#9;&#60;word-search-puzzle matrix=&#34;matrix&#34; words=&#34;words&#34; <span style="background-color:yellow;padding:2px">api=&#34;puzzle&#34;&#62;</span>&#60;/word-search-puzzle&#62;&#10;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.solve()&#34; ng-show=&#34;!puzzle.solved&#34; class=&#34;solve&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;strong ng-show=&#34;puzzle.solved&#34; ng-show=&#34;puzzle.solved&#34;&#62;Solved!&#60;/strong&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/div&#62;
691
+ </code>
692
+ </pre>
693
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
694
+ </div>
695
+ <div class="col-md-6">
696
+ <h2> ./test/data/angular_puzzle/wordSearchPuzzle.js</h2>
697
+ <pre>
698
+ <code class="language-javascript">
699
+ // setup puzzle&#10; scope.$watch(&#39;matrix&#39;, function(matrix) {&#10; scope.puzzle = wordSearchPuzzle(matrix, scope.words);&#10;&#10; // link service&#10; if (attrs.<span style="background-color:yellow;padding:2px">api</span>) {&#10; scope.api = scope.puzzle;&#10; }&#10; });&#10;&#10; /**
700
+ </code>
701
+ </pre>
702
+ </div>
703
+ </div> <!-- end row -->
704
+
705
+ <div class="row text-left">
706
+ <div class="col-md-6">
707
+ <h2> ./test/data/angular_puzzle/index.html</h2>
708
+ <pre>
709
+ <code class="language-html"}}>
710
+ &#9;&#9;&#9;&#60;ul class=&#34;words&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;li ng-repeat=&#34;word in puzzle.words&#34; ng-class=&#34;{&#39;found&#39;: word.found}&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;{{word.name}}&#10;&#9;&#9;&#9;&#9;&#60;/li&#62;&#10;&#9;&#9;&#9;&#60;/ul&#62;&#10;&#9;&#9;&#9;&#60;word-search-puzzle matrix=&#34;matrix&#34; words=&#34;words&#34; <span style="background-color:yellow;padding:2px">api=&#34;puzzle&#34;&#62;</span>&#60;/word-search-puzzle&#62;&#10;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.solve()&#34; ng-show=&#34;!puzzle.solved&#34; class=&#34;solve&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;strong ng-show=&#34;puzzle.solved&#34; ng-show=&#34;puzzle.solved&#34;&#62;Solved!&#60;/strong&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/div&#62;
711
+ </code>
712
+ </pre>
713
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
714
+ </div>
715
+ <div class="col-md-6">
716
+ <h2> ./test/data/angular_puzzle/wordSearchPuzzle.js</h2>
717
+ <pre>
718
+ <code class="language-javascript">
719
+ scope.$watch(&#39;matrix&#39;, function(matrix) {&#10; scope.puzzle = wordSearchPuzzle(matrix, scope.words);&#10;&#10; // link service&#10; if (attrs.api) {&#10; scope.<span style="background-color:yellow;padding:2px">api</span> = scope.puzzle;&#10; }&#10; });&#10;&#10; /**&#10; * Selected items
720
+ </code>
721
+ </pre>
722
+ </div>
723
+ </div> <!-- end row -->
724
+
725
+ <div class="row text-left">
726
+ <div class="col-md-6">
727
+ <h2> ./test/data/angular_puzzle/index.html</h2>
728
+ <pre>
729
+ <code class="language-html"}}>
730
+ &#9;&#9;&#9;&#9;&#60;div class=&#34;src&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;input type=&#34;text&#34; ng-model=&#34;puzzle.src&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;moves: &#60;strong&#62;{{puzzle.api.moves}}&#60;/strong&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;solved: &#60;strong&#62;{{puzzle.api.<span style="background-color:yellow;padding:2px">isSolved</span>()}}&#60;/strong&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;size&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;
731
+ </code>
732
+ </pre>
733
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
734
+ </div>
735
+ <div class="col-md-6">
736
+ <h2> ./test/data/angular_puzzle/slidingPuzzle.js</h2>
737
+ <pre>
738
+ <code class="language-javascript">
739
+ &#10; /**&#10; * Is solved?&#10; * @type {Boolean}&#10; */&#10; this.<span style="background-color:yellow;padding:2px">isSolved</span> = function() {&#10; var id = 1;&#10; for (var row = 0; row &#60; rows; row++) {&#10; for (var col = 0; col &#60; cols; col++) {&#10; if (this.grid[row][col].id !== id++) {&#10; return false;
740
+ </code>
741
+ </pre>
742
+ </div>
743
+ </div> <!-- end row -->
744
+
745
+ <div class="row text-left">
746
+ <div class="col-md-6">
747
+ <h2> ./test/data/angular_puzzle/index.html</h2>
748
+ <pre>
749
+ <code class="language-html"}}>
750
+ &#9;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;moves: &#60;strong&#62;{{puzzle.api.moves}}&#60;/strong&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;solved: &#60;strong&#62;{{puzzle.api.isSolved()}}&#60;/strong&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;size&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.<span style="background-color:yellow;padding:2px">rows</span>&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;
751
+ </code>
752
+ </pre>
753
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
754
+ </div>
755
+ <div class="col-md-6">
756
+ <h2> ./test/data/angular_puzzle/app.js</h2>
757
+ <pre>
758
+ <code class="language-javascript">
759
+ /**&#10; * Advanced sliding puzzle controller&#10; */&#10;app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { src: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, <span style="background-color:yellow;padding:2px">rows</span>: 4, cols: 4 },&#10; { src: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, rows: 3, cols: 3 },&#10; { src: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, rows: 4, cols: 3 }&#10; ];&#10;});
760
+ </code>
761
+ </pre>
762
+ </div>
763
+ </div> <!-- end row -->
764
+
765
+ <div class="row text-left">
766
+ <div class="col-md-6">
767
+ <h2> ./test/data/angular_puzzle/index.html</h2>
768
+ <pre>
769
+ <code class="language-html"}}>
770
+ &#9;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;moves: &#60;strong&#62;{{puzzle.api.moves}}&#60;/strong&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;solved: &#60;strong&#62;{{puzzle.api.isSolved()}}&#60;/strong&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;size&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.<span style="background-color:yellow;padding:2px">rows</span>&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;
771
+ </code>
772
+ </pre>
773
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
774
+ </div>
775
+ <div class="col-md-6">
776
+ <h2> ./test/data/angular_puzzle/app.js</h2>
777
+ <pre>
778
+ <code class="language-javascript">
779
+ * Advanced sliding puzzle controller&#10; */&#10; app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { src: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, rows: 4, cols: 4 },&#10; { src: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, <span style="background-color:yellow;padding:2px">rows</span>: 3, cols: 3 },&#10; { src: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, rows: 4, cols: 3 }&#10; ];&#10; });&#10;&#10; /**
780
+ </code>
781
+ </pre>
782
+ </div>
783
+ </div> <!-- end row -->
784
+
785
+ <div class="row text-left">
786
+ <div class="col-md-6">
787
+ <h2> ./test/data/angular_puzzle/index.html</h2>
788
+ <pre>
789
+ <code class="language-html"}}>
790
+ &#9;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;moves: &#60;strong&#62;{{puzzle.api.moves}}&#60;/strong&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;solved: &#60;strong&#62;{{puzzle.api.isSolved()}}&#60;/strong&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;size&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.<span style="background-color:yellow;padding:2px">rows</span>&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;
791
+ </code>
792
+ </pre>
793
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
794
+ </div>
795
+ <div class="col-md-6">
796
+ <h2> ./test/data/angular_puzzle/app.js</h2>
797
+ <pre>
798
+ <code class="language-javascript">
799
+ */&#10; app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { src: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, rows: 4, cols: 4 },&#10; { src: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, rows: 3, cols: 3 },&#10; { src: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, <span style="background-color:yellow;padding:2px">rows</span>: 4, cols: 3 }&#10; ];&#10; });&#10;&#10; /**&#10; * Word search puzzle controller
800
+ </code>
801
+ </pre>
802
+ </div>
803
+ </div> <!-- end row -->
804
+
805
+ <div class="row text-left">
806
+ <div class="col-md-6">
807
+ <h2> ./test/data/angular_puzzle/index.html</h2>
808
+ <pre>
809
+ <code class="language-html"}}>
810
+ &#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.<span style="background-color:yellow;padding:2px">rows</span>}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;&#10;&#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;
811
+ </code>
812
+ </pre>
813
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
814
+ </div>
815
+ <div class="col-md-6">
816
+ <h2> ./test/data/angular_puzzle/app.js</h2>
817
+ <pre>
818
+ <code class="language-javascript">
819
+ /**&#10; * Advanced sliding puzzle controller&#10; */&#10;app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { src: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, <span style="background-color:yellow;padding:2px">rows</span>: 4, cols: 4 },&#10; { src: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, rows: 3, cols: 3 },&#10; { src: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, rows: 4, cols: 3 }&#10; ];&#10;});
820
+ </code>
821
+ </pre>
822
+ </div>
823
+ </div> <!-- end row -->
824
+
825
+ <div class="row text-left">
826
+ <div class="col-md-6">
827
+ <h2> ./test/data/angular_puzzle/index.html</h2>
828
+ <pre>
829
+ <code class="language-html"}}>
830
+ &#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.<span style="background-color:yellow;padding:2px">rows</span>}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;&#10;&#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;
831
+ </code>
832
+ </pre>
833
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
834
+ </div>
835
+ <div class="col-md-6">
836
+ <h2> ./test/data/angular_puzzle/app.js</h2>
837
+ <pre>
838
+ <code class="language-javascript">
839
+ * Advanced sliding puzzle controller&#10; */&#10; app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { src: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, rows: 4, cols: 4 },&#10; { src: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, <span style="background-color:yellow;padding:2px">rows</span>: 3, cols: 3 },&#10; { src: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, rows: 4, cols: 3 }&#10; ];&#10; });&#10;&#10; /**
840
+ </code>
841
+ </pre>
842
+ </div>
843
+ </div> <!-- end row -->
844
+
845
+ <div class="row text-left">
846
+ <div class="col-md-6">
847
+ <h2> ./test/data/angular_puzzle/index.html</h2>
848
+ <pre>
849
+ <code class="language-html"}}>
850
+ &#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.<span style="background-color:yellow;padding:2px">rows</span>}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;&#10;&#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;
851
+ </code>
852
+ </pre>
853
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
854
+ </div>
855
+ <div class="col-md-6">
856
+ <h2> ./test/data/angular_puzzle/app.js</h2>
857
+ <pre>
858
+ <code class="language-javascript">
859
+ */&#10; app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { src: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, rows: 4, cols: 4 },&#10; { src: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, rows: 3, cols: 3 },&#10; { src: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, <span style="background-color:yellow;padding:2px">rows</span>: 4, cols: 3 }&#10; ];&#10; });&#10;&#10; /**&#10; * Word search puzzle controller
860
+ </code>
861
+ </pre>
862
+ </div>
863
+ </div> <!-- end row -->
864
+
865
+ <div class="row text-left">
866
+ <div class="col-md-6">
867
+ <h2> ./test/data/angular_puzzle/index.html</h2>
868
+ <pre>
869
+ <code class="language-html"}}>
870
+ &#9;&#9;&#9;&#9;&#9;moves: &#60;strong&#62;{{puzzle.api.moves}}&#60;/strong&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;solved: &#60;strong&#62;{{puzzle.api.isSolved()}}&#60;/strong&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;size&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.<span style="background-color:yellow;padding:2px">cols</span>&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;
871
+ </code>
872
+ </pre>
873
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
874
+ </div>
875
+ <div class="col-md-6">
876
+ <h2> ./test/data/angular_puzzle/app.js</h2>
877
+ <pre>
878
+ <code class="language-javascript">
879
+ /**&#10; * Advanced sliding puzzle controller&#10; */&#10;app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { src: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, rows: 4, <span style="background-color:yellow;padding:2px">cols</span>: 4 },&#10; { src: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, rows: 3, cols: 3 },&#10; { src: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, rows: 4, cols: 3 }&#10; ];&#10;});
880
+ </code>
881
+ </pre>
882
+ </div>
883
+ </div> <!-- end row -->
884
+
885
+ <div class="row text-left">
886
+ <div class="col-md-6">
887
+ <h2> ./test/data/angular_puzzle/index.html</h2>
888
+ <pre>
889
+ <code class="language-html"}}>
890
+ &#9;&#9;&#9;&#9;&#9;moves: &#60;strong&#62;{{puzzle.api.moves}}&#60;/strong&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;solved: &#60;strong&#62;{{puzzle.api.isSolved()}}&#60;/strong&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;size&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.<span style="background-color:yellow;padding:2px">cols</span>&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;
891
+ </code>
892
+ </pre>
893
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
894
+ </div>
895
+ <div class="col-md-6">
896
+ <h2> ./test/data/angular_puzzle/app.js</h2>
897
+ <pre>
898
+ <code class="language-javascript">
899
+ * Advanced sliding puzzle controller&#10; */&#10; app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { src: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, rows: 4, cols: 4 },&#10; { src: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, rows: 3, <span style="background-color:yellow;padding:2px">cols</span>: 3 },&#10; { src: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, rows: 4, cols: 3 }&#10; ];&#10; });&#10;&#10; /**
900
+ </code>
901
+ </pre>
902
+ </div>
903
+ </div> <!-- end row -->
904
+
905
+ <div class="row text-left">
906
+ <div class="col-md-6">
907
+ <h2> ./test/data/angular_puzzle/index.html</h2>
908
+ <pre>
909
+ <code class="language-html"}}>
910
+ &#9;&#9;&#9;&#9;&#9;moves: &#60;strong&#62;{{puzzle.api.moves}}&#60;/strong&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;solved: &#60;strong&#62;{{puzzle.api.isSolved()}}&#60;/strong&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;size&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.<span style="background-color:yellow;padding:2px">cols</span>&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;
911
+ </code>
912
+ </pre>
913
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
914
+ </div>
915
+ <div class="col-md-6">
916
+ <h2> ./test/data/angular_puzzle/app.js</h2>
917
+ <pre>
918
+ <code class="language-javascript">
919
+ */&#10; app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { src: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, rows: 4, cols: 4 },&#10; { src: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, rows: 3, cols: 3 },&#10; { src: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, rows: 4, <span style="background-color:yellow;padding:2px">cols</span>: 3 }&#10; ];&#10; });&#10;&#10; /**&#10; * Word search puzzle controller
920
+ </code>
921
+ </pre>
922
+ </div>
923
+ </div> <!-- end row -->
924
+
925
+ <div class="row text-left">
926
+ <div class="col-md-6">
927
+ <h2> ./test/data/angular_puzzle/index.html</h2>
928
+ <pre>
929
+ <code class="language-html"}}>
930
+ &#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.<span style="background-color:yellow;padding:2px">cols</span>}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;&#10;&#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;
931
+ </code>
932
+ </pre>
933
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
934
+ </div>
935
+ <div class="col-md-6">
936
+ <h2> ./test/data/angular_puzzle/app.js</h2>
937
+ <pre>
938
+ <code class="language-javascript">
939
+ /**&#10; * Advanced sliding puzzle controller&#10; */&#10;app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { src: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, rows: 4, <span style="background-color:yellow;padding:2px">cols</span>: 4 },&#10; { src: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, rows: 3, cols: 3 },&#10; { src: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, rows: 4, cols: 3 }&#10; ];&#10;});
940
+ </code>
941
+ </pre>
942
+ </div>
943
+ </div> <!-- end row -->
944
+
945
+ <div class="row text-left">
946
+ <div class="col-md-6">
947
+ <h2> ./test/data/angular_puzzle/index.html</h2>
948
+ <pre>
949
+ <code class="language-html"}}>
950
+ &#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.<span style="background-color:yellow;padding:2px">cols</span>}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;&#10;&#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;
951
+ </code>
952
+ </pre>
953
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
954
+ </div>
955
+ <div class="col-md-6">
956
+ <h2> ./test/data/angular_puzzle/app.js</h2>
957
+ <pre>
958
+ <code class="language-javascript">
959
+ * Advanced sliding puzzle controller&#10; */&#10; app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { src: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, rows: 4, cols: 4 },&#10; { src: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, rows: 3, <span style="background-color:yellow;padding:2px">cols</span>: 3 },&#10; { src: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, rows: 4, cols: 3 }&#10; ];&#10; });&#10;&#10; /**
960
+ </code>
961
+ </pre>
962
+ </div>
963
+ </div> <!-- end row -->
964
+
965
+ <div class="row text-left">
966
+ <div class="col-md-6">
967
+ <h2> ./test/data/angular_puzzle/index.html</h2>
968
+ <pre>
969
+ <code class="language-html"}}>
970
+ &#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.<span style="background-color:yellow;padding:2px">cols</span>}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;&#10;&#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;
971
+ </code>
972
+ </pre>
973
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
974
+ </div>
975
+ <div class="col-md-6">
976
+ <h2> ./test/data/angular_puzzle/app.js</h2>
977
+ <pre>
978
+ <code class="language-javascript">
979
+ */&#10; app.controller(&#39;slidingAdvancedCtrl&#39;, function($scope) {&#10; $scope.puzzles = [&#10; { src: &#39;./img/misko.jpg&#39;, title: &#39;Misko Hevery&#39;, rows: 4, cols: 4 },&#10; { src: &#39;./img/igor.jpg&#39;, title: &#39;Igor Minar&#39;, rows: 3, cols: 3 },&#10; { src: &#39;./img/vojta.jpg&#39;, title: &#39;Vojta Jina&#39;, rows: 4, <span style="background-color:yellow;padding:2px">cols</span>: 3 }&#10; ];&#10; });&#10;&#10; /**&#10; * Word search puzzle controller
980
+ </code>
981
+ </pre>
982
+ </div>
983
+ </div> <!-- end row -->
984
+
985
+ <div class="row text-left">
986
+ <div class="col-md-6">
987
+ <h2> ./test/data/angular_puzzle/index.html</h2>
988
+ <pre>
989
+ <code class="language-html"}}>
990
+ &#9;&#9;&#9;&#9;&#9;solved: &#60;strong&#62;{{puzzle.api.isSolved()}}&#60;/strong&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;size&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.<span style="background-color:yellow;padding:2px">shuffle</span>()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;
991
+ </code>
992
+ </pre>
993
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
994
+ </div>
995
+ <div class="col-md-6">
996
+ <h2> ./test/data/angular_puzzle/slidingPuzzle.js</h2>
997
+ <pre>
998
+ <code class="language-javascript">
999
+ };&#10;&#10; /**&#10; * Shuffles grid&#10; */&#10; this.<span style="background-color:yellow;padding:2px">shuffle</span> = function() {&#10; var tiles = [];&#10; this.traverse(function(tile) {&#10; tiles.push(tile);&#10; });&#10; shuffle(tiles);
1000
+ </code>
1001
+ </pre>
1002
+ </div>
1003
+ </div> <!-- end row -->
1004
+
1005
+ <div class="row text-left">
1006
+ <div class="col-md-6">
1007
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1008
+ <pre>
1009
+ <code class="language-html"}}>
1010
+ &#9;&#9;&#9;&#9;&#9;solved: &#60;strong&#62;{{puzzle.api.isSolved()}}&#60;/strong&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;size&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.<span style="background-color:yellow;padding:2px">shuffle</span>()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;
1011
+ </code>
1012
+ </pre>
1013
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1014
+ </div>
1015
+ <div class="col-md-6">
1016
+ <h2> ./test/data/angular_puzzle/slidingPuzzle.js</h2>
1017
+ <pre>
1018
+ <code class="language-javascript">
1019
+ this.shuffle = function() {&#10; var tiles = [];&#10; this.traverse(function(tile) {&#10; tiles.push(tile);&#10; });&#10; <span style="background-color:yellow;padding:2px">shuffle</span>(tiles);&#10; this.traverse(function(tile, row, col) {&#10; this.grid[row][col] = tiles.shift();&#10; });&#10; this.moves = 0;&#10;};
1020
+ </code>
1021
+ </pre>
1022
+ </div>
1023
+ </div> <!-- end row -->
1024
+
1025
+ <div class="row text-left">
1026
+ <div class="col-md-6">
1027
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1028
+ <pre>
1029
+ <code class="language-html"}}>
1030
+ &#9;&#9;&#9;&#9;&#9;solved: &#60;strong&#62;{{puzzle.api.isSolved()}}&#60;/strong&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;size&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.<span style="background-color:yellow;padding:2px">shuffle</span>()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;
1031
+ </code>
1032
+ </pre>
1033
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1034
+ </div>
1035
+ <div class="col-md-6">
1036
+ <h2> ./test/data/angular_puzzle/slidingPuzzle.js</h2>
1037
+ <pre>
1038
+ <code class="language-javascript">
1039
+ height: height + &#39;px&#39;,&#10; background: (tile.empty ? &#39;none&#39; : &#34;url(&#39;&#34; + scope.src + &#34;&#39;) no-repeat -&#34; + (col * width) + &#39;px -&#39; + (row * height) + &#39;px&#39;)&#10; };&#10; });&#10;&#10; scope.puzzle.<span style="background-color:yellow;padding:2px">shuffle</span>();&#10; }&#10;&#10; attrs.$observe(&#39;size&#39;, function(size) {&#10; size = size.split(&#39;x&#39;);&#10; if (size[0] &#62;= 2 &#38;&#38; size[1] &#62;= 2) {
1040
+ </code>
1041
+ </pre>
1042
+ </div>
1043
+ </div> <!-- end row -->
1044
+
1045
+ <div class="row text-left">
1046
+ <div class="col-md-6">
1047
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1048
+ <pre>
1049
+ <code class="language-html"}}>
1050
+ &#9;&#9;&#9;&#9;&#9;solved: &#60;strong&#62;{{puzzle.api.isSolved()}}&#60;/strong&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;size&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;<span style="background-color:yellow;padding:2px">shuffle</span>&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;
1051
+ </code>
1052
+ </pre>
1053
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1054
+ </div>
1055
+ <div class="col-md-6">
1056
+ <h2> ./test/data/angular_puzzle/slidingPuzzle.js</h2>
1057
+ <pre>
1058
+ <code class="language-javascript">
1059
+ };&#10;&#10; /**&#10; * Shuffles grid&#10; */&#10; this.<span style="background-color:yellow;padding:2px">shuffle</span> = function() {&#10; var tiles = [];&#10; this.traverse(function(tile) {&#10; tiles.push(tile);&#10; });&#10; shuffle(tiles);
1060
+ </code>
1061
+ </pre>
1062
+ </div>
1063
+ </div> <!-- end row -->
1064
+
1065
+ <div class="row text-left">
1066
+ <div class="col-md-6">
1067
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1068
+ <pre>
1069
+ <code class="language-html"}}>
1070
+ &#9;&#9;&#9;&#9;&#9;solved: &#60;strong&#62;{{puzzle.api.isSolved()}}&#60;/strong&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;size&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;<span style="background-color:yellow;padding:2px">shuffle</span>&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;
1071
+ </code>
1072
+ </pre>
1073
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1074
+ </div>
1075
+ <div class="col-md-6">
1076
+ <h2> ./test/data/angular_puzzle/slidingPuzzle.js</h2>
1077
+ <pre>
1078
+ <code class="language-javascript">
1079
+ this.shuffle = function() {&#10; var tiles = [];&#10; this.traverse(function(tile) {&#10; tiles.push(tile);&#10; });&#10; <span style="background-color:yellow;padding:2px">shuffle</span>(tiles);&#10; this.traverse(function(tile, row, col) {&#10; this.grid[row][col] = tiles.shift();&#10; });&#10; this.moves = 0;&#10;};
1080
+ </code>
1081
+ </pre>
1082
+ </div>
1083
+ </div> <!-- end row -->
1084
+
1085
+ <div class="row text-left">
1086
+ <div class="col-md-6">
1087
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1088
+ <pre>
1089
+ <code class="language-html"}}>
1090
+ &#9;&#9;&#9;&#9;&#9;solved: &#60;strong&#62;{{puzzle.api.isSolved()}}&#60;/strong&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;size&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;<span style="background-color:yellow;padding:2px">shuffle</span>&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;
1091
+ </code>
1092
+ </pre>
1093
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1094
+ </div>
1095
+ <div class="col-md-6">
1096
+ <h2> ./test/data/angular_puzzle/slidingPuzzle.js</h2>
1097
+ <pre>
1098
+ <code class="language-javascript">
1099
+ height: height + &#39;px&#39;,&#10; background: (tile.empty ? &#39;none&#39; : &#34;url(&#39;&#34; + scope.src + &#34;&#39;) no-repeat -&#34; + (col * width) + &#39;px -&#39; + (row * height) + &#39;px&#39;)&#10; };&#10; });&#10;&#10; scope.puzzle.<span style="background-color:yellow;padding:2px">shuffle</span>();&#10; }&#10;&#10; attrs.$observe(&#39;size&#39;, function(size) {&#10; size = size.split(&#39;x&#39;);&#10; if (size[0] &#62;= 2 &#38;&#38; size[1] &#62;= 2) {
1100
+ </code>
1101
+ </pre>
1102
+ </div>
1103
+ </div> <!-- end row -->
1104
+
1105
+ <div class="row text-left">
1106
+ <div class="col-md-6">
1107
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1108
+ <pre>
1109
+ <code class="language-html"}}>
1110
+ &#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;size&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.<span style="background-color:yellow;padding:2px">solve</span>()&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;&#10;&#9;&#60;/script&#62;
1111
+ </code>
1112
+ </pre>
1113
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1114
+ </div>
1115
+ <div class="col-md-6">
1116
+ <h2> ./test/data/angular_puzzle/slidingPuzzle.js</h2>
1117
+ <pre>
1118
+ <code class="language-javascript">
1119
+ };&#10;&#10; /**&#10; * Solves puzzle&#10; */&#10; this.<span style="background-color:yellow;padding:2px">solve</span> = function() {&#10; var tiles = [];&#10; this.traverse(function(tile) {&#10; tiles.push(tile);&#10; });&#10; tiles.sort(function(x, y) {
1120
+ </code>
1121
+ </pre>
1122
+ </div>
1123
+ </div> <!-- end row -->
1124
+
1125
+ <div class="row text-left">
1126
+ <div class="col-md-6">
1127
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1128
+ <pre>
1129
+ <code class="language-html"}}>
1130
+ &#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;div class=&#34;size&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;rows: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.rows&#34; size=&#34;2&#34;/&#62;&#10;&#9;&#9;&#9;&#9;&#9;cols: &#60;input type=&#34;text&#34; ng-model=&#34;puzzle.cols&#34; size=&#34;2&#34;/&#62;&#60;br/&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.shuffle()&#34;&#62;shuffle&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.api.solve()&#34;&#62;<span style="background-color:yellow;padding:2px">solve</span>&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#9;&#9;&#60;sliding-puzzle api=&#34;puzzle.api&#34; size=&#34;{{puzzle.rows}}x{{puzzle.cols}}&#34; src=&#34;{{puzzle.src}}&#34;&#62;&#60;/sliding-puzzle&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;&#10;&#9;&#60;/script&#62;
1131
+ </code>
1132
+ </pre>
1133
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1134
+ </div>
1135
+ <div class="col-md-6">
1136
+ <h2> ./test/data/angular_puzzle/slidingPuzzle.js</h2>
1137
+ <pre>
1138
+ <code class="language-javascript">
1139
+ };&#10;&#10; /**&#10; * Solves puzzle&#10; */&#10; this.<span style="background-color:yellow;padding:2px">solve</span> = function() {&#10; var tiles = [];&#10; this.traverse(function(tile) {&#10; tiles.push(tile);&#10; });&#10; tiles.sort(function(x, y) {
1140
+ </code>
1141
+ </pre>
1142
+ </div>
1143
+ </div> <!-- end row -->
1144
+
1145
+ <div class="row text-left">
1146
+ <div class="col-md-6">
1147
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1148
+ <pre>
1149
+ <code class="language-html"}}>
1150
+ &#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/fieldset&#62;&#10;&#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;&#10;&#9;&#9;&#60;div id=&#34;word-search&#34; <span style="background-color:yellow;padding:2px">ng-controller=&#34;wordSearchCtrl&#34;&#62;</span>&#10;&#9;&#9;&#9;&#60;ul class=&#34;words&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;li ng-repeat=&#34;word in puzzle.words&#34; ng-class=&#34;{&#39;found&#39;: word.found}&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;{{word.name}}&#10;&#9;&#9;&#9;&#9;&#60;/li&#62;&#10;&#9;&#9;&#9;&#60;/ul&#62;
1151
+ </code>
1152
+ </pre>
1153
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1154
+ </div>
1155
+ <div class="col-md-6">
1156
+ <h2> ./test/data/angular_puzzle/app.js</h2>
1157
+ <pre>
1158
+ <code class="language-javascript">
1159
+ });&#10;&#10; /**&#10; * Word search puzzle controller&#10; */&#10; app.controller(<span style="background-color:yellow;padding:2px">&#39;wordSearchCtrl&#39;</span>, function($scope) {&#10; $scope.matrix = [&#10; [&#39;N&#39;, &#39;I&#39;, &#39;G&#39;, &#39;O&#39;, &#39;R&#39;, &#39;Y&#39;, &#39;G&#39;, &#39;S&#39;, &#39;T&#39;, &#39;T&#39;, &#39;A&#39;, &#39;N&#39;],&#10; [&#39;O&#39;, &#39;G&#39;, &#39;G&#39;, &#39;U&#39;, &#39;L&#39;, &#39;C&#39;, &#39;O&#39;, &#39;E&#39;, &#39;P&#39;, &#39;E&#39;, &#39;A&#39;, &#39;S&#39;],&#10; [&#39;I&#39;, &#39;N&#39;, &#39;N&#39;, &#39;R&#39;, &#39;M&#39;, &#39;N&#39;, &#39;O&#39;, &#39;R&#39;, &#39;I&#39;, &#39;M&#39;, &#39;E&#39;, &#39;C&#39;],&#10; [&#39;T&#39;, &#39;I&#39;, &#39;A&#39;, &#39;I&#39;, &#39;O&#39;, &#39;E&#39;, &#39;G&#39;, &#39;V&#39;, &#39;R&#39;, &#39;P&#39;, &#39;V&#39;, &#39;E&#39;],
1160
+ </code>
1161
+ </pre>
1162
+ </div>
1163
+ </div> <!-- end row -->
1164
+
1165
+ <div class="row text-left">
1166
+ <div class="col-md-6">
1167
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1168
+ <pre>
1169
+ <code class="language-html"}}>
1170
+ &#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;&#10;&#9;&#9;&#60;div id=&#34;word-search&#34; ng-controller=&#34;wordSearchCtrl&#34;&#62;&#10;&#9;&#9;&#9;&#60;ul class=&#34;words&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;li ng-repeat=&#34;word in puzzle.<span style="background-color:yellow;padding:2px">words</span>&#34; ng-class=&#34;{&#39;found&#39;: word.found}&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;{{word.name}}&#10;&#9;&#9;&#9;&#9;&#60;/li&#62;&#10;&#9;&#9;&#9;&#60;/ul&#62;&#10;&#9;&#9;&#9;&#60;word-search-puzzle matrix=&#34;matrix&#34; words=&#34;words&#34; api=&#34;puzzle&#34;&#62;&#60;/word-search-puzzle&#62;&#10;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;
1171
+ </code>
1172
+ </pre>
1173
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1174
+ </div>
1175
+ <div class="col-md-6">
1176
+ <h2> ./test/data/angular_puzzle/wordSearchPuzzle.js</h2>
1177
+ <pre>
1178
+ <code class="language-javascript">
1179
+ &#10; /**&#10; * Words&#10; * @type {Array}&#10; */&#10; this.<span style="background-color:yellow;padding:2px">words</span> = [];&#10;&#10; /**&#10; * Is solved?&#10; * @type {Boolean}&#10; */
1180
+ </code>
1181
+ </pre>
1182
+ </div>
1183
+ </div> <!-- end row -->
1184
+
1185
+ <div class="row text-left">
1186
+ <div class="col-md-6">
1187
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1188
+ <pre>
1189
+ <code class="language-html"}}>
1190
+ &#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;&#10;&#9;&#9;&#60;div id=&#34;word-search&#34; ng-controller=&#34;wordSearchCtrl&#34;&#62;&#10;&#9;&#9;&#9;&#60;ul class=&#34;words&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;li ng-repeat=&#34;word in puzzle.<span style="background-color:yellow;padding:2px">words</span>&#34; ng-class=&#34;{&#39;found&#39;: word.found}&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;{{word.name}}&#10;&#9;&#9;&#9;&#9;&#60;/li&#62;&#10;&#9;&#9;&#9;&#60;/ul&#62;&#10;&#9;&#9;&#9;&#60;word-search-puzzle matrix=&#34;matrix&#34; words=&#34;words&#34; api=&#34;puzzle&#34;&#62;&#60;/word-search-puzzle&#62;&#10;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;
1191
+ </code>
1192
+ </pre>
1193
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1194
+ </div>
1195
+ <div class="col-md-6">
1196
+ <h2> ./test/data/angular_puzzle/wordSearchPuzzle.js</h2>
1197
+ <pre>
1198
+ <code class="language-javascript">
1199
+ maxCol = col;&#10; }, this);&#10; maxRow = row;&#10; }, this);&#10; angular.forEach(words, function(word) {&#10; this.<span style="background-color:yellow;padding:2px">words</span>.push({&#10; name: word&#10; });&#10; }, this);&#10;&#10; /**
1200
+ </code>
1201
+ </pre>
1202
+ </div>
1203
+ </div> <!-- end row -->
1204
+
1205
+ <div class="row text-left">
1206
+ <div class="col-md-6">
1207
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1208
+ <pre>
1209
+ <code class="language-html"}}>
1210
+ &#9;&#9;&#9;&#60;ul class=&#34;words&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;li ng-repeat=&#34;word in puzzle.words&#34; ng-class=&#34;{&#39;found&#39;: word.found}&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;{{word.name}}&#10;&#9;&#9;&#9;&#9;&#60;/li&#62;&#10;&#9;&#9;&#9;&#60;/ul&#62;&#10;&#9;&#9;&#9;&#60;word-search-puzzle matrix=&#34;matrix&#34; <span style="background-color:yellow;padding:2px">words=&#34;words&#34; </span>api=&#34;puzzle&#34;&#62;&#60;/word-search-puzzle&#62;&#10;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.solve()&#34; ng-show=&#34;!puzzle.solved&#34; class=&#34;solve&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;strong ng-show=&#34;puzzle.solved&#34; ng-show=&#34;puzzle.solved&#34;&#62;Solved!&#60;/strong&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/div&#62;
1211
+ </code>
1212
+ </pre>
1213
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1214
+ </div>
1215
+ <div class="col-md-6">
1216
+ <h2> ./test/data/angular_puzzle/wordSearchPuzzle.js</h2>
1217
+ <pre>
1218
+ <code class="language-javascript">
1219
+ maxCol = col;&#10; }, this);&#10; maxRow = row;&#10; }, this);&#10; angular.forEach(words, function(word) {&#10; this.<span style="background-color:yellow;padding:2px">words</span>.push({&#10; name: word&#10; });&#10; }, this);&#10;&#10; /**
1220
+ </code>
1221
+ </pre>
1222
+ </div>
1223
+ </div> <!-- end row -->
1224
+
1225
+ <div class="row text-left">
1226
+ <div class="col-md-6">
1227
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1228
+ <pre>
1229
+ <code class="language-html"}}>
1230
+ &#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;&#10;&#9;&#9;&#60;div id=&#34;word-search&#34; ng-controller=&#34;wordSearchCtrl&#34;&#62;&#10;&#9;&#9;&#9;&#60;ul class=&#34;words&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;li ng-repeat=&#34;<span style="background-color:yellow;padding:2px">word</span> in puzzle.words&#34; ng-class=&#34;{&#39;found&#39;: word.found}&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;{{word.name}}&#10;&#9;&#9;&#9;&#9;&#60;/li&#62;&#10;&#9;&#9;&#9;&#60;/ul&#62;&#10;&#9;&#9;&#9;&#60;word-search-puzzle matrix=&#34;matrix&#34; words=&#34;words&#34; api=&#34;puzzle&#34;&#62;&#60;/word-search-puzzle&#62;&#10;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;
1231
+ </code>
1232
+ </pre>
1233
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1234
+ </div>
1235
+ <div class="col-md-6">
1236
+ <h2> ./test/data/angular_puzzle/wordSearchPuzzle.js</h2>
1237
+ <pre>
1238
+ <code class="language-javascript">
1239
+ this.matrix[row].push(item);&#10; maxCol = col;&#10; }, this);&#10; maxRow = row;&#10;}, this);&#10;angular.forEach(words, function(<span style="background-color:yellow;padding:2px">word</span>) {&#10; this.words.push({&#10; name: word&#10; });&#10;}, this);
1240
+ </code>
1241
+ </pre>
1242
+ </div>
1243
+ </div> <!-- end row -->
1244
+
1245
+ <div class="row text-left">
1246
+ <div class="col-md-6">
1247
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1248
+ <pre>
1249
+ <code class="language-html"}}>
1250
+ &#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;&#10;&#9;&#9;&#60;div id=&#34;word-search&#34; ng-controller=&#34;wordSearchCtrl&#34;&#62;&#10;&#9;&#9;&#9;&#60;ul class=&#34;words&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;li ng-repeat=&#34;word in puzzle.words&#34; ng-class=&#34;{<span style="background-color:yellow;padding:2px">&#39;found&#39;</span>: word.found}&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;{{word.name}}&#10;&#9;&#9;&#9;&#9;&#60;/li&#62;&#10;&#9;&#9;&#9;&#60;/ul&#62;&#10;&#9;&#9;&#9;&#60;word-search-puzzle matrix=&#34;matrix&#34; words=&#34;words&#34; api=&#34;puzzle&#34;&#62;&#60;/word-search-puzzle&#62;&#10;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;
1251
+ </code>
1252
+ </pre>
1253
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1254
+ </div>
1255
+ <div class="col-md-6">
1256
+ <h2> ./test/data/angular_puzzle/wordSearchPuzzle.js</h2>
1257
+ <pre>
1258
+ <code class="language-javascript">
1259
+ words.push(words[0].split(&#39;&#39;).reverse().join(&#39;&#39;));&#9;// word in reverse order (when selecting)&#10;&#10; // check words&#10; this.solved = true;&#10; angular.forEach(this.words, function(word) {&#10; if (word.<span style="background-color:yellow;padding:2px">found</span>) {&#10; return;&#10; }&#10; angular.forEach(words, function(itemWord) {&#10; if (word.name === itemWord) {&#10; word.found = true;
1260
+ </code>
1261
+ </pre>
1262
+ </div>
1263
+ </div> <!-- end row -->
1264
+
1265
+ <div class="row text-left">
1266
+ <div class="col-md-6">
1267
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1268
+ <pre>
1269
+ <code class="language-html"}}>
1270
+ &#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;&#10;&#9;&#9;&#60;div id=&#34;word-search&#34; ng-controller=&#34;wordSearchCtrl&#34;&#62;&#10;&#9;&#9;&#9;&#60;ul class=&#34;words&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;li ng-repeat=&#34;word in puzzle.words&#34; ng-class=&#34;{<span style="background-color:yellow;padding:2px">&#39;found&#39;</span>: word.found}&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;{{word.name}}&#10;&#9;&#9;&#9;&#9;&#60;/li&#62;&#10;&#9;&#9;&#9;&#60;/ul&#62;&#10;&#9;&#9;&#9;&#60;word-search-puzzle matrix=&#34;matrix&#34; words=&#34;words&#34; api=&#34;puzzle&#34;&#62;&#60;/word-search-puzzle&#62;&#10;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;
1271
+ </code>
1272
+ </pre>
1273
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1274
+ </div>
1275
+ <div class="col-md-6">
1276
+ <h2> ./test/data/angular_puzzle/wordSearchPuzzle.js</h2>
1277
+ <pre>
1278
+ <code class="language-javascript">
1279
+ if (word.found) {&#10; return;&#10;}&#10;angular.forEach(words, function(itemWord) {&#10; if (word.name === itemWord) {&#10; word.<span style="background-color:yellow;padding:2px">found</span> = true;&#10; angular.forEach(items, function(item) {&#10; item.found = true;&#10; });&#10; }&#10;});
1280
+ </code>
1281
+ </pre>
1282
+ </div>
1283
+ </div> <!-- end row -->
1284
+
1285
+ <div class="row text-left">
1286
+ <div class="col-md-6">
1287
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1288
+ <pre>
1289
+ <code class="language-html"}}>
1290
+ &#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;&#10;&#9;&#9;&#60;div id=&#34;word-search&#34; ng-controller=&#34;wordSearchCtrl&#34;&#62;&#10;&#9;&#9;&#9;&#60;ul class=&#34;words&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;li ng-repeat=&#34;word in puzzle.words&#34; ng-class=&#34;{<span style="background-color:yellow;padding:2px">&#39;found&#39;</span>: word.found}&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;{{word.name}}&#10;&#9;&#9;&#9;&#9;&#60;/li&#62;&#10;&#9;&#9;&#9;&#60;/ul&#62;&#10;&#9;&#9;&#9;&#60;word-search-puzzle matrix=&#34;matrix&#34; words=&#34;words&#34; api=&#34;puzzle&#34;&#62;&#60;/word-search-puzzle&#62;&#10;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;
1291
+ </code>
1292
+ </pre>
1293
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1294
+ </div>
1295
+ <div class="col-md-6">
1296
+ <h2> ./test/data/angular_puzzle/wordSearchPuzzle.js</h2>
1297
+ <pre>
1298
+ <code class="language-javascript">
1299
+ }&#10;angular.forEach(words, function(itemWord) {&#10; if (word.name === itemWord) {&#10; word.found = true;&#10; angular.forEach(items, function(item) {&#10; item.<span style="background-color:yellow;padding:2px">found</span> = true;&#10; });&#10; }&#10;});&#10;if (!word.found) {&#10; this.solved = false;
1300
+ </code>
1301
+ </pre>
1302
+ </div>
1303
+ </div> <!-- end row -->
1304
+
1305
+ <div class="row text-left">
1306
+ <div class="col-md-6">
1307
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1308
+ <pre>
1309
+ <code class="language-html"}}>
1310
+ &#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;&#10;&#9;&#9;&#60;div id=&#34;word-search&#34; ng-controller=&#34;wordSearchCtrl&#34;&#62;&#10;&#9;&#9;&#9;&#60;ul class=&#34;words&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;li ng-repeat=&#34;word in puzzle.words&#34; ng-class=&#34;{<span style="background-color:yellow;padding:2px">&#39;found&#39;</span>: word.found}&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;{{word.name}}&#10;&#9;&#9;&#9;&#9;&#60;/li&#62;&#10;&#9;&#9;&#9;&#60;/ul&#62;&#10;&#9;&#9;&#9;&#60;word-search-puzzle matrix=&#34;matrix&#34; words=&#34;words&#34; api=&#34;puzzle&#34;&#62;&#60;/word-search-puzzle&#62;&#10;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;
1311
+ </code>
1312
+ </pre>
1313
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1314
+ </div>
1315
+ <div class="col-md-6">
1316
+ <h2> ./test/data/angular_puzzle/wordSearchPuzzle.js</h2>
1317
+ <pre>
1318
+ <code class="language-javascript">
1319
+ angular.forEach(items, function(item) {&#10; item.found = true;&#10; });&#10; }&#10; });&#10; if (!word.<span style="background-color:yellow;padding:2px">found</span>) {&#10; this.solved = false;&#10; }&#10; }, this);&#10;};
1320
+ </code>
1321
+ </pre>
1322
+ </div>
1323
+ </div> <!-- end row -->
1324
+
1325
+ <div class="row text-left">
1326
+ <div class="col-md-6">
1327
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1328
+ <pre>
1329
+ <code class="language-html"}}>
1330
+ &#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;&#10;&#9;&#9;&#60;div id=&#34;word-search&#34; ng-controller=&#34;wordSearchCtrl&#34;&#62;&#10;&#9;&#9;&#9;&#60;ul class=&#34;words&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;li ng-repeat=&#34;word in puzzle.words&#34; ng-class=&#34;{&#39;found&#39;: word.<span style="background-color:yellow;padding:2px">found</span>}&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;{{word.name}}&#10;&#9;&#9;&#9;&#9;&#60;/li&#62;&#10;&#9;&#9;&#9;&#60;/ul&#62;&#10;&#9;&#9;&#9;&#60;word-search-puzzle matrix=&#34;matrix&#34; words=&#34;words&#34; api=&#34;puzzle&#34;&#62;&#60;/word-search-puzzle&#62;&#10;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;
1331
+ </code>
1332
+ </pre>
1333
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1334
+ </div>
1335
+ <div class="col-md-6">
1336
+ <h2> ./test/data/angular_puzzle/wordSearchPuzzle.js</h2>
1337
+ <pre>
1338
+ <code class="language-javascript">
1339
+ words.push(words[0].split(&#39;&#39;).reverse().join(&#39;&#39;));&#9;// word in reverse order (when selecting)&#10;&#10; // check words&#10; this.solved = true;&#10; angular.forEach(this.words, function(word) {&#10; if (word.<span style="background-color:yellow;padding:2px">found</span>) {&#10; return;&#10; }&#10; angular.forEach(words, function(itemWord) {&#10; if (word.name === itemWord) {&#10; word.found = true;
1340
+ </code>
1341
+ </pre>
1342
+ </div>
1343
+ </div> <!-- end row -->
1344
+
1345
+ <div class="row text-left">
1346
+ <div class="col-md-6">
1347
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1348
+ <pre>
1349
+ <code class="language-html"}}>
1350
+ &#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;&#10;&#9;&#9;&#60;div id=&#34;word-search&#34; ng-controller=&#34;wordSearchCtrl&#34;&#62;&#10;&#9;&#9;&#9;&#60;ul class=&#34;words&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;li ng-repeat=&#34;word in puzzle.words&#34; ng-class=&#34;{&#39;found&#39;: word.<span style="background-color:yellow;padding:2px">found</span>}&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;{{word.name}}&#10;&#9;&#9;&#9;&#9;&#60;/li&#62;&#10;&#9;&#9;&#9;&#60;/ul&#62;&#10;&#9;&#9;&#9;&#60;word-search-puzzle matrix=&#34;matrix&#34; words=&#34;words&#34; api=&#34;puzzle&#34;&#62;&#60;/word-search-puzzle&#62;&#10;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;
1351
+ </code>
1352
+ </pre>
1353
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1354
+ </div>
1355
+ <div class="col-md-6">
1356
+ <h2> ./test/data/angular_puzzle/wordSearchPuzzle.js</h2>
1357
+ <pre>
1358
+ <code class="language-javascript">
1359
+ if (word.found) {&#10; return;&#10;}&#10;angular.forEach(words, function(itemWord) {&#10; if (word.name === itemWord) {&#10; word.<span style="background-color:yellow;padding:2px">found</span> = true;&#10; angular.forEach(items, function(item) {&#10; item.found = true;&#10; });&#10; }&#10;});
1360
+ </code>
1361
+ </pre>
1362
+ </div>
1363
+ </div> <!-- end row -->
1364
+
1365
+ <div class="row text-left">
1366
+ <div class="col-md-6">
1367
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1368
+ <pre>
1369
+ <code class="language-html"}}>
1370
+ &#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;&#10;&#9;&#9;&#60;div id=&#34;word-search&#34; ng-controller=&#34;wordSearchCtrl&#34;&#62;&#10;&#9;&#9;&#9;&#60;ul class=&#34;words&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;li ng-repeat=&#34;word in puzzle.words&#34; ng-class=&#34;{&#39;found&#39;: word.<span style="background-color:yellow;padding:2px">found</span>}&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;{{word.name}}&#10;&#9;&#9;&#9;&#9;&#60;/li&#62;&#10;&#9;&#9;&#9;&#60;/ul&#62;&#10;&#9;&#9;&#9;&#60;word-search-puzzle matrix=&#34;matrix&#34; words=&#34;words&#34; api=&#34;puzzle&#34;&#62;&#60;/word-search-puzzle&#62;&#10;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;
1371
+ </code>
1372
+ </pre>
1373
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1374
+ </div>
1375
+ <div class="col-md-6">
1376
+ <h2> ./test/data/angular_puzzle/wordSearchPuzzle.js</h2>
1377
+ <pre>
1378
+ <code class="language-javascript">
1379
+ }&#10;angular.forEach(words, function(itemWord) {&#10; if (word.name === itemWord) {&#10; word.found = true;&#10; angular.forEach(items, function(item) {&#10; item.<span style="background-color:yellow;padding:2px">found</span> = true;&#10; });&#10; }&#10;});&#10;if (!word.found) {&#10; this.solved = false;
1380
+ </code>
1381
+ </pre>
1382
+ </div>
1383
+ </div> <!-- end row -->
1384
+
1385
+ <div class="row text-left">
1386
+ <div class="col-md-6">
1387
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1388
+ <pre>
1389
+ <code class="language-html"}}>
1390
+ &#9;&#60;/script&#62;&#10;&#10;&#9;&#60;script type=&#34;text/ng-template&#34; id=&#34;word-search-puzzle&#34;&#62;&#10;&#9;&#9;&#60;div id=&#34;word-search&#34; ng-controller=&#34;wordSearchCtrl&#34;&#62;&#10;&#9;&#9;&#9;&#60;ul class=&#34;words&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;li ng-repeat=&#34;word in puzzle.words&#34; ng-class=&#34;{&#39;found&#39;: word.<span style="background-color:yellow;padding:2px">found</span>}&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;{{word.name}}&#10;&#9;&#9;&#9;&#9;&#60;/li&#62;&#10;&#9;&#9;&#9;&#60;/ul&#62;&#10;&#9;&#9;&#9;&#60;word-search-puzzle matrix=&#34;matrix&#34; words=&#34;words&#34; api=&#34;puzzle&#34;&#62;&#60;/word-search-puzzle&#62;&#10;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;
1391
+ </code>
1392
+ </pre>
1393
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1394
+ </div>
1395
+ <div class="col-md-6">
1396
+ <h2> ./test/data/angular_puzzle/wordSearchPuzzle.js</h2>
1397
+ <pre>
1398
+ <code class="language-javascript">
1399
+ angular.forEach(items, function(item) {&#10; item.found = true;&#10; });&#10; }&#10; });&#10; if (!word.<span style="background-color:yellow;padding:2px">found</span>) {&#10; this.solved = false;&#10; }&#10; }, this);&#10;};
1400
+ </code>
1401
+ </pre>
1402
+ </div>
1403
+ </div> <!-- end row -->
1404
+
1405
+ <div class="row text-left">
1406
+ <div class="col-md-6">
1407
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1408
+ <pre>
1409
+ <code class="language-html"}}>
1410
+ &#9;&#9;&#9;&#60;ul class=&#34;words&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;li ng-repeat=&#34;word in puzzle.words&#34; ng-class=&#34;{&#39;found&#39;: word.found}&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#9;{{word.name}}&#10;&#9;&#9;&#9;&#9;&#60;/li&#62;&#10;&#9;&#9;&#9;&#60;/ul&#62;&#10;&#9;&#9;&#9;&#60;word-search-puzzle <span style="background-color:yellow;padding:2px">matrix=&#34;matrix&#34; </span>words=&#34;words&#34; api=&#34;puzzle&#34;&#62;&#60;/word-search-puzzle&#62;&#10;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.solve()&#34; ng-show=&#34;!puzzle.solved&#34; class=&#34;solve&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;strong ng-show=&#34;puzzle.solved&#34; ng-show=&#34;puzzle.solved&#34;&#62;Solved!&#60;/strong&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/div&#62;
1411
+ </code>
1412
+ </pre>
1413
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1414
+ </div>
1415
+ <div class="col-md-6">
1416
+ <h2> ./test/data/angular_puzzle/wordSearchPuzzle.js</h2>
1417
+ <pre>
1418
+ <code class="language-javascript">
1419
+ },&#10; link: function(scope, element, attrs) {&#10; var selectFrom;&#10;&#10; // setup puzzle&#10; scope.$watch(&#39;matrix&#39;, function(<span style="background-color:yellow;padding:2px">matrix</span>) {&#10; scope.puzzle = wordSearchPuzzle(matrix, scope.words);&#10;&#10; // link service&#10; if (attrs.api) {&#10; scope.api = scope.puzzle;
1420
+ </code>
1421
+ </pre>
1422
+ </div>
1423
+ </div> <!-- end row -->
1424
+
1425
+ <div class="row text-left">
1426
+ <div class="col-md-6">
1427
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1428
+ <pre>
1429
+ <code class="language-html"}}>
1430
+ &#9;&#9;&#9;&#9;&#9;{{word.name}}&#10;&#9;&#9;&#9;&#9;&#60;/li&#62;&#10;&#9;&#9;&#9;&#60;/ul&#62;&#10;&#9;&#9;&#9;&#60;word-search-puzzle matrix=&#34;matrix&#34; words=&#34;words&#34; api=&#34;puzzle&#34;&#62;&#60;/word-search-puzzle&#62;&#10;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.solve()&#34; ng-show=&#34;!puzzle.<span style="background-color:yellow;padding:2px">solved</span>&#34; class=&#34;solve&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;strong ng-show=&#34;puzzle.solved&#34; ng-show=&#34;puzzle.solved&#34;&#62;Solved!&#60;/strong&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/div&#62;&#10;&#9;&#60;/script&#62;&#10;&#60;/body&#62;
1431
+ </code>
1432
+ </pre>
1433
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1434
+ </div>
1435
+ <div class="col-md-6">
1436
+ <h2> ./test/data/angular_puzzle/wordSearchPuzzle.js</h2>
1437
+ <pre>
1438
+ <code class="language-javascript">
1439
+ item.found = true;&#10; });&#10; }&#10; });&#10; if (!word.found) {&#10; this.<span style="background-color:yellow;padding:2px">solved</span> = false;&#10; }&#10; }, this);&#10; };&#10;&#10; /**
1440
+ </code>
1441
+ </pre>
1442
+ </div>
1443
+ </div> <!-- end row -->
1444
+
1445
+ <div class="row text-left">
1446
+ <div class="col-md-6">
1447
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1448
+ <pre>
1449
+ <code class="language-html"}}>
1450
+ &#9;&#9;&#9;&#9;&#60;/li&#62;&#10;&#9;&#9;&#9;&#60;/ul&#62;&#10;&#9;&#9;&#9;&#60;word-search-puzzle matrix=&#34;matrix&#34; words=&#34;words&#34; api=&#34;puzzle&#34;&#62;&#60;/word-search-puzzle&#62;&#10;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.solve()&#34; ng-show=&#34;!puzzle.solved&#34; class=&#34;solve&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;strong ng-show=&#34;puzzle.<span style="background-color:yellow;padding:2px">solved</span>&#34; ng-show=&#34;puzzle.solved&#34;&#62;Solved!&#60;/strong&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/div&#62;&#10;&#9;&#60;/script&#62;&#10;&#60;/body&#62;&#10;&#60;/html&#62;
1451
+ </code>
1452
+ </pre>
1453
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1454
+ </div>
1455
+ <div class="col-md-6">
1456
+ <h2> ./test/data/angular_puzzle/wordSearchPuzzle.js</h2>
1457
+ <pre>
1458
+ <code class="language-javascript">
1459
+ item.found = true;&#10; });&#10; }&#10; });&#10; if (!word.found) {&#10; this.<span style="background-color:yellow;padding:2px">solved</span> = false;&#10; }&#10; }, this);&#10; };&#10;&#10; /**
1460
+ </code>
1461
+ </pre>
1462
+ </div>
1463
+ </div> <!-- end row -->
1464
+
1465
+ <div class="row text-left">
1466
+ <div class="col-md-6">
1467
+ <h2> ./test/data/angular_puzzle/index.html</h2>
1468
+ <pre>
1469
+ <code class="language-html"}}>
1470
+ &#9;&#9;&#9;&#9;&#60;/li&#62;&#10;&#9;&#9;&#9;&#60;/ul&#62;&#10;&#9;&#9;&#9;&#60;word-search-puzzle matrix=&#34;matrix&#34; words=&#34;words&#34; api=&#34;puzzle&#34;&#62;&#60;/word-search-puzzle&#62;&#10;&#9;&#9;&#9;&#60;div class=&#34;status&#34;&#62;&#10;&#9;&#9;&#9;&#9;&#60;button ng-click=&#34;puzzle.solve()&#34; ng-show=&#34;!puzzle.solved&#34; class=&#34;solve&#34;&#62;solve&#60;/button&#62;&#10;&#9;&#9;&#9;&#9;&#60;strong ng-show=&#34;puzzle.solved&#34; ng-show=&#34;puzzle.<span style="background-color:yellow;padding:2px">solved</span>&#34;&#62;Solved!&#60;/strong&#62;&#10;&#9;&#9;&#9;&#60;/div&#62;&#10;&#9;&#9;&#60;/div&#62;&#10;&#9;&#60;/script&#62;&#10;&#60;/body&#62;&#10;&#60;/html&#62;
1471
+ </code>
1472
+ </pre>
1473
+ <!-- &ltp&gt<span style="color:red">TEST</span>&lt/p&gt -->
1474
+ </div>
1475
+ <div class="col-md-6">
1476
+ <h2> ./test/data/angular_puzzle/wordSearchPuzzle.js</h2>
1477
+ <pre>
1478
+ <code class="language-javascript">
1479
+ item.found = true;&#10; });&#10; }&#10; });&#10; if (!word.found) {&#10; this.<span style="background-color:yellow;padding:2px">solved</span> = false;&#10; }&#10; }, this);&#10; };&#10;&#10; /**
1480
+ </code>
1481
+ </pre>
1482
+ </div>
1483
+ </div> <!-- end row -->
1484
+
1485
+ </div>
1486
+
1487
+ <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
1488
+ <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
1489
+ <!-- Include all compiled plugins (below), or include individual files as needed -->
1490
+ <script src="js/bootstrap.min.js"></script>
1491
+ <script src="js/highlight.pack.js"></script>
1492
+ <script type="text/javascript">
1493
+ $(document).ready(function() {
1494
+ $('pre code').each(function(i, e) {
1495
+ console.log(e)
1496
+ hljs.highlightBlock(e);
1497
+ });
1498
+ });
1499
+ </script>
1500
+ </body>
1501
+ </html>