<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Emanuele Feronato &#187; Javascript</title>
	<atom:link href="http://www.emanueleferonato.com/category/javascript/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.emanueleferonato.com</link>
	<description>italian geek and PROgrammer</description>
	<lastBuildDate>Mon, 06 Feb 2012 14:28:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=</generator>
		<item>
		<title>Save the Totem: HTML5 game prototype made with Construct2</title>
		<link>http://www.emanueleferonato.com/2011/11/18/save-the-totem-html5-game-prototype-made-with-construct2/</link>
		<comments>http://www.emanueleferonato.com/2011/11/18/save-the-totem-html5-game-prototype-made-with-construct2/#comments</comments>
		<pubDate>Fri, 18 Nov 2011 14:50:12 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Game design]]></category>
		<category><![CDATA[Html]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=4848</guid>
		<description><![CDATA[A complete Totem Destroyer game prototype made with Construct2 dissected to make you see how everything was done.]]></description>
			<content:encoded><![CDATA[<p>As promised, let me show you how to make a game with <a href="http://www.scirra.com/construct2" target = "_blank">Construct2</a>.</p>
<p>First, let&#8217;s introduce the two main actors in the game: <strong>Layouts</strong> and <strong>Event sheets</strong>.</p>
<p><strong>Layouts</strong> are basically the equivalent of Flash <strong>Scenes</strong> and represent the &#8220;stuff&#8221; you place in your game, such as the splash screen, the level selection screen, the game itself, the game over screen, and so on.</p>
<p><strong>Event sheets</strong> contain what happens behind the scenes, such as events and subsequent actions.</p>
<p>While I recommend you to learn the bare bones (how to create a a project, how to import graphics, and so on) in the <a href="http://www.scirra.com/tutorials" target="_blank">official tutorial page</a>, I&#8217;ll show you the logic I used in the making of this little one-level game:</p>
<p><iframe frameborder = "0" src = "/stuff/totem_construct2/index.html" width="100%" height = "430"></iframe></p>
<p>First of all, let&#8217;s look at the project assets:</p>
<p><img src="/wp-content/uploads/2011/11/project.png" /></p>
<p>And now let&#8217;s see the game, layout by layout</p>
<p><strong>Splash Screen</strong></p>
<p>The splash screen just contains the background and a couple of texts: one with the name of the game, and one with the &#8220;click to play&#8221; message.</p>
<p>Once the player clicks anywhere on the screen, the game will begin, so the Event Sheet will be:</p>
<p><img src="/wp-content/uploads/2011/11/sheet01.png" /></p>
<p>You should read it this way: when an <code>On any click</code> event on the <code>Mouse</code> occurs, the <code>System</code> will make the action <code>Go to Game</code>.</p>
<p>That is, when the player clicks, the game begins.</p>
<p><strong>Game</strong></p>
<p>The game itself has just a few more events on the Event sheet. Let&#8217;s see them all:</p>
<p><img src="/wp-content/uploads/2011/11/sheet02.png" /></p>
<p>First, I am declaring a new global variable called <code>destroyed</code>. Now, look at the events:</p>
<p><strong>Event 1</strong>: on the start of the layout (think about <code>ADDED_TO_STAGE</code> if you love AS3) I am setting <code>destroyed</code> variable to <code>zero</code> and set the dynamic text to &#8220;Destroyed: 0/6&#8243;.</p>
<p>Look at the <code>&#038;</code> operator to concatenate strings.</p>
<p><strong>Event 2</strong>: this is a mouse event. When the player clicks with the left button on the small brick, the small brick is destroyed, the global variable <code>destroyed</code> is incremented and the dynamic text is updated.</p>
<p><strong>Event 3</strong>: same thing for the big brick, I just destroy it rather than updating everything for the sake of simplicity of this tutorial.</p>
<p><strong>Event 4</strong>: if the totem collides with the ground, the totem is destroyed, I show a game over message and set <code>destroyed</code> variable to <code>-1</code>.</p>
<p><strong>Event 5</strong>: if the mouse clicks anywhere and <code>destroyed</code> is equal to <code>-1</code> (game over), then restart this layout.</p>
<p><strong>Event 6</strong>: if <code>destroyed</code> is equal to 6 (game completed) show a congratulations message.</p>
<p><strong>Event 7</strong>: if the mouse clicks anywhere and <code>destroyed</code> is equal to <code>6</code> (game completed), then restart from the splash screen.</p>
<p>And that&#8217;s it, in a few minutes with a grand total of eight events this prototype is done. I will try to make a real game in a couple of days, and show you some ways to monetize HTML5 games.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2011/11/18/save-the-totem-html5-game-prototype-made-with-construct2/feed/</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>Make HTML5 games with no programming skills (even with Box2D physics) with Construct 2</title>
		<link>http://www.emanueleferonato.com/2011/11/15/make-html5-games-with-no-programming-skills-even-with-box2d-physics-with-construct-2/</link>
		<comments>http://www.emanueleferonato.com/2011/11/15/make-html5-games-with-no-programming-skills-even-with-box2d-physics-with-construct-2/#comments</comments>
		<pubDate>Tue, 15 Nov 2011 17:38:18 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Game design]]></category>
		<category><![CDATA[Html]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=4835</guid>
		<description><![CDATA[A brief look at <a href = "http://www.scirra.com/" target = "_blank" >Construct 2</a>, the engine to create HTML5 games with no programming skills required.]]></description>
			<content:encoded><![CDATA[<p>If you want to be an HTML game developer, but your programming skills aren&#8217;t that good, then <strong>Tom Gullen</strong> and his company (actually, his brother) will save your life with <strong><a href="http://www.scirra.com/construct2" target="_blank">Construct 2</a></strong>.</p>
<p><a href="http://www.scirra.com/construct2" target="_blank"><img src="/wp-content/uploads/2011/11/constructbig.jpg" /></a></p>
<p>Construct 2 is a visual editor that lets you make HTML5 games without writing a single line of code, thanks to its event editor which makes building and creating games visual and easy for beginners and advanced users alike.</p>
<p>Do you remember <a href="http://www.emanueleferonato.com/2009/03/06/full-totem-destroyer-prototype/">Totem Destroyer</a>? Look at the HTML5 version I made in 10 minutes (half of them spent googling for the graphic assets) thanks to Construct 2.</p>
<p><iframe frameborder = "0" src = "/stuff/totem_construct/index.html" width="100%" height = "430"></iframe></p>
<p>Click on the bricks to destroy them, don&#8217;t let the totem fall on the ground or it will get destroyed too.</p>
<p>Look at the physics.</p>
<p>Tomorrow I will publish the second part of the game, as well as the &#8220;build it in 5 minutes tutorial&#8221;.</p>
<p>Meanwhile, here is a brief list of all Construct 2 features:</p>
<p>* <strong>Physics Engine</strong> &#8211; with a couple of clicks make objects behave realistically.</p>
<p>* <strong>Facebook connection</strong> &#8211; publish your games to Facebook. Log in, post hi-scores and see friend&#8217;s scores — even from your own website. Make your games go viral.</p>
<p>* <strong>Make money from your games</strong> &#8211; publish your Construct 2 games to the Chrome Web Store. Bring your games to an audience of millions.</p>
<p>Stay tuned because I&#8217;ll talk about it quite a lot in the next days.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2011/11/15/make-html5-games-with-no-programming-skills-even-with-box2d-physics-with-construct-2/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Complete Bejeweled prototype made with jQuery</title>
		<link>http://www.emanueleferonato.com/2011/10/07/complete-bejeweled-prototype-made-wiht-jquery/</link>
		<comments>http://www.emanueleferonato.com/2011/10/07/complete-bejeweled-prototype-made-wiht-jquery/#comments</comments>
		<pubDate>Fri, 07 Oct 2011 14:25:00 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Game design]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=4724</guid>
		<description><![CDATA[A complete Bejeweled prototype with animations and combos made entirely with jQuery]]></description>
			<content:encoded><![CDATA[<p>Bejeweled is one of the best games to code to learn the basics of programming. I already showed you how to build a working prototype of the game in <a href="http://www.emanueleferonato.com/2011/03/24/flash-game-development-by-example-my-book-is-on-the-shelves/">my book</a>, and I also published a <a href="http://www.emanueleferonato.com/2010/12/16/complete-bejeweled-game-in-less-than-2kb/">2KB version of the game</a> (you can also find a more legible version <a href="http://www.emanueleferonato.com/2011/05/09/complete-bejeweled-game-in-less-than-2kb-legible-version/">here</a>).</p>
<p>This time I am going to show you a fully working jQuery version. Everything, from the containers <code>div</code>s to the styles, have been made with jQuery, there isn&#8217;t a single HTML or CSS line.</p>
<p>This is the result, featuring gem swap, multiple combos, and everything you need to have in a Bejeweled game:</p>
<p><iframe frameborder = "0" width = "640" height = "500" src = "/stuff/bejq/index.html" scrolling = "no"></iframe></p>
<p>And this is the source code, without any comment, but quite clear. I can make a step by step tutorial if I receive a good feedback.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;body&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;div id = &quot;gamefield&quot;&gt;&lt;/div&gt;&lt;div id = &quot;marker&quot;&gt;&lt;/div&gt;'</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><span style="color: #3366CC;">&quot;background-color&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;black&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;margin&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;0&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#marker&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><span style="color: #3366CC;">&quot;width&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;52px&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;height&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;52px&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;border&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;5px solid white&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;position&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;absolute&quot;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> selectedRow<span style="color: #339933;">=-</span><span style="color: #CC0000;">1</span>
  	<span style="color: #003366; font-weight: bold;">var</span> selectedCol<span style="color: #339933;">=-</span><span style="color: #CC0000;">1</span>
  	<span style="color: #003366; font-weight: bold;">var</span> posX<span style="color: #339933;">;</span>
  	<span style="color: #003366; font-weight: bold;">var</span> posY<span style="color: #339933;">;</span>
  	<span style="color: #003366; font-weight: bold;">var</span> jewels<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  	<span style="color: #003366; font-weight: bold;">var</span> movingItems<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
  	<span style="color: #003366; font-weight: bold;">var</span> gameState<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;pick&quot;</span><span style="color: #339933;">;</span>
  	<span style="color: #003366; font-weight: bold;">var</span> bgColors<span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;magenta&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;mediumblue&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;yellow&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;lime&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;cyan&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;orange&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;crimson&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;gray&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
  	<span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i<span style="color: #339933;">&lt;</span><span style="color: #CC0000;">8</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
     		jewels<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     		<span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>j<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>j<span style="color: #339933;">&lt;</span><span style="color: #CC0000;">8</span><span style="color: #339933;">;</span>j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
          		jewels<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">=-</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
     		<span style="color: #009900;">&#125;</span>
  	<span style="color: #009900;">&#125;</span>
	<span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i<span style="color: #339933;">&lt;</span><span style="color: #CC0000;">8</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>j<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>j<span style="color: #339933;">&lt;</span><span style="color: #CC0000;">8</span><span style="color: #339933;">;</span>j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">do</span><span style="color: #009900;">&#123;</span>
				jewels<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span>Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #CC0000;">8</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span><span style="color: #000066; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>isStreak<span style="color: #009900;">&#40;</span>i<span style="color: #339933;">,</span>j<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#gamefield&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;div class = &quot;gem&quot; id = &quot;gem_'</span><span style="color: #339933;">+</span>i<span style="color: #339933;">+</span><span style="color: #3366CC;">'_'</span><span style="color: #339933;">+</span>j<span style="color: #339933;">+</span><span style="color: #3366CC;">'&quot;&gt;&lt;/div&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#gem_&quot;</span><span style="color: #339933;">+</span>i<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;_&quot;</span><span style="color: #339933;">+</span>j<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><span style="color: #3366CC;">&quot;top&quot;</span><span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">*</span><span style="color: #CC0000;">60</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #CC0000;">10</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;px&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;left&quot;</span><span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>j<span style="color: #339933;">*</span><span style="color: #CC0000;">60</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #CC0000;">10</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;px&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;width&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;50px&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;height&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;50px&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;position&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;absolute&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;border&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;1px solid white&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;cursor&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;pointer&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;background-color&quot;</span><span style="color: #339933;">:</span>bgColors<span style="color: #009900;">&#91;</span>jewels<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.gem&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">live</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;click&quot;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>gameState<span style="color: #339933;">==</span><span style="color: #3366CC;">&quot;pick&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span> 
			posY<span style="color: #339933;">=</span>$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">position</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">top</span><span style="color: #339933;">;</span>
			posX<span style="color: #339933;">=</span>$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">position</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">left</span><span style="color: #339933;">;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#marker&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">show</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#marker&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;top&quot;</span><span style="color: #339933;">,</span>posY<span style="color: #339933;">-</span><span style="color: #CC0000;">5</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;left&quot;</span><span style="color: #339933;">,</span>posX<span style="color: #339933;">-</span><span style="color: #CC0000;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>selectedRow<span style="color: #339933;">==-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				selectedRow<span style="color: #339933;">=</span><span style="color: #009900;">&#40;</span>posY<span style="color: #339933;">-</span><span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #CC0000;">60</span><span style="color: #339933;">;</span>
				selectedCol<span style="color: #339933;">=</span><span style="color: #009900;">&#40;</span>posX<span style="color: #339933;">-</span><span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #CC0000;">60</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
				posY<span style="color: #339933;">=</span><span style="color: #009900;">&#40;</span>posY<span style="color: #339933;">-</span><span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #CC0000;">60</span><span style="color: #339933;">;</span>
				posX<span style="color: #339933;">=</span><span style="color: #009900;">&#40;</span>posX<span style="color: #339933;">-</span><span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">/</span><span style="color: #CC0000;">60</span><span style="color: #339933;">;</span>
				<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">abs</span><span style="color: #009900;">&#40;</span>selectedRow<span style="color: #339933;">-</span>posY<span style="color: #009900;">&#41;</span><span style="color: #339933;">==</span><span style="color: #CC0000;">1</span> <span style="color: #339933;">&amp;&amp;</span> selectedCol<span style="color: #339933;">==</span>posX<span style="color: #009900;">&#41;</span><span style="color: #339933;">||</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">abs</span><span style="color: #009900;">&#40;</span>selectedCol<span style="color: #339933;">-</span>posX<span style="color: #009900;">&#41;</span><span style="color: #339933;">==</span><span style="color: #CC0000;">1</span> <span style="color: #339933;">&amp;&amp;</span> selectedRow<span style="color: #339933;">==</span>posY<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
					$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#marker&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">hide</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					gameState<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;switch&quot;</span><span style="color: #339933;">;</span>
					gemSwitch<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
				<span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
					selectedRow<span style="color: #339933;">=</span>posY<span style="color: #339933;">;</span>
					selectedCol<span style="color: #339933;">=</span>posX<span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">function</span> checkMoving<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		movingItems<span style="color: #339933;">--;</span>
    		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>movingItems<span style="color: #339933;">==</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    			<span style="color: #000066; font-weight: bold;">switch</span><span style="color: #009900;">&#40;</span>gameState<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
    				<span style="color: #000066; font-weight: bold;">case</span> <span style="color: #3366CC;">&quot;revert&quot;</span><span style="color: #339933;">:</span>
    				<span style="color: #000066; font-weight: bold;">case</span> <span style="color: #3366CC;">&quot;switch&quot;</span><span style="color: #339933;">:</span>
                  		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span>isStreak<span style="color: #009900;">&#40;</span>selectedRow<span style="color: #339933;">,</span>selectedCol<span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #339933;">!</span>isStreak<span style="color: #009900;">&#40;</span>posY<span style="color: #339933;">,</span>posX<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
               			<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>gameState<span style="color: #339933;">!=</span><span style="color: #3366CC;">&quot;revert&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
							gameState<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;revert&quot;</span><span style="color: #339933;">;</span>
               				gemSwitch<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
               			<span style="color: #009900;">&#125;</span>
               			<span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
							gameState<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;pick&quot;</span><span style="color: #339933;">;</span>
							selectedRow<span style="color: #339933;">=-</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>	
						<span style="color: #009900;">&#125;</span>
                    	<span style="color: #009900;">&#125;</span>    
					<span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
						gameState<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;remove&quot;</span><span style="color: #339933;">;</span>
                    		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>isStreak<span style="color: #009900;">&#40;</span>selectedRow<span style="color: #339933;">,</span>selectedCol<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                    			removeGems<span style="color: #009900;">&#40;</span>selectedRow<span style="color: #339933;">,</span>selectedCol<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #009900;">&#125;</span>
                    		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>isStreak<span style="color: #009900;">&#40;</span>posY<span style="color: #339933;">,</span>posX<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                    			removeGems<span style="color: #009900;">&#40;</span>posY<span style="color: #339933;">,</span>posX<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
						<span style="color: #009900;">&#125;</span>
						gemFade<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span>
					<span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
				<span style="color: #000066; font-weight: bold;">case</span> <span style="color: #3366CC;">&quot;remove&quot;</span><span style="color: #339933;">:</span>
					checkFalling<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
				<span style="color: #000066; font-weight: bold;">case</span> <span style="color: #3366CC;">&quot;refill&quot;</span><span style="color: #339933;">:</span>
					placeNewGems<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					<span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">function</span> placeNewGems<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> gemsPlaced <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i<span style="color: #339933;">&lt;</span><span style="color: #CC0000;">8</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>jewels<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">==-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				jewels<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span>Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #CC0000;">8</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
          		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#gamefield&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;div class = &quot;gem&quot; id = &quot;gem_0_'</span><span style="color: #339933;">+</span>i<span style="color: #339933;">+</span><span style="color: #3366CC;">'&quot;&gt;&lt;/div&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
          		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#gem_0_&quot;</span><span style="color: #339933;">+</span>i<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span><span style="color: #3366CC;">&quot;top&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;10px&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;left&quot;</span><span style="color: #339933;">:</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">*</span><span style="color: #CC0000;">60</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #CC0000;">10</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;px&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;width&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;50px&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;height&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;50px&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;position&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;absolute&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;border&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;1px solid white&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;cursor&quot;</span><span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;pointer&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;background-color&quot;</span><span style="color: #339933;">:</span>bgColors<span style="color: #009900;">&#91;</span>jewels<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
          		gemsPlaced<span style="color: #339933;">++;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>gemsPlaced<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			gameState<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;remove&quot;</span><span style="color: #339933;">;</span>
			checkFalling<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
			<span style="color: #003366; font-weight: bold;">var</span> combo<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span>
			<span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i<span style="color: #339933;">&lt;</span><span style="color: #CC0000;">8</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
      			<span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>j<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>j<span style="color: #339933;">&lt;</span><span style="color: #CC0000;">8</span><span style="color: #339933;">;</span>j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
      				<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>j<span style="color: #339933;">&lt;=</span><span style="color: #CC0000;">5</span> <span style="color: #339933;">&amp;&amp;</span> jewels<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span>jewels<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> jewels<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span>jewels<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #339933;">+</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
						combo<span style="color: #339933;">++;</span>
						removeGems<span style="color: #009900;">&#40;</span>i<span style="color: #339933;">,</span>j<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 	
					<span style="color: #009900;">&#125;</span>
					<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">&lt;=</span><span style="color: #CC0000;">5</span> <span style="color: #339933;">&amp;&amp;</span> jewels<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span>jewels<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span> <span style="color: #339933;">&amp;&amp;</span> jewels<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span>jewels<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">+</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
						combo<span style="color: #339933;">++;</span>
						removeGems<span style="color: #009900;">&#40;</span>i<span style="color: #339933;">,</span>j<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 	
					<span style="color: #009900;">&#125;</span>		 	
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>combo<span style="color: #339933;">&gt;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				gameState<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;remove&quot;</span><span style="color: #339933;">;</span>
				gemFade<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>		
			<span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
				gameState<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;pick&quot;</span><span style="color: #339933;">;</span>
				selectedRow<span style="color: #339933;">=-</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">function</span> checkFalling<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> fellDown<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>j<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>j<span style="color: #339933;">&lt;</span><span style="color: #CC0000;">8</span><span style="color: #339933;">;</span>j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">7</span><span style="color: #339933;">;</span>i<span style="color: #339933;">&gt;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i<span style="color: #339933;">--</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>jewels<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">==-</span><span style="color: #CC0000;">1</span> <span style="color: #339933;">&amp;&amp;</span> jewels<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">&gt;=</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
					$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#gem_&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;_&quot;</span><span style="color: #339933;">+</span>j<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;fall&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;id&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;gem_&quot;</span><span style="color: #339933;">+</span>i<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;_&quot;</span><span style="color: #339933;">+</span>j<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					jewels<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span>jewels<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
					jewels<span style="color: #009900;">&#91;</span>i<span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">=-</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
					fellDown<span style="color: #339933;">++;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		$.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.fall&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			movingItems<span style="color: #339933;">++;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">animate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
				top<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;+=60&quot;</span>
				<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#123;</span>
				duration<span style="color: #339933;">:</span> <span style="color: #CC0000;">500</span><span style="color: #339933;">,</span>
				complete<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
					$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;fall&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					checkMoving<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>     
		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>fellDown<span style="color: #339933;">==</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			gameState<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;refill&quot;</span><span style="color: #339933;">;</span>
			movingItems<span style="color: #339933;">=</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
			checkMoving<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
		<span style="color: #009900;">&#125;</span>	
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">function</span> gemFade<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		$.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.remove&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			movingItems<span style="color: #339933;">++;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">animate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
				opacity<span style="color: #339933;">:</span><span style="color: #CC0000;">0</span>
				<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#123;</span>
				duration<span style="color: #339933;">:</span> <span style="color: #CC0000;">500</span><span style="color: #339933;">,</span>
				complete<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
					$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">remove</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
					checkMoving<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">function</span> gemSwitch<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> yOffset<span style="color: #339933;">=</span>selectedRow<span style="color: #339933;">-</span>posY<span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> xOffset<span style="color: #339933;">=</span>selectedCol<span style="color: #339933;">-</span>posX<span style="color: #339933;">;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#gem_&quot;</span><span style="color: #339933;">+</span>selectedRow<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;_&quot;</span><span style="color: #339933;">+</span>selectedCol<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;switch&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;dir&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;-1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#gem_&quot;</span><span style="color: #339933;">+</span>posY<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;_&quot;</span><span style="color: #339933;">+</span>posX<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;switch&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;dir&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;1&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		$.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;.switch&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			movingItems<span style="color: #339933;">++;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">animate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
				left<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;+=&quot;</span><span style="color: #339933;">+</span>xOffset<span style="color: #339933;">*</span><span style="color: #CC0000;">60</span><span style="color: #339933;">*</span>$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;dir&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
				top<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;+=&quot;</span><span style="color: #339933;">+</span>yOffset<span style="color: #339933;">*</span><span style="color: #CC0000;">60</span><span style="color: #339933;">*</span>$<span style="color: #009900;">&#40;</span><span style="color: #000066; font-weight: bold;">this</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;dir&quot;</span><span style="color: #009900;">&#41;</span>
				<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#123;</span>
				duration<span style="color: #339933;">:</span> <span style="color: #CC0000;">500</span><span style="color: #339933;">,</span>
				complete<span style="color: #339933;">:</span> <span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
					checkMoving<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #009900;">&#125;</span>
			<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">removeClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;switch&quot;</span><span style="color: #009900;">&#41;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#gem_&quot;</span><span style="color: #339933;">+</span>selectedRow<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;_&quot;</span><span style="color: #339933;">+</span>selectedCol<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;id&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;temp&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#gem_&quot;</span><span style="color: #339933;">+</span>posY<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;_&quot;</span><span style="color: #339933;">+</span>posX<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;id&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;gem_&quot;</span><span style="color: #339933;">+</span>selectedRow<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;_&quot;</span><span style="color: #339933;">+</span>selectedCol<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#temp&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;id&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;gem_&quot;</span><span style="color: #339933;">+</span>posY<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;_&quot;</span><span style="color: #339933;">+</span>posX<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> temp<span style="color: #339933;">=</span>jewels<span style="color: #009900;">&#91;</span>selectedRow<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>selectedCol<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		jewels<span style="color: #009900;">&#91;</span>selectedRow<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>selectedCol<span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span>jewels<span style="color: #009900;">&#91;</span>posY<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>posX<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		jewels<span style="color: #009900;">&#91;</span>posY<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>posX<span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span>temp<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">function</span> removeGems<span style="color: #009900;">&#40;</span>row<span style="color: #339933;">,</span>col<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> gemValue <span style="color: #339933;">=</span> jewels<span style="color: #009900;">&#91;</span>row<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>col<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> tmp <span style="color: #339933;">=</span> row<span style="color: #339933;">;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#gem_&quot;</span><span style="color: #339933;">+</span>row<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;_&quot;</span><span style="color: #339933;">+</span>col<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;remove&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>isVerticalStreak<span style="color: #009900;">&#40;</span>row<span style="color: #339933;">,</span>col<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>tmp<span style="color: #339933;">&gt;</span><span style="color: #CC0000;">0</span> <span style="color: #339933;">&amp;&amp;</span> jewels<span style="color: #009900;">&#91;</span>tmp<span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>col<span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span>gemValue<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>                          
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#gem_&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>tmp<span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;_&quot;</span><span style="color: #339933;">+</span>col<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;remove&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				jewels<span style="color: #009900;">&#91;</span>tmp<span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>col<span style="color: #009900;">&#93;</span><span style="color: #339933;">=-</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
				tmp<span style="color: #339933;">--;</span>
			<span style="color: #009900;">&#125;</span>
			tmp<span style="color: #339933;">=</span>row<span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>tmp<span style="color: #339933;">&lt;</span><span style="color: #CC0000;">7</span> <span style="color: #339933;">&amp;&amp;</span> jewels<span style="color: #009900;">&#91;</span>tmp<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>col<span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span>gemValue<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#gem_&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>tmp<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;_&quot;</span><span style="color: #339933;">+</span>col<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;remove&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				jewels<span style="color: #009900;">&#91;</span>tmp<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>col<span style="color: #009900;">&#93;</span><span style="color: #339933;">=-</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
				tmp<span style="color: #339933;">++;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>isHorizontalStreak<span style="color: #009900;">&#40;</span>row<span style="color: #339933;">,</span>col<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			tmp <span style="color: #339933;">=</span> col<span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>tmp<span style="color: #339933;">&gt;</span><span style="color: #CC0000;">0</span> <span style="color: #339933;">&amp;&amp;</span> jewels<span style="color: #009900;">&#91;</span>row<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>tmp<span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span>gemValue<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#gem_&quot;</span><span style="color: #339933;">+</span>row<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;_&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>tmp<span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;remove&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				jewels<span style="color: #009900;">&#91;</span>row<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>tmp<span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=-</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
				tmp<span style="color: #339933;">--;</span>
			<span style="color: #009900;">&#125;</span>
			tmp<span style="color: #339933;">=</span>col<span style="color: #339933;">;</span>
			<span style="color: #000066; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>tmp<span style="color: #339933;">&lt;</span><span style="color: #CC0000;">7</span> <span style="color: #339933;">&amp;&amp;</span> jewels<span style="color: #009900;">&#91;</span>row<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>tmp<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span>gemValue<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#gem_&quot;</span><span style="color: #339933;">+</span>row<span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;_&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>tmp<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">addClass</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;remove&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				jewels<span style="color: #009900;">&#91;</span>row<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>tmp<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">=-</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
				tmp<span style="color: #339933;">++;</span>
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
		jewels<span style="color: #009900;">&#91;</span>row<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>col<span style="color: #009900;">&#93;</span><span style="color: #339933;">=-</span><span style="color: #CC0000;">1</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">function</span> isVerticalStreak<span style="color: #009900;">&#40;</span>row<span style="color: #339933;">,</span>col<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> gemValue<span style="color: #339933;">=</span>jewels<span style="color: #009900;">&#91;</span>row<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>col<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> streak<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> tmp<span style="color: #339933;">=</span>row<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>tmp<span style="color: #339933;">&gt;</span><span style="color: #CC0000;">0</span> <span style="color: #339933;">&amp;&amp;</span> jewels<span style="color: #009900;">&#91;</span>tmp<span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>col<span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span>gemValue<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			streak<span style="color: #339933;">++;</span>
			tmp<span style="color: #339933;">--;</span>
		<span style="color: #009900;">&#125;</span>
		tmp<span style="color: #339933;">=</span>row<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>tmp<span style="color: #339933;">&lt;</span><span style="color: #CC0000;">7</span> <span style="color: #339933;">&amp;&amp;</span> jewels<span style="color: #009900;">&#91;</span>tmp<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>col<span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span>gemValue<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			streak<span style="color: #339933;">++;</span>
			tmp<span style="color: #339933;">++;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">return</span> streak<span style="color: #339933;">&gt;</span><span style="color: #CC0000;">1</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">function</span> isHorizontalStreak<span style="color: #009900;">&#40;</span>row<span style="color: #339933;">,</span>col<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> gemValue<span style="color: #339933;">=</span>jewels<span style="color: #009900;">&#91;</span>row<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>col<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> streak<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
		<span style="color: #003366; font-weight: bold;">var</span> tmp<span style="color: #339933;">=</span>col
		<span style="color: #000066; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>tmp<span style="color: #339933;">&gt;</span><span style="color: #CC0000;">0</span> <span style="color: #339933;">&amp;&amp;</span> jewels<span style="color: #009900;">&#91;</span>row<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>tmp<span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span>gemValue<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			streak<span style="color: #339933;">++;</span>
			tmp<span style="color: #339933;">--;</span>
		<span style="color: #009900;">&#125;</span>
		tmp<span style="color: #339933;">=</span>col<span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">while</span><span style="color: #009900;">&#40;</span>tmp<span style="color: #339933;">&lt;</span><span style="color: #CC0000;">7</span> <span style="color: #339933;">&amp;&amp;</span> jewels<span style="color: #009900;">&#91;</span>row<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>tmp<span style="color: #339933;">+</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span>gemValue<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			streak<span style="color: #339933;">++;</span>
			tmp<span style="color: #339933;">++;</span>
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">return</span> streak<span style="color: #339933;">&gt;</span><span style="color: #CC0000;">1</span>
	<span style="color: #009900;">&#125;</span>
&nbsp;
	<span style="color: #003366; font-weight: bold;">function</span> isStreak<span style="color: #009900;">&#40;</span>row<span style="color: #339933;">,</span>col<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #000066; font-weight: bold;">return</span> isVerticalStreak<span style="color: #009900;">&#40;</span>row<span style="color: #339933;">,</span>col<span style="color: #009900;">&#41;</span><span style="color: #339933;">||</span>isHorizontalStreak<span style="color: #009900;">&#40;</span>row<span style="color: #339933;">,</span>col<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>                    
&nbsp;
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>Happy swapping. Would you add any feature?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2011/10/07/complete-bejeweled-prototype-made-wiht-jquery/feed/</wfw:commentRss>
		<slash:comments>19</slash:comments>
		</item>
		<item>
		<title>Playing with javascript, iPhone and devicemotion event listener</title>
		<link>http://www.emanueleferonato.com/2011/09/05/playing-with-javascript-iphone-and-devicemotion-event-listener/</link>
		<comments>http://www.emanueleferonato.com/2011/09/05/playing-with-javascript-iphone-and-devicemotion-event-listener/#comments</comments>
		<pubDate>Mon, 05 Sep 2011 14:58:27 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=4591</guid>
		<description><![CDATA[How to create an iPhone accelerometer monitor and an "highest iPhone point" arrow using javascript's <code>devicemotion</code> event listener.]]></description>
			<content:encoded><![CDATA[<p>As you all know, the iPhone has an accelerometer which can help you to detect phone movements and tilts.</p>
<p>With javascript&#8217;s <code>devicemotion</code> event you can add a listener to your iPhone browser and have your x, y and z acceleration values ready to be used in your scripts.</p>
<p>Before we see any script, let&#8217;s see what these acceleration values mean: if you place your iPhone on a table, that&#8217;s what you can get: </p>
<p><strong>X</strong>: roll, that is the rotation around the vertical axis, from the home button to the earpiece.</p>
<p><strong>Y</strong>: pitch, that is the rotation around the horizontal axis.</p>
<p><strong>Z</strong>: yaw&#8230; no&#8230; surprise! It&#8217;s not the yaw, it&#8217;s just a face up/face down detection. This means you can toss your iPhone in the air and play &#8220;head or tail&#8221; just like you are used to do with coins.</p>
<p>(warning: tossing your iPhone in the air can cause damage to the phone itself and injuries to nearby people)</p>
<p>Even more interesting, with the iPhone in your hand you can determine where is the &#8220;sky&#8221;, that is the iPhone highest point, just combining X and Y values and some trigonometry. Useful if you are buried under an avalanche.</p>
<p>(warning: getting buried under an avalanche may reduce life expectancy)</p>
<p>So this is what you can do with a little jQuery Mobile script and a touch of HTML5 canvas:</p>
<p><img src="/wp-content/uploads/2011/09/rollpitch.png" /></p>
<p>This is the code:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.01//EN&quot; &quot;http://www.w3.org/TR/html4/strict.dtd&quot;&gt; 
&lt;html&gt; 
&lt;head&gt; 
&nbsp;
     &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot;&gt; 
     &lt;meta name=&quot;viewport&quot; content=&quot;user-scalable=no, width=device-width&quot; /&gt;
&nbsp;
     &lt;link rel=&quot;stylesheet&quot; href=&quot;http://code.jquery.com/mobile/1.0b2/jquery.mobile-1.0b2.min.css&quot; /&gt;
&nbsp;
     &lt;script type=&quot;text/javascript&quot; src = &quot;http://code.jquery.com/jquery-1.6.2.min.js&quot;&gt;&lt;/script&gt;
     &lt;script type=&quot;text/javascript&quot; src = &quot;http://code.jquery.com/mobile/1.0b2/jquery.mobile-1.0b2.min.js&quot;&gt;&lt;/script&gt;
&nbsp;
	<span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
		$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			window.<span style="color: #660066;">addEventListener</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;devicemotion&quot;</span><span style="color: #339933;">,</span>onDeviceMotion<span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
&nbsp;
		<span style="color: #003366; font-weight: bold;">function</span> onDeviceMotion<span style="color: #009900;">&#40;</span>event<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #003366; font-weight: bold;">var</span> ctx <span style="color: #339933;">=</span> document.<span style="color: #660066;">getElementById</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;c&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">getContext</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;2d&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003366; font-weight: bold;">var</span> accel <span style="color: #339933;">=</span> event.<span style="color: #660066;">accelerationIncludingGravity</span><span style="color: #339933;">;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#sliderX&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">round</span><span style="color: #009900;">&#40;</span>accel.<span style="color: #660066;">x</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slider</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;refresh&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#sliderY&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">round</span><span style="color: #009900;">&#40;</span>accel.<span style="color: #660066;">y</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slider</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;refresh&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> 
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#sliderZ&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">val</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">round</span><span style="color: #009900;">&#40;</span>accel.<span style="color: #660066;">z</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slider</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;refresh&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003366; font-weight: bold;">var</span> angle <span style="color: #339933;">=</span> Math.<span style="color: #660066;">atan2</span><span style="color: #009900;">&#40;</span>accel.<span style="color: #660066;">y</span><span style="color: #339933;">,</span>accel.<span style="color: #660066;">x</span><span style="color: #009900;">&#41;</span>  
			ctx.<span style="color: #660066;">clearRect</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">100</span><span style="color: #339933;">,</span><span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			ctx.<span style="color: #660066;">beginPath</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			ctx.<span style="color: #660066;">arc</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">50</span><span style="color: #339933;">,</span><span style="color: #CC0000;">50</span><span style="color: #339933;">,</span><span style="color: #CC0000;">5</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">2</span><span style="color: #339933;">*</span>Math.<span style="color: #660066;">PI</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">false</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			ctx.<span style="color: #660066;">moveTo</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">50</span><span style="color: #339933;">,</span><span style="color: #CC0000;">50</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			ctx.<span style="color: #660066;">lineTo</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">50</span><span style="color: #339933;">-</span><span style="color: #CC0000;">50</span><span style="color: #339933;">*</span>Math.<span style="color: #660066;">cos</span><span style="color: #009900;">&#40;</span>angle<span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">50</span><span style="color: #339933;">+</span><span style="color: #CC0000;">50</span><span style="color: #339933;">*</span>Math.<span style="color: #660066;">sin</span><span style="color: #009900;">&#40;</span>angle<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			ctx.<span style="color: #660066;">stroke</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
	<span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>
&nbsp;
&lt;/head&gt; 
&lt;body&gt; 
&nbsp;
&lt;div data-role=&quot;page&quot; id = &quot;intropage&quot;&gt;
&nbsp;
	&lt;div data-role=&quot;header&quot;&gt;
		&lt;h1&gt;Accelerometer&lt;/h1&gt;
	&lt;/div&gt;
&nbsp;
	&lt;div data-role=&quot;content&quot;&gt;	   
     	&lt;label for=&quot;sliderX&quot;&gt;X Acceleration (Roll)&lt;/label&gt;
		&lt;input type=&quot;range&quot; name=&quot;sliderX&quot; id=&quot;sliderX&quot; value=&quot;0&quot; min=&quot;-10&quot; max=&quot;10&quot; data-theme=&quot;a&quot; /&gt;
&nbsp;
          &lt;label for=&quot;sliderY&quot;&gt;Y Acceleration (Pitch)&lt;/label&gt;
          &lt;input type=&quot;range&quot; name=&quot;sliderY&quot; id=&quot;sliderY&quot; value=&quot;0&quot; min=&quot;-10&quot; max=&quot;10&quot; data-theme=&quot;b&quot; /&gt;
&nbsp;
          &lt;label for=&quot;sliderZ&quot;&gt;Z Acceleration (&lt;strike&gt;Yaw&lt;/strike&gt; Face up/down)&lt;/label&gt;
          &lt;input type=&quot;range&quot; name=&quot;sliderZ&quot; id=&quot;sliderZ&quot; value=&quot;0&quot; min=&quot;-10&quot; max=&quot;10&quot; data-theme=&quot;c&quot; /&gt;
     &lt;/div&gt;	
&nbsp;
	&lt;div style = &quot;text-align:center;margin-top:10px;&quot;&gt;
		&lt;canvas id=&quot;c&quot; width=&quot;100&quot; height=&quot;100&quot;&gt;&lt;/canvas&gt;
	&lt;/div&gt;
&nbsp;
&lt;/div&gt;
&nbsp;
&lt;/body&gt; 
&lt;/html&gt;</pre></td></tr></table></div>

<p>The core lies at <strong>line 15</strong> (the listener) and <strong>20</strong> (getting acceleration data).</p>
<p>You can see it in action pointing your iPhone browser at this link:</p>
<p><a href="http://www.emanueleferonato.com/stuff/iaccelerometer/" target="_blank">http://www.emanueleferonato.com/stuff/iaccelerometer/</a></p>
<p>or using this QRCode:</p>
<p><img src="http://chart.apis.google.com/chart?cht=qr&#038;chs=150x150&#038;chl=http%3A//www.emanueleferonato.com/stuff/iaccelerometer/&#038;chld=H|0" alt="" /></p>
<p>And that&#8217;s it!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2011/09/05/playing-with-javascript-iphone-and-devicemotion-event-listener/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Play GuessNext for iPhone, a web app game powered by jQuery Mobile</title>
		<link>http://www.emanueleferonato.com/2011/08/17/play-guessnext-for-iphone-a-web-app-game-powered-by-jquery-mobile/</link>
		<comments>http://www.emanueleferonato.com/2011/08/17/play-guessnext-for-iphone-a-web-app-game-powered-by-jquery-mobile/#comments</comments>
		<pubDate>Wed, 17 Aug 2011 12:21:01 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Game design]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Monetize]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=4544</guid>
		<description><![CDATA[My first web app game for iPhone is GuessNext, powered by jQuery Mobile. Play it and give feedback.]]></description>
			<content:encoded><![CDATA[<p>Do you want to play a web app game for iPhone? Go to <a href="http://www.emanueleferonato.com/stuff/guessnext/">www.emanueleferonato.com/stuff/guessnext</a> or use this QR Code</p>
<p><img src="/wp-content/uploads/2011/08/qrguessnext.png" /></p>
<p>and play <strong><a href="http://www.emanueleferonato.com/stuff/guessnext/">GuessNext for iPhone</a></strong>!</p>
<p><a href="http://www.emanueleferonato.com/stuff/guessnext/"><img src="/wp-content/uploads/2011/08/guessnext.jpg" /></a></p>
<p>It&#8217;s the web remake of an <a href="http://www.emanueleferonato.com/2007/12/30/guessnext-complete-flash-game-with-highscores/">old game I published on Kongregate</a> more than three years ago, and it&#8217;s the perfect kind of game if you want to take the first steps into iPhone web app development.</p>
<p>During the next days I will explain in detail every (interesting) line of code, meanwhile have a look at the features:</p>
<p>* Powered by <a href="http://jquerymobile.com/" target="_blank">jQuery Mobile</a><br />
* Optimized to be launched from Home<br />
* Loading screen (only if played from Home)<br />
* Custom icon when adding it to Home<br />
* Reminder to add it to Home if the game is not launched from Home<br />
* Smooth transitions between pages<br />
* Best score saved locally<br />
* In game Adsense ads<br />
* Views and plays tracking powered by <a href="http://playtomic.com/" target="_blank">Playtomic</a></p>
<p>The game was built starting from the tutorials <a href="http://www.emanueleferonato.com/2011/06/30/making-a-game-with-html-jquery-mobile-and-publishing-it-to-apple-app-store/" target="_blank">Making a game with HTML + jQuery Mobile and publishing it to Apple App Store step 1</a> and <a href="http://www.emanueleferonato.com/2011/07/20/making-a-game-with-html-jquery-mobile-and-publishing-it-to-apple-app-store-step-2/" target="_blank">step 2</a>, reading those tutorials will give you a lot of clues about the development of this game.</p>
<p>Your feedback is needed to improve a bit the game, to finally convert it into a native iPhone app. Also, I would like to know your best scores.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2011/08/17/play-guessnext-for-iphone-a-web-app-game-powered-by-jquery-mobile/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Making a game with HTML + jQuery Mobile and publishing it to Apple App Store &#8211; step 2</title>
		<link>http://www.emanueleferonato.com/2011/07/20/making-a-game-with-html-jquery-mobile-and-publishing-it-to-apple-app-store-step-2/</link>
		<comments>http://www.emanueleferonato.com/2011/07/20/making-a-game-with-html-jquery-mobile-and-publishing-it-to-apple-app-store-step-2/#comments</comments>
		<pubDate>Wed, 20 Jul 2011 17:47:22 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Game design]]></category>
		<category><![CDATA[Html]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=4473</guid>
		<description><![CDATA[Second step of the iPhone web app creation, this time featuring splash screen, status bar appearance and saving data locally.]]></description>
			<content:encoded><![CDATA[<p>Some days ago I showed you the <a href="http://www.emanueleferonato.com/2011/06/30/making-a-game-with-html-jquery-mobile-and-publishing-it-to-apple-app-store/">basics of an HTML game optimized for the iPhone</a>.</p>
<p>Now we are going to improve the game with three exciting new features:</p>
<p>* Showing a splash/preloader screen<br />
* Changing iPhone top bar appearance<br />
* Saving data locally</p>
<p>To show a preloader we just need to add a line in the header of the page:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;link rel=&quot;apple-touch-startup-image&quot; href=&quot;splash.png&quot; /&gt;</pre></div></div>

<p>This will work only on iOS 3.0 and later, and <code>splash.png</code> (which you will change with any other path) is the splash image that is displayed while your web application launches, replacing the default screenshot of the web application taken the last time it was used.</p>
<p>Your image must have a size of 320&#215;460 pixels.</p>
<p>In the following picture, on the left the picture I used, on the right how it is shown on the iPhone.</p>
<p><img src="/wp-content/uploads/2011/07/iphone01.png" /></p>
<p>You can also change the status bar with just one line in the header:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;meta name=&quot;apple-mobile-web-app-status-bar-style&quot; content=&quot;black&quot; /&gt;</pre></div></div>

<p>This will work only if your app is launched in full screen mode (refer to <a href="http://www.emanueleferonato.com/2011/06/30/making-a-game-with-html-jquery-mobile-and-publishing-it-to-apple-app-store/">step 1</a> to see how to launch a web app in full screen mode).</p>
<p>content attribute may have three values:</p>
<p>default: displays the status bar as you are used to see.</p>
<p>black: the status bar will have a black background.</p>
<p>black-translucent: the status bar is black and translucent. In this case, the web content is displayed even below the status bar, partially obscured by the status bar.</p>
<p>This is how my app looks before and after changing the status bar:</p>
<p><img src="/wp-content/uploads/2011/07/iphone02.png" /></p>
<p>As you can see, the status bar is black.</p>
<p>To save data locally, <code>localStorage</code> comes into our help as it acts like a browser local database, or something like a cookie, if you prefer.</p>
<p>That&#8217;s why in this script:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> currentNumber <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> score <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
	<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>localStorage.<span style="color: #660066;">topScore</span><span style="color: #339933;">==</span>undefined<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		localStorage.<span style="color: #660066;">topScore</span><span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>	
	<span style="color: #009900;">&#125;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#topscore&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Top score: &quot;</span><span style="color: #339933;">+</span>localStorage.<span style="color: #660066;">topScore</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#number&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span>currentNumber<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#comment&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Click higher or lower&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#higher&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">live</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;click tap&quot;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> newNumber <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>newNumber <span style="color: #339933;">&gt;=</span> currentNumber<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			score<span style="color: #339933;">++;</span>	
			<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>score<span style="color: #339933;">&gt;</span>localStorage.<span style="color: #660066;">topScore</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				localStorage.<span style="color: #660066;">topScore</span><span style="color: #339933;">=</span>score<span style="color: #339933;">;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#topscore&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Top score: &quot;</span><span style="color: #339933;">+</span>localStorage.<span style="color: #660066;">topScore</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#comment&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Good! score: &quot;</span><span style="color: #339933;">+</span>score<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#comment&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Bad! score: &quot;</span><span style="color: #339933;">+</span>score<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		currentNumber <span style="color: #339933;">=</span> newNumber<span style="color: #339933;">;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#number&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span>currentNumber<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#lower&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">live</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;click tap&quot;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> newNumber <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>newNumber <span style="color: #339933;">&lt;=</span> currentNumber<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			score<span style="color: #339933;">++;</span>	
			<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>score<span style="color: #339933;">&gt;</span>localStorage.<span style="color: #660066;">topScore</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				localStorage.<span style="color: #660066;">topScore</span><span style="color: #339933;">=</span>score<span style="color: #339933;">;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#topscore&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Top score: &quot;</span><span style="color: #339933;">+</span>localStorage.<span style="color: #660066;">topScore</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#comment&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Good! score: &quot;</span><span style="color: #339933;">+</span>score<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
		<span style="color: #009900;">&#125;</span>	
		<span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#comment&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Bad! score: &quot;</span><span style="color: #339933;">+</span>score<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		currentNumber <span style="color: #339933;">=</span> newNumber<span style="color: #339933;">;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#number&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span>currentNumber<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>At lines <strong>4-7</strong>, <strong>14-17</strong> and <strong>30-33</strong> we are using a variable called <code>topScore</code> saved into <code>localStorage</code> accessing it just like an ordinary variable.</p>
<p>And that&#8217;s enough for this step, no we have everything we need to create a complete game with high scores, which will be shown during next step. </p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2011/07/20/making-a-game-with-html-jquery-mobile-and-publishing-it-to-apple-app-store-step-2/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Controlling an iPhone mobile game with swipes using jQuery</title>
		<link>http://www.emanueleferonato.com/2011/07/06/controlling-an-iphone-mobile-game-with-swipes-using-jquery/</link>
		<comments>http://www.emanueleferonato.com/2011/07/06/controlling-an-iphone-mobile-game-with-swipes-using-jquery/#comments</comments>
		<pubDate>Wed, 06 Jul 2011 08:28:35 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Game design]]></category>
		<category><![CDATA[Html]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=4417</guid>
		<description><![CDATA[Learn how to control characters and content in your web applications using  <strong><a href="http://labs.skinkers.com/touchSwipe/" target="_blank">TouchSwipe</a></strong> jQuery plugin.]]></description>
			<content:encoded><![CDATA[<p>Now that I&#8217;m trying to <a href="http://www.emanueleferonato.com/2011/06/30/making-a-game-with-html-jquery-mobile-and-publishing-it-to-apple-app-store/">create an iPhone game using HTML + jQuery</a>, one of the most unusual things to develop in a web app is the swipe management.</p>
<p>Normally when you design web pages you don&#8217;t need to handle swipes because we expect the final user to interact with it with the mouse or the trackpad.</p>
<p>On mobile phones, people expect to use their fingers to interact with the content, and we have to meet their wishes if we want our app to be successful.</p>
<p>I am about to show you how easy it is: let&#8217;s start with the <a href="http://www.emanueleferonato.com/2010/06/14/creation-of-a-sokoban-game-with-jquery/">jQuery Sokoban prototype</a> I published about a year ago, and change keyboard input with swipe input.</p>
<p>Have a look at the code in the <a href="http://www.emanueleferonato.com/2011/06/30/making-a-game-with-html-jquery-mobile-and-publishing-it-to-apple-app-store/">original version</a>, then look at this one:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">&lt;!DOCTYPE html PUBLIC &quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;
	&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xml:lang=&quot;en&quot;&gt;
&lt;head&gt;
     &lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no&quot;/&gt;
     &lt;meta http-equiv=&quot;content-type&quot; content=&quot;text/html; charset=utf-8&quot; /&gt;
     &lt;title&gt;jQuery Swipe Sokoban by Emanuele Feronato&lt;/title&gt;
     &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;
     &lt;script type=&quot;text/javascript&quot; src=&quot;touchswipe.js&quot;&gt;&lt;/script&gt; 
     <span style="color: #339933;">&lt;</span>script type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
     $<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>	
     	<span style="color: #003366; font-weight: bold;">var</span> map <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     	map<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     	map<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     	map<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">2</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">3</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     	map<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">3</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">2</span><span style="color: #339933;">,</span><span style="color: #CC0000;">4</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     	map<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">4</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     	map<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">5</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     	<span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i<span style="color: #339933;">&lt;</span>map.<span style="color: #660066;">length</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
     		<span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>j<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>j<span style="color: #339933;">&lt;</span>map<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span>j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
     			<span style="color: #000066; font-weight: bold;">switch</span><span style="color: #009900;">&#40;</span>map<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
     				<span style="color: #000066; font-weight: bold;">case</span> <span style="color: #CC0000;">1</span><span style="color: #339933;">:</span>
     					$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#sokoban&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;div class = &quot;wall&quot; style = &quot;top:'</span><span style="color: #339933;">+</span>i<span style="color: #339933;">*</span><span style="color: #CC0000;">32</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'px;left:'</span><span style="color: #339933;">+</span>j<span style="color: #339933;">*</span><span style="color: #CC0000;">32</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'px&quot;&gt;&lt;/div&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     					<span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
     				<span style="color: #000066; font-weight: bold;">case</span> <span style="color: #CC0000;">2</span><span style="color: #339933;">:</span>
     					$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#sokoban&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;div class = &quot;goal&quot; style = &quot;top:'</span><span style="color: #339933;">+</span>i<span style="color: #339933;">*</span><span style="color: #CC0000;">32</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'px;left:'</span><span style="color: #339933;">+</span>j<span style="color: #339933;">*</span><span style="color: #CC0000;">32</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'px&quot;&gt;&lt;/div&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     					<span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
     				<span style="color: #000066; font-weight: bold;">case</span> <span style="color: #CC0000;">3</span><span style="color: #339933;">:</span>
     					$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#sokoban&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;div id = &quot;c'</span><span style="color: #339933;">+</span>i<span style="color: #339933;">+</span><span style="color: #3366CC;">'_'</span><span style="color: #339933;">+</span>j<span style="color: #339933;">+</span><span style="color: #3366CC;">'&quot; class = &quot;crate&quot; style = &quot;z-index:1000;top:'</span><span style="color: #339933;">+</span>i<span style="color: #339933;">*</span><span style="color: #CC0000;">32</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'px;left:'</span><span style="color: #339933;">+</span>j<span style="color: #339933;">*</span><span style="color: #CC0000;">32</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'px&quot;&gt;&lt;/div&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     					<span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
     				<span style="color: #000066; font-weight: bold;">case</span> <span style="color: #CC0000;">4</span><span style="color: #339933;">:</span>
     					map<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
     					<span style="color: #003366; font-weight: bold;">var</span> player_pos <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span>i<span style="color: #339933;">,</span>j<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     					$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#sokoban&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;div id =&quot;player&quot; style = &quot;z-index:1000;top:'</span><span style="color: #339933;">+</span>i<span style="color: #339933;">*</span><span style="color: #CC0000;">32</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'px;left:'</span><span style="color: #339933;">+</span>j<span style="color: #339933;">*</span><span style="color: #CC0000;">32</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'px&quot;&gt;&lt;/div&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     					<span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
     				<span style="color: #000066; font-weight: bold;">case</span> <span style="color: #CC0000;">5</span><span style="color: #339933;">:</span>
     					$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#sokoban&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;div class = &quot;goal&quot; style = &quot;top:'</span><span style="color: #339933;">+</span>i<span style="color: #339933;">*</span><span style="color: #CC0000;">32</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'px;left:'</span><span style="color: #339933;">+</span>j<span style="color: #339933;">*</span><span style="color: #CC0000;">32</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'px&quot;&gt;&lt;/div&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     					$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#sokoban&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;div id = &quot;c'</span><span style="color: #339933;">+</span>i<span style="color: #339933;">+</span><span style="color: #3366CC;">'_'</span><span style="color: #339933;">+</span>j<span style="color: #339933;">+</span><span style="color: #3366CC;">'&quot; class = &quot;crate&quot; style = &quot;z-index:1000;top:'</span><span style="color: #339933;">+</span>i<span style="color: #339933;">*</span><span style="color: #CC0000;">32</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'px;left:'</span><span style="color: #339933;">+</span>j<span style="color: #339933;">*</span><span style="color: #CC0000;">32</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'px&quot;&gt;&lt;/div&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     					<span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
     				<span style="color: #000066; font-weight: bold;">case</span> <span style="color: #CC0000;">6</span><span style="color: #339933;">:</span>
     					map<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #CC0000;">2</span><span style="color: #339933;">;</span>
     					<span style="color: #003366; font-weight: bold;">var</span> player_pos <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">new</span> Array<span style="color: #009900;">&#40;</span>i<span style="color: #339933;">,</span>j<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     					$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#sokoban&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;div class = &quot;goal&quot; style = &quot;top:'</span><span style="color: #339933;">+</span>i<span style="color: #339933;">*</span><span style="color: #CC0000;">32</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'px;left:'</span><span style="color: #339933;">+</span>j<span style="color: #339933;">*</span><span style="color: #CC0000;">32</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'px&quot;&gt;&lt;/div&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     					$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#sokoban&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">append</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">'&lt;div id =&quot;player&quot; style = &quot;z-index:1000;top:'</span><span style="color: #339933;">+</span>i<span style="color: #339933;">*</span><span style="color: #CC0000;">32</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'px;left:'</span><span style="color: #339933;">+</span>j<span style="color: #339933;">*</span><span style="color: #CC0000;">32</span><span style="color: #339933;">+</span><span style="color: #3366CC;">'px&quot;&gt;&lt;/div&gt;'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     					<span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
     			<span style="color: #009900;">&#125;</span>
     		<span style="color: #009900;">&#125;</span>
     	<span style="color: #009900;">&#125;</span>
     	<span style="color: #003366; font-weight: bold;">function</span> possible_move<span style="color: #009900;">&#40;</span>x<span style="color: #339933;">,</span>y<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
     		<span style="color: #003366; font-weight: bold;">var</span> tile <span style="color: #339933;">=</span> map<span style="color: #009900;">&#91;</span>player_pos<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span>y<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>player_pos<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span>x<span style="color: #009900;">&#93;</span>
     		<span style="color: #003366; font-weight: bold;">var</span> far_tile <span style="color: #339933;">=</span> map<span style="color: #009900;">&#91;</span>player_pos<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span><span style="color: #CC0000;">2</span><span style="color: #339933;">*</span>y<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>player_pos<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span><span style="color: #CC0000;">2</span><span style="color: #339933;">*</span>x<span style="color: #009900;">&#93;</span>
     		<span style="color: #003366; font-weight: bold;">var</span> can_move <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
     		<span style="color: #003366; font-weight: bold;">var</span> solved <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
     		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>tile<span style="color: #339933;">==</span><span style="color: #CC0000;">0</span> <span style="color: #339933;">||</span> tile<span style="color: #339933;">==</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                    can_move <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
                    solved <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
               <span style="color: #009900;">&#125;</span>
               <span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
                    <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#40;</span>tile<span style="color: #339933;">==</span><span style="color: #CC0000;">3</span> <span style="color: #339933;">||</span> tile<span style="color: #339933;">==</span><span style="color: #CC0000;">5</span><span style="color: #009900;">&#41;</span> <span style="color: #339933;">&amp;&amp;</span> <span style="color: #009900;">&#40;</span>far_tile<span style="color: #339933;">==</span><span style="color: #CC0000;">0</span> <span style="color: #339933;">||</span> far_tile<span style="color: #339933;">==</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                         map<span style="color: #009900;">&#91;</span>player_pos<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span>y<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>player_pos<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span>x<span style="color: #009900;">&#93;</span><span style="color: #339933;">-=</span><span style="color: #CC0000;">3</span><span style="color: #339933;">;</span>
                         map<span style="color: #009900;">&#91;</span>player_pos<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span><span style="color: #CC0000;">2</span><span style="color: #339933;">*</span>y<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>player_pos<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span><span style="color: #CC0000;">2</span><span style="color: #339933;">*</span>x<span style="color: #009900;">&#93;</span><span style="color: #339933;">+=</span><span style="color: #CC0000;">3</span><span style="color: #339933;">;</span>
                         $<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#c&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>player_pos<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span>y<span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;_&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>player_pos<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span>x<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">animate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
                              left<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;+=&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>x<span style="color: #339933;">*</span><span style="color: #CC0000;">32</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
                              top<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;+=&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>y<span style="color: #339933;">*</span><span style="color: #CC0000;">32</span><span style="color: #009900;">&#41;</span>
                         <span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">100</span><span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                              <span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>i<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>i<span style="color: #339933;">&lt;</span>map.<span style="color: #660066;">length</span><span style="color: #339933;">;</span>i<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                                   <span style="color: #000066; font-weight: bold;">for</span><span style="color: #009900;">&#40;</span>j<span style="color: #339933;">=</span><span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>j<span style="color: #339933;">&lt;</span>map<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span>.<span style="color: #660066;">length</span><span style="color: #339933;">;</span>j<span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                                        <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>map<span style="color: #009900;">&#91;</span>i<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#91;</span>j<span style="color: #009900;">&#93;</span><span style="color: #339933;">==</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                                             solved <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">false</span><span style="color: #339933;">;</span>
                                             <span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
                                        <span style="color: #009900;">&#125;</span>
                                   <span style="color: #009900;">&#125;</span>
                              <span style="color: #009900;">&#125;</span>
                              <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>solved<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                                   <span style="color: #000066;">alert</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;SOLVED&quot;</span><span style="color: #009900;">&#41;</span>
                              <span style="color: #009900;">&#125;</span>
                         <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">attr</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;id&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;c&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>player_pos<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span><span style="color: #CC0000;">2</span><span style="color: #339933;">*</span>y<span style="color: #009900;">&#41;</span><span style="color: #339933;">+</span><span style="color: #3366CC;">&quot;_&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>player_pos<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+</span><span style="color: #CC0000;">2</span><span style="color: #339933;">*</span>x<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
                         can_move <span style="color: #339933;">=</span> <span style="color: #003366; font-weight: bold;">true</span><span style="color: #339933;">;</span>
                    <span style="color: #009900;">&#125;</span>
               <span style="color: #009900;">&#125;</span>	
               <span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>can_move<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
                    player_pos<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+=</span>y<span style="color: #339933;">;</span>
                    player_pos<span style="color: #009900;">&#91;</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">+=</span>x<span style="color: #339933;">;</span>
     			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#player&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">animate</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
     				left<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;+=&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>x<span style="color: #339933;">*</span><span style="color: #CC0000;">32</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>
                         top<span style="color: #339933;">:</span> <span style="color: #3366CC;">&quot;+=&quot;</span><span style="color: #339933;">+</span><span style="color: #009900;">&#40;</span>y<span style="color: #339933;">*</span><span style="color: #CC0000;">32</span><span style="color: #009900;">&#41;</span>
     			<span style="color: #009900;">&#125;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">100</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>  
               <span style="color: #009900;">&#125;</span>
     	<span style="color: #009900;">&#125;</span>
        	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#player&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">swipe</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>swipe<span style="color: #339933;">:</span>swipe<span style="color: #339933;">,</span>threshold<span style="color: #339933;">:</span><span style="color: #CC0000;">50</span><span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
        	<span style="color: #003366; font-weight: bold;">function</span> swipe<span style="color: #009900;">&#40;</span>event<span style="color: #339933;">,</span>direction<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #000066; font-weight: bold;">switch</span><span style="color: #009900;">&#40;</span>direction<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
     			<span style="color: #000066; font-weight: bold;">case</span> <span style="color: #3366CC;">&quot;left&quot;</span><span style="color: #339933;">:</span>
     				possible_move<span style="color: #009900;">&#40;</span><span style="color: #339933;">-</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span>
     				<span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
     			<span style="color: #000066; font-weight: bold;">case</span> <span style="color: #3366CC;">&quot;up&quot;</span><span style="color: #339933;">:</span>
     				possible_move<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,-</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span>
     				<span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
     			<span style="color: #000066; font-weight: bold;">case</span> <span style="color: #3366CC;">&quot;right&quot;</span><span style="color: #339933;">:</span>
     				possible_move<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">0</span><span style="color: #009900;">&#41;</span>
     				<span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
     			<span style="color: #000066; font-weight: bold;">case</span> <span style="color: #3366CC;">&quot;down&quot;</span><span style="color: #339933;">:</span>
     				possible_move<span style="color: #009900;">&#40;</span><span style="color: #CC0000;">0</span><span style="color: #339933;">,</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span>
     				<span style="color: #000066; font-weight: bold;">break</span><span style="color: #339933;">;</span>
     		<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span>
     <span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>
     &lt;style type=&quot;text/css&quot;&gt;
     .wall{
     	background-color:#000000;
     	width:32px;
     	height:32px;
     	position:absolute;
     }
&nbsp;
     .goal{
     	background-color:#ff0000;
     	width:32px;
     	height:32px;
     	position:absolute;	
     }
&nbsp;
     .crate{
     	border:10px solid #00ff00;
     	width:12px;
     	height:12px;
     	position:absolute;	
     }
&nbsp;
     #player{
     	border:10px solid #0000ff;
     	width:12px;
     	height:12px;
     	position:absolute;	
     }
     &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
     &lt;div id = &quot;sokoban&quot;&gt;&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre></td></tr></table></div>

<p>At <strong>line 5</strong> we have the <code>viewport</code> meta declaration as explained in <a href="http://www.emanueleferonato.com/2011/06/30/making-a-game-with-html-jquery-mobile-and-publishing-it-to-apple-app-store/">this post</a> but the core lies at <strong>line 9</strong> when I call <strong><a href="http://labs.skinkers.com/touchSwipe/" target="_blank">TouchSwipe</a></strong>, a jQuery plugin for touch devices.</p>
<p>Everything is managed by this fantastic plugin, since among its features you can find:</p>
<p>* Detects swipes in 4 directions, &#8220;up&#8221;, &#8220;down&#8221;, &#8220;left&#8221; and &#8220;right&#8221;<br />
* Supports single finger or double finger touch events<br />
* Supports click events both on the touchSwipe object and its child objects<br />
* Definable threshold to determin when a gesture is actually a swipe<br />
* Events triggered for swipe &#8220;start&#8221;,&#8221;move&#8221;,&#8221;end&#8221; and &#8220;cancel&#8221;<br />
* End event can be triggered either on touch release, or as soon as threshold is met<br />
* Allows swiping and page scrolling</p>
<p>So WASD key interaction you can find in the <a href="http://www.emanueleferonato.com/2010/06/14/creation-of-a-sokoban-game-with-jquery/">original version</a> has been replaced by swipe interaction at <strong>lines 90-106</strong>, where every swipe longer than 50 pixels is translated into a movement.</p>
<p>To test it, point your mobile browser to <a href="http://www.emanueleferonato.com/stuff/touchban/" target="_blank">this page</a>, put your finger on the hero (the blue square) and move it with a swipe.</p>
<p>That wasy? Yes, that easy. The App store is getting closer and closer.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2011/07/06/controlling-an-iphone-mobile-game-with-swipes-using-jquery/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Making a game with HTML + jQuery Mobile and publishing it to Apple App Store</title>
		<link>http://www.emanueleferonato.com/2011/06/30/making-a-game-with-html-jquery-mobile-and-publishing-it-to-apple-app-store/</link>
		<comments>http://www.emanueleferonato.com/2011/06/30/making-a-game-with-html-jquery-mobile-and-publishing-it-to-apple-app-store/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 08:39:55 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Game design]]></category>
		<category><![CDATA[Html]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=4379</guid>
		<description><![CDATA[The first attempt to create an iPhone game starting from a web page.]]></description>
			<content:encoded><![CDATA[<p>During these days I am playing with HTML to build an iPhone web app and publish it on the <a href="http://www.apple.com/iphone/apps-for-iphone/" target = "_blank">Apple App Store</a>.</p>
<p>It will be a long journey, so let&#8217;s start with something simple: a jQuery version of <a href="http://www.emanueleferonato.com/2009/03/19/magormin-an-old-php-based-game/">MagOrMin &#8211; an old php based game</a>, whose concept have been applied for the creation of <a href="http://www.emanueleferonato.com/2007/12/30/guessnext-complete-flash-game-with-highscores/">GuessNext</a> Flash game.</p>
<p>The first step in making an HTML app for iPhone is making an HTML page.</p>
<p>And this is main, the most basic possible:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;html&gt;
&nbsp;
&lt;head&gt;
&nbsp;
	&lt;script src = &quot;jquery.js&quot;&gt;&lt;/script&gt;
	&lt;script src = &quot;game.js&quot;&gt;&lt;/script&gt;
&nbsp;
&lt;/head&gt;
&nbsp;
&lt;body&gt;
&nbsp;
&lt;div id = &quot;number&quot;&gt;&lt;/div&gt;
&lt;div id = &quot;higher&quot;&gt;higher&lt;/div&gt;
&lt;div id = &quot;lower&quot;&gt;lower&lt;/div&gt;
&lt;div id = &quot;comment&quot;&gt;&lt;/div&gt;
&nbsp;
&lt;/body&gt;	
&nbsp;
&lt;/html&gt;</pre></td></tr></table></div>

<p>Where jquery.js contains the latest <a href="http://docs.jquery.com/Downloading_jQuery" target = "_blank">jQuery distribution</a> and game.js is this script:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
	<span style="color: #003366; font-weight: bold;">var</span> currentNumber <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #003366; font-weight: bold;">var</span> score <span style="color: #339933;">=</span> <span style="color: #CC0000;">0</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#number&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span>currentNumber<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#comment&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Click higher or lower&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#higher&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> newNumber <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>newNumber <span style="color: #339933;">&gt;=</span> currentNumber<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			score<span style="color: #339933;">++;</span>	
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#comment&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Good! score: &quot;</span><span style="color: #339933;">+</span>score<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
		<span style="color: #009900;">&#125;</span>
		<span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#comment&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Bad! score: &quot;</span><span style="color: #339933;">+</span>score<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		currentNumber <span style="color: #339933;">=</span> newNumber<span style="color: #339933;">;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#number&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span>currentNumber<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#lower&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
		<span style="color: #003366; font-weight: bold;">var</span> newNumber <span style="color: #339933;">=</span> Math.<span style="color: #660066;">floor</span><span style="color: #009900;">&#40;</span>Math.<span style="color: #660066;">random</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">*</span><span style="color: #CC0000;">10</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>newNumber <span style="color: #339933;">&lt;=</span> currentNumber<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			score<span style="color: #339933;">++;</span>	
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#comment&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Good! score: &quot;</span><span style="color: #339933;">+</span>score<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
		<span style="color: #009900;">&#125;</span>	
		<span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#comment&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;Bad! score: &quot;</span><span style="color: #339933;">+</span>score<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
		<span style="color: #009900;">&#125;</span>
		currentNumber <span style="color: #339933;">=</span> newNumber<span style="color: #339933;">;</span>
		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#number&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span>currentNumber<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span>
<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></td></tr></table></div>

<p>Explaining HTML and jQuery is beyond the scope of this post, just notice there are four divs:</p>
<p><strong>number</strong> contains a random integer number from 0 to 9</p>
<p><strong>higher</strong> is a clickable div and when the player clicks on it then he guesses next random number will be higher (or equal) than the current one</p>
<p><strong>lower</strong> follows the same concept as <code>higher</code> but the guess assumes next random number will be lower or equal than the current one</p>
<p><strong>comment</strong> contains in-game comments, such as &#8220;Good!&#8221;, &#8220;Bad!&#8221; and the current score.</p>
<p>At this stage the game has no limit, no game over, no high scores, nothing. But it&#8217;s a good start.</p>
<p>This is what you get if you upload the scripts on a page and browse it with your iPhone:</p>
<p><img src="/wp-content/uploads/2011/06/iphone01.jpg" /></p>
<p>You can even play it, but the text is so tiny!</p>
<p>This happens because unless you tell it otherwise, Safari on the iPhone is going to assume that your page width is 980px.</p>
<p>So we are going to add this line between <code>&lt;head&gt;</code> and <code>&lt;\head&gt;</code> to specify the viewport:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;meta name=&quot;viewport&quot; content=&quot;user-scalable=no, width=device-width&quot; /&gt;</pre></div></div>

<p>This is how the same page looks with the correct <code>viewport</code> meta data:</p>
<p><img src="/wp-content/uploads/2011/06/iphone02.jpg" /></p>
<p>Much better now&#8230; and more playable since the &#8220;buttons&#8221; are bigger.</p>
<p>But it&#8217;s obvious we won&#8217;t go so far without a library designed with mobile devices in mind.</p>
<p>This is when <a href="http://jquerymobile.com/" target = "_blank">jQuery Mobile</a> comes into play. It&#8217;s an unified user interface system across all popular mobile device platforms, built on the rock-solid jQuery and jQuery UI foundation, and that&#8217;s what we need.</p>
<p>Now it&#8217;s time to heavily change our html:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;!DOCTYPE html&gt; 
&nbsp;
&lt;html&gt;
&nbsp;
&lt;head&gt;
&nbsp;
	&lt;meta name=&quot;viewport&quot; content=&quot;user-scalable=no, width=device-width&quot; /&gt;
&nbsp;
	&lt;link rel=&quot;stylesheet&quot; href=&quot;jquery.mobile-1.0b1.min.css&quot; /&gt;
&nbsp;
	&lt;script src = &quot;jquery.js&quot;&gt;&lt;/script&gt;
	&lt;script src=&quot;jquery.mobile-1.0b1.min.js&quot;&gt;&lt;/script&gt;
	&lt;script src = &quot;game.js&quot;&gt;&lt;/script&gt;
&nbsp;
&lt;/head&gt;
&nbsp;
&lt;body&gt;
&nbsp;
&lt;div data-role=&quot;page&quot;&gt;
&nbsp;
	&lt;div data-role=&quot;header&quot;&gt;
		&lt;h1&gt;Page Title&lt;/h1&gt;
	&lt;/div&gt;
&nbsp;
	&lt;div data-role=&quot;content&quot;&gt;	
		&lt;div id = &quot;number&quot;&gt;&lt;/div&gt;
		&lt;div id = &quot;higher&quot;&gt;higher&lt;/div&gt;
		&lt;div id = &quot;lower&quot;&gt;lower&lt;/div&gt;
		&lt;div id = &quot;comment&quot;&gt;&lt;/div&gt;		
	&lt;/div&gt;
&nbsp;
	&lt;div data-role=&quot;footer&quot;&gt;
		&lt;h4&gt;Page Footer&lt;/h4&gt;
	&lt;/div&gt;
&lt;/div&gt;
&nbsp;
&lt;/body&gt;
&nbsp;
&lt;/html&gt;</pre></td></tr></table></div>

<p><strong>Line 9</strong>: imports jQuery mobile stylesheet.</p>
<p><strong>Line12</strong>: imports jQuery Mobile library. Both the library and the stylesheet can be downloaded from <a href="http://jquerymobile.com/download/" target = "_blank">this page</a></p>
<p><strong>Line 19</strong>: we are meeting our first <code>data-role</code> attribute. This will tell jQuery Mobile the role of the div in the mobile page. With <code>data-role="page"</code> we tell jQM it&#8217;s the beginning of a mobile page.</p>
<p><strong>Line 21</strong>: <code>data-role="header"</code> tells us we are working wit the header of the page.</p>
<p><strong>Line 25</strong>: <code>data-role="content"</code> tells us we are working wit the content of the page.</p>
<p><strong>Line 32</strong>: <code>data-role="footer"</code> tells us we are working wit the footer of the page.</p>
<p>Once the browser is pointed on the page, jQM automatically triggers all HTML5 <code>data-role</code> attributes to render the page with all necessary widgets. That&#8217;s what we have now:</p>
<p><img src="/wp-content/uploads/2011/06/iphone03.jpg" /></p>
<p>This is not that good yet, as the footer isn&#8217;t at the bottom of the page but just when the page itself ends. To have the footer (and the header) fixed on the bottom (and on the top) of the page, change <strong>lines 21</strong> and <strong>32</strong> respectively with:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>21
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;div data-role=&quot;header&quot; data-position=&quot;fixed&quot;&gt;</pre></td></tr></table></div>

<p>and</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>32
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;div data-role=&quot;footer&quot; data-position=&quot;fixed&quot;&gt;</pre></td></tr></table></div>

<p>and now your header and footer will be fixed at the very top and at the very bottom of the page, this way:</p>
<p><img src="/wp-content/uploads/2011/06/iphone04.jpg" /></p>
<p>Anyway, we are greedy and we want our page to go in full screen mode, without showing the address bar at the top and the toolbar at the bottom.</p>
<p>This will be made in two steps: first, we have to insert this line between <code>&lt;head&gt;</code> and <code>&lt;\head&gt;</code>:</p>

<div class="wp_syntax"><div class="code"><pre class="html" style="font-family:monospace;">&lt;meta name=&quot;apple-mobile-web-app-capable&quot; content=&quot;yes&quot; /&gt;</pre></div></div>

<p>Then, we have to launch the web page from Home, that is the iPhone &#8220;desktop&#8221;. Add the page to home: a custom icon will be generated with the thumbnail of the page:</p>
<p><img src="/wp-content/uploads/2011/06/iphone06.jpg" /></p>
<p>and once you call it directly from the icon you will get your full page navigation.</p>
<p><img src="/wp-content/uploads/2011/06/iphone07.jpg" /></p>
<p>The last thing we will see in this first part is how to create two mobile friendly buttons to control &#8220;higher&#8221; and &#8220;lower&#8221; guesses.</p>
<p>Change your content block this way:</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>25
26
27
28
29
30
</pre></td><td class="code"><pre class="html" style="font-family:monospace;">&lt;div data-role=&quot;content&quot;&gt;	
	&lt;div id = &quot;number&quot;&gt;&lt;/div&gt;
	&lt;a href=&quot;#&quot; data-role=&quot;button&quot; id = &quot;higher&quot;&gt;Higher&lt;/a&gt;
	&lt;a href=&quot;#&quot; data-role=&quot;button&quot; id = &quot;lower&quot;&gt;Lower&lt;/a&gt;
	&lt;div id = &quot;comment&quot;&gt;&lt;/div&gt;		
&lt;/div&gt;</pre></td></tr></table></div>

<p>Button divs have been changed to anchor texts with <code>data-role="button"</code>. This will make jQuery Mobile render the links as buttons.</p>
<p>This is how the page looks now:</p>
<p><img src="/wp-content/uploads/2011/06/iphone05.jpg" /></p>
<p>But to interact with them we have to change a bit the javascript changing<strong> lines 6</strong> and <strong>18</strong> from respectively</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>6
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#higher&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span></pre></td></tr></table></div>

<p>and</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>18
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#lower&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">click</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span></pre></td></tr></table></div>

<p>to respectively</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>6
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#higher&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">live</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;click tap&quot;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span></pre></td></tr></table></div>

<p>and</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>18
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;">$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#lower&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">live</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;click tap&quot;</span><span style="color: #339933;">,</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span></pre></td></tr></table></div>

<p>And finally you will be able to play again using the new buttons.</p>
<p>This is where this tutorial ends, but there&#8217;s still a lot to do. During next step we&#8217;ll build a preloader, save high scores and enhance the visual appeal of the game.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2011/06/30/making-a-game-with-html-jquery-mobile-and-publishing-it-to-apple-app-store/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Create awesome HTML5 games with Impact</title>
		<link>http://www.emanueleferonato.com/2011/04/07/create-awesome-html5-games-with-impact/</link>
		<comments>http://www.emanueleferonato.com/2011/04/07/create-awesome-html5-games-with-impact/#comments</comments>
		<pubDate>Thu, 07 Apr 2011 17:09:36 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Game design]]></category>
		<category><![CDATA[Html]]></category>
		<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=3967</guid>
		<description><![CDATA[Build HTML5 Games in no time with Impact JavaScript Game Engine. Games created with Impact require no browser plugins or any software installations – just a modern browser that supports the Canvas tag.]]></description>
			<content:encoded><![CDATA[<p>Today I want to show you an impressive library you can use to create great HTML5 games: <strong><a target = "_blank" href="http://impactjs.com/">Impact</a></strong>.</p>
<p><a href="http://impactjs.com/" target = "_blank"><img src="/wp-content/uploads/2011/04/impact.jpg" /></a></p>
<p>Impact is a JavaScript Game Engine that allows you to develop HTML5 Games in no time. Games created with Impact require no browser plugins or any software installations – just a modern browser that supports the Canvas tag.</p>
<p>Impact runs on all HTML5 capable browsers: Firefox, Chrome, Safari, Opera and (behold) even Internet Explorer 9. Of course this also includes the iPhone, iPod Touch and iPad.</p>
<p>I got a license from <strong>Dominic Szablewski</strong>, the author, and I&#8217;ll start playing with the engine in a couple of days, releasing some tutorials about making a game with this tool.</p>
<p><a href="http://playbiolab.com/" target = "_blank"><img src="/wp-content/uploads/2011/04/biolab.jpg" /></a></p>
<p>Meanwhile, visit the official site or play <strong><a target = "_blank" href="http://playbiolab.com/">Biolab Disaster</a></strong>, a browser game made with Impact. You&#8217;ll find it has the same look &#038; feel of Flash games made with Flixel or FlashPunk.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2011/04/07/create-awesome-html5-games-with-impact/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
		<item>
		<title>jQuery color picker using Farbtastic and jQuery UI</title>
		<link>http://www.emanueleferonato.com/2011/03/22/jquery-color-picker-using-farbtastic-and-jquery-ui/</link>
		<comments>http://www.emanueleferonato.com/2011/03/22/jquery-color-picker-using-farbtastic-and-jquery-ui/#comments</comments>
		<pubDate>Mon, 21 Mar 2011 22:14:12 +0000</pubDate>
		<dc:creator>Emanuele Feronato</dc:creator>
				<category><![CDATA[Javascript]]></category>

		<guid isPermaLink="false">http://www.emanueleferonato.com/?p=3875</guid>
		<description><![CDATA[I want to share with you a little snippet of code I am using for a project. I was looking for a cute jQuery color picker and I found Farbtastic to be the best for my needs. Anyway, I also liked how jQuery UI used the Slider to make a simple color picker so I [...]]]></description>
			<content:encoded><![CDATA[<p>I want to share with you a little snippet of code I am using for a project. I was looking for a cute jQuery color picker and I found <a target = "_blank" href="http://acko.net/dev/farbtastic">Farbtastic</a> to be the best for my needs. Anyway, I also liked how <a target = "_blank" href="http://jqueryui.com/demos/slider/#colorpicker">jQuery UI</a> used the Slider to make a simple color picker so I decided to merge both techniques to create a single color picker with more features.</p>
<div align="center"><iframe src = "/stuff/picker/" width = "510" height = "300" frameborder = "0" scrolling="no"></iframe></div>
<p>Use the color wheel or the sliders and see how everything is linked.</p>
<p>I tried to keep the code in a single page, using Google as CDN when necessary. Here is the source:<span id="more-3875"></span></p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
</pre></td><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&lt;!</span>DOCTYPE html <span style="color: #003366; font-weight: bold;">PUBLIC</span> <span style="color: #3366CC;">&quot;-//W3C//DTD XHTML 1.0 Strict//EN&quot;</span> <span style="color: #3366CC;">&quot;http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>html xmlns<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;http://www.w3.org/1999/xhtml&quot;</span> xml<span style="color: #339933;">:</span>lang<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;en&quot;</span> lang<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;en&quot;</span><span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>head<span style="color: #339933;">&gt;</span>
     <span style="color: #339933;">&lt;</span>script src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.5.0/jquery.min.js&quot;</span> type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span>
     <span style="color: #339933;">&lt;</span>script src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/jquery-ui.min.js&quot;</span> type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span>
     <span style="color: #339933;">&lt;</span>script src<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;js/farbtastic.js&quot;</span> type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;&lt;/</span>script<span style="color: #339933;">&gt;</span>
&nbsp;
	<span style="color: #339933;">&lt;</span>link rel<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;stylesheet&quot;</span> type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/css&quot;</span> href<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.11/themes/ui-lightness/jquery-ui.css&quot;</span> media <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;all&quot;</span><span style="color: #339933;">/&gt;</span>
     <span style="color: #339933;">&lt;</span>link rel<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;stylesheet&quot;</span> href<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;css/farbtastic.css&quot;</span> type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/css&quot;</span> <span style="color: #339933;">/&gt;</span>
     <span style="color: #339933;">&lt;</span>style type<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;text/css&quot;</span><span style="color: #339933;">&gt;</span>
     #red .<span style="color: #660066;">ui</span><span style="color: #339933;">-</span>slider<span style="color: #339933;">-</span>range<span style="color: #339933;">,</span>#red .<span style="color: #660066;">ui</span><span style="color: #339933;">-</span>slider<span style="color: #339933;">-</span>handle<span style="color: #009900;">&#123;</span>
		background<span style="color: #339933;">:</span> #ef2929<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	#green .<span style="color: #660066;">ui</span><span style="color: #339933;">-</span>slider<span style="color: #339933;">-</span>range<span style="color: #339933;">,</span>#green .<span style="color: #660066;">ui</span><span style="color: #339933;">-</span>slider<span style="color: #339933;">-</span>handle<span style="color: #009900;">&#123;</span>
		background<span style="color: #339933;">:</span> #8ae234<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	#blue .<span style="color: #660066;">ui</span><span style="color: #339933;">-</span>slider<span style="color: #339933;">-</span>range<span style="color: #339933;">,</span>#blue .<span style="color: #660066;">ui</span><span style="color: #339933;">-</span>slider<span style="color: #339933;">-</span>handle<span style="color: #009900;">&#123;</span>
		background<span style="color: #339933;">:</span> #729fcf<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	#swatch<span style="color: #009900;">&#123;</span>
		width<span style="color: #339933;">:</span> 180px<span style="color: #339933;">;</span>
		height<span style="color: #339933;">:</span> 180px<span style="color: #339933;">;</span>
		background<span style="color: #339933;">-</span>image<span style="color: #339933;">:</span>none<span style="color: #339933;">;</span>
		float<span style="color: #339933;">:</span>right<span style="color: #339933;">;</span>
		margin<span style="color: #339933;">:</span>6px 20px 0px 0px<span style="color: #339933;">;</span>
		border<span style="color: #339933;">:</span>none<span style="color: #339933;">;</span>
		background<span style="color: #339933;">-</span>color<span style="color: #339933;">:</span>black<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	#sliders<span style="color: #009900;">&#123;</span>
		width<span style="color: #339933;">:</span>500px<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	#colorpicker<span style="color: #009900;">&#123;</span>
		float<span style="color: #339933;">:</span>left<span style="color: #339933;">;</span>
		margin<span style="color: #339933;">:</span>0px 0px 0px 20px<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	#red<span style="color: #339933;">,</span>#green<span style="color: #339933;">,</span>#blue<span style="color: #009900;">&#123;</span>
		margin<span style="color: #339933;">:</span>10px 0px 0px 0px<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	#innerswatch<span style="color: #009900;">&#123;</span>
		font<span style="color: #339933;">:</span>bold 24px arial<span style="color: #339933;">;</span>
		margin<span style="color: #339933;">:</span>75px 0px 0px 0px<span style="color: #339933;">;</span>
		text<span style="color: #339933;">-</span>align<span style="color: #339933;">:</span>center<span style="color: #339933;">;</span>
		color<span style="color: #339933;">:</span>white<span style="color: #339933;">;</span>
	<span style="color: #009900;">&#125;</span>
	<span style="color: #339933;">&lt;/</span>style<span style="color: #339933;">&gt;</span>
     <span style="color: #339933;">&lt;</span>script type <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;text/javascript&quot;</span><span style="color: #339933;">&gt;</span>
     	$<span style="color: #009900;">&#40;</span>document<span style="color: #009900;">&#41;</span>.<span style="color: #660066;">ready</span><span style="color: #009900;">&#40;</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
			<span style="color: #003366; font-weight: bold;">var</span> colorPicker <span style="color: #339933;">=</span> $.<span style="color: #660066;">farbtastic</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#colorpicker&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			colorPicker.<span style="color: #660066;">linkTo</span><span style="color: #009900;">&#40;</span>pickerUpdate<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#red,#green,#blue&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slider</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#123;</span>
				orientation<span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;horizontal&quot;</span><span style="color: #339933;">,</span>
				range<span style="color: #339933;">:</span><span style="color: #3366CC;">&quot;min&quot;</span><span style="color: #339933;">,</span>
				max<span style="color: #339933;">:</span><span style="color: #CC0000;">255</span><span style="color: #339933;">,</span>
				slide<span style="color: #339933;">:</span>sliderUpdate
			<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #003366; font-weight: bold;">function</span> sliderUpdate<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span>
				<span style="color: #003366; font-weight: bold;">var</span> red<span style="color: #339933;">=</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#red&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slider</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;value&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #003366; font-weight: bold;">var</span> green<span style="color: #339933;">=</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#green&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slider</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;value&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #003366; font-weight: bold;">var</span> blue<span style="color: #339933;">=</span>$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#blue&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slider</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;value&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #003366; font-weight: bold;">var</span> hex<span style="color: #339933;">=</span>hexFromRGB<span style="color: #009900;">&#40;</span>red<span style="color: #339933;">,</span>green<span style="color: #339933;">,</span>blue<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				colorPicker.<span style="color: #660066;">setColor</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#&quot;</span><span style="color: #339933;">+</span>hex<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>	
			<span style="color: #003366; font-weight: bold;">function</span> hexFromRGB<span style="color: #009900;">&#40;</span>r<span style="color: #339933;">,</span>g<span style="color: #339933;">,</span>b<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				<span style="color: #003366; font-weight: bold;">var</span> hex <span style="color: #339933;">=</span> <span style="color: #009900;">&#91;</span>r.<span style="color: #660066;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">16</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>g.<span style="color: #660066;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">16</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span>b.<span style="color: #660066;">toString</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">16</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span>
				$.<span style="color: #660066;">each</span><span style="color: #009900;">&#40;</span>hex<span style="color: #339933;">,</span><span style="color: #003366; font-weight: bold;">function</span><span style="color: #009900;">&#40;</span>nr<span style="color: #339933;">,</span>val<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
					<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>val.<span style="color: #660066;">length</span><span style="color: #339933;">===</span><span style="color: #CC0000;">1</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
						hex<span style="color: #009900;">&#91;</span>nr<span style="color: #009900;">&#93;</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;0&quot;</span><span style="color: #339933;">+</span>val<span style="color: #339933;">;</span>
					<span style="color: #009900;">&#125;</span>
				<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000066; font-weight: bold;">return</span> hex.<span style="color: #660066;">join</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">toUpperCase</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
			<span style="color: #009900;">&#125;</span>
			<span style="color: #003366; font-weight: bold;">function</span> pickerUpdate<span style="color: #009900;">&#40;</span>color<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#swatch&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;background-color&quot;</span><span style="color: #339933;">,</span>color<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #000066; font-weight: bold;">if</span><span style="color: #009900;">&#40;</span>colorPicker.<span style="color: #660066;">hsl</span><span style="color: #009900;">&#91;</span><span style="color: #CC0000;">2</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">&gt;</span><span style="color: #CC0000;">0.5</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
               		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#innerswatch&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;color&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;#000000&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>     
          		<span style="color: #009900;">&#125;</span>
          		<span style="color: #000066; font-weight: bold;">else</span><span style="color: #009900;">&#123;</span>
               		$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#innerswatch&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">css</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;color&quot;</span><span style="color: #339933;">,</span><span style="color: #3366CC;">&quot;#ffffff&quot;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>   
          		<span style="color: #009900;">&#125;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#innerswatch&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">html</span><span style="color: #009900;">&#40;</span>color.<span style="color: #660066;">toUpperCase</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
				<span style="color: #003366; font-weight: bold;">var</span> red <span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span>color.<span style="color: #660066;">substring</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">1</span><span style="color: #339933;">,</span><span style="color: #CC0000;">3</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">16</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #003366; font-weight: bold;">var</span> green <span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span>color.<span style="color: #660066;">substring</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">3</span><span style="color: #339933;">,</span><span style="color: #CC0000;">5</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">16</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				<span style="color: #003366; font-weight: bold;">var</span> blue <span style="color: #339933;">=</span> parseInt<span style="color: #009900;">&#40;</span>color.<span style="color: #660066;">substring</span><span style="color: #009900;">&#40;</span><span style="color: #CC0000;">5</span><span style="color: #339933;">,</span><span style="color: #CC0000;">7</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">,</span><span style="color: #CC0000;">16</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>	
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#red&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slider</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;value&quot;</span><span style="color: #339933;">,</span>red<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#green&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slider</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;value&quot;</span><span style="color: #339933;">,</span>green<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
				$<span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;#blue&quot;</span><span style="color: #009900;">&#41;</span>.<span style="color: #660066;">slider</span><span style="color: #009900;">&#40;</span><span style="color: #3366CC;">&quot;value&quot;</span><span style="color: #339933;">,</span>blue<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>		
			<span style="color: #009900;">&#125;</span>
		<span style="color: #009900;">&#125;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
     <span style="color: #339933;">&lt;/</span>script<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>head<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;</span>body<span style="color: #339933;">&gt;</span>
	<span style="color: #339933;">&lt;</span>div id <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;sliders&quot;</span><span style="color: #339933;">&gt;</span>
		<span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;colorpicker&quot;</span><span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
		<span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;swatch&quot;</span> <span style="color: #003366; font-weight: bold;">class</span><span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;ui-widget-content ui-corner-all&quot;</span><span style="color: #339933;">&gt;</span>
			<span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;innerswatch&quot;</span><span style="color: #339933;">&gt;</span>#000000<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
		<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
		<span style="color: #339933;">&lt;</span>div style <span style="color: #339933;">=</span> <span style="color: #3366CC;">&quot;clear:both&quot;</span><span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
		<span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;red&quot;</span><span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
		<span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;green&quot;</span><span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
		<span style="color: #339933;">&lt;</span>div id<span style="color: #339933;">=</span><span style="color: #3366CC;">&quot;blue&quot;</span><span style="color: #339933;">&gt;&lt;/</span>div<span style="color: #339933;">&gt;</span>
	<span style="color: #339933;">&lt;/</span>div<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>body<span style="color: #339933;">&gt;</span>
<span style="color: #339933;">&lt;/</span>html<span style="color: #339933;">&gt;</span></pre></td></tr></table></div>

<p>You can also <a href="/stuff/picker/index.zip">download the complete package</a> along with Farbtastic color picker.</p>
<p>How would you improve it?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.emanueleferonato.com/2011/03/22/jquery-color-picker-using-farbtastic-and-jquery-ui/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced
Database Caching 8/18 queries in 0.009 seconds using disk: basic

Served from: www.emanueleferonato.com @ 2012-02-08 20:01:57 -->
