<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.gumstix.com/index.php?action=history&amp;feed=atom&amp;title=Minesweeper_in_Java</id>
		<title>Minesweeper in Java - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.gumstix.com/index.php?action=history&amp;feed=atom&amp;title=Minesweeper_in_Java"/>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Minesweeper_in_Java&amp;action=history"/>
		<updated>2026-05-13T20:51:14Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.25.3</generator>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Minesweeper_in_Java&amp;diff=4887&amp;oldid=prev</id>
		<title>Searchworks: remove spam</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Minesweeper_in_Java&amp;diff=4887&amp;oldid=prev"/>
				<updated>2010-11-23T23:46:01Z</updated>
		
		<summary type="html">&lt;p&gt;remove spam&lt;/p&gt;
&lt;a href=&quot;https://wiki.gumstix.com/index.php?title=Minesweeper_in_Java&amp;amp;diff=4887&amp;amp;oldid=4805&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Searchworks</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Minesweeper_in_Java&amp;diff=4805&amp;oldid=prev</id>
		<title>Aqisecoxefi at 22:42, 23 November 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Minesweeper_in_Java&amp;diff=4805&amp;oldid=prev"/>
				<updated>2010-11-23T22:42:09Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.gumstix.com/index.php?title=Minesweeper_in_Java&amp;amp;diff=4805&amp;amp;oldid=4595&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Aqisecoxefi</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Minesweeper_in_Java&amp;diff=4595&amp;oldid=prev</id>
		<title>Searchworks: Undo revision 4594 by Shescort1 (Talk)</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Minesweeper_in_Java&amp;diff=4595&amp;oldid=prev"/>
				<updated>2010-08-27T16:27:35Z</updated>
		
		<summary type="html">&lt;p&gt;Undo revision 4594 by &lt;a href=&quot;/index.php/Special:Contributions/Shescort1&quot; title=&quot;Special:Contributions/Shescort1&quot;&gt;Shescort1&lt;/a&gt; (&lt;a href=&quot;/index.php?title=User_talk:Shescort1&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;User talk:Shescort1 (page does not exist)&quot;&gt;Talk&lt;/a&gt;)&lt;/p&gt;
&lt;a href=&quot;https://wiki.gumstix.com/index.php?title=Minesweeper_in_Java&amp;amp;diff=4595&amp;amp;oldid=4594&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Searchworks</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Minesweeper_in_Java&amp;diff=4594&amp;oldid=prev</id>
		<title>Shescort1 at 09:49, 27 August 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Minesweeper_in_Java&amp;diff=4594&amp;oldid=prev"/>
				<updated>2010-08-27T09:49:47Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;a href=&quot;https://wiki.gumstix.com/index.php?title=Minesweeper_in_Java&amp;amp;diff=4594&amp;amp;oldid=4505&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>Shescort1</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Minesweeper_in_Java&amp;diff=4505&amp;oldid=prev</id>
		<title>JustinC474 at 22:07, 5 August 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Minesweeper_in_Java&amp;diff=4505&amp;oldid=prev"/>
				<updated>2010-08-05T22:07:58Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 22:07, 5 August 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L1&quot; &gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This tutorial gives a brief overview of what to do to get a small, graphical Minesweeper game running on your Overo. If you have not done so, please go through the tutorials [[Eclipse on Gumstix for new users]] and [[HelloWorld in Java]].&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This tutorial gives a brief overview of what to do to get a small, graphical Minesweeper game running on your Overo. If you have not done so, please go through the tutorials [[Eclipse on Gumstix for new users]] and [[HelloWorld in Java]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;This does not explain the game of MineSweeper, rather just lets use utilize the code to see an example of the graphical possibilities using an Overo COM.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Create a new Project in Eclipse &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*Create a new Project in Eclipse &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JustinC474</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Minesweeper_in_Java&amp;diff=4401&amp;oldid=prev</id>
		<title>JustinC474 at 16:02, 29 July 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Minesweeper_in_Java&amp;diff=4401&amp;oldid=prev"/>
				<updated>2010-07-29T16:02:29Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 16:02, 29 July 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L421&quot; &gt;Line 421:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 421:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;#160; &amp;#160; int cX = (int) cPoint.getX();&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;#160; &amp;#160; int cX = (int) cPoint.getX();&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;#160; &amp;#160; int cY = (int) cPoint.getY();&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;#160; &amp;#160; int cY = (int) cPoint.getY();&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;#160; &amp;#160; Point[] points = { new Point(cX - 1, cY - 1), new Point(cX - 1, cY), new Point(cX - 1, cY + 1), new Point(cX, cY - 1), new Point(cX, cY + 1), new Point(cX + 1, cY - 1), &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;#160; &amp;#160; Point[] points = { new Point(cX - 1, cY - 1), new Point(cX - 1, cY), new Point(cX - 1, cY + 1), new Point(cX, cY - 1), new Point(cX, cY + 1), &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;/del&gt;new Point(cX + 1, cY), new Point(cX + 1, cY + 1) };&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160;  &lt;/ins&gt;new Point(cX + 1, cY - 1), new Point(cX + 1, cY), new Point(cX + 1, cY + 1) };&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;#160; &amp;#160; return points;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;#160; &amp;#160; return points;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JustinC474</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Minesweeper_in_Java&amp;diff=4400&amp;oldid=prev</id>
		<title>JustinC474 at 16:01, 29 July 2010</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Minesweeper_in_Java&amp;diff=4400&amp;oldid=prev"/>
				<updated>2010-07-29T16:01:47Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class='diff diff-contentalign-left'&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;col class='diff-marker' /&gt;
				&lt;col class='diff-content' /&gt;
				&lt;tr style='vertical-align: top;'&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan='2' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Revision as of 16:01, 29 July 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;L421&quot; &gt;Line 421:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 421:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;#160; &amp;#160; int cX = (int) cPoint.getX();&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;#160; &amp;#160; int cX = (int) cPoint.getX();&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;#160; &amp;#160; int cY = (int) cPoint.getY();&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;#160; &amp;#160; int cY = (int) cPoint.getY();&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;#160; &amp;#160; Point[] points = { new Point(cX - 1, cY - 1), new Point(cX - 1, cY), new Point(cX - 1, cY + 1), new Point(cX, cY - 1), new Point(cX, cY + 1), new Point(cX + 1, cY - 1), new Point(cX + 1, cY), new Point(cX + 1, cY + 1) };&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;#160; &amp;#160; Point[] points = { new Point(cX - 1, cY - 1), new Point(cX - 1, cY), new Point(cX - 1, cY + 1), new Point(cX, cY - 1), new Point(cX, cY + 1), new Point(cX + 1, cY - 1), &amp;#160;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &amp;#160; &lt;/ins&gt;new Point(cX + 1, cY), new Point(cX + 1, cY + 1) };&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;#160; &amp;#160; return points;&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;#160; &amp;#160; return points;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;	&amp;#160; }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>JustinC474</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Minesweeper_in_Java&amp;diff=4399&amp;oldid=prev</id>
		<title>JustinC474: Created page with 'This tutorial gives a brief overview of what to do to get a small, graphical Minesweeper game running on your Overo. If you have not done so, please go through the tutorials [[Ec…'</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Minesweeper_in_Java&amp;diff=4399&amp;oldid=prev"/>
				<updated>2010-07-29T16:00:15Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;#039;This tutorial gives a brief overview of what to do to get a small, graphical Minesweeper game running on your Overo. If you have not done so, please go through the tutorials [[Ec…&amp;#039;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This tutorial gives a brief overview of what to do to get a small, graphical Minesweeper game running on your Overo. If you have not done so, please go through the tutorials [[Eclipse on Gumstix for new users]] and [[HelloWorld in Java]].&lt;br /&gt;
&lt;br /&gt;
*Create a new Project in Eclipse &lt;br /&gt;
:*'''File -&amp;gt; New Project -&amp;gt; Java Project'''&lt;br /&gt;
*Create a class '''Main Class'''&lt;br /&gt;
:*Copy and paste the following code to that class:&lt;br /&gt;
&amp;lt;pre&amp;gt;  &lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JColorChooser;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JOptionPane;&lt;br /&gt;
&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    JFrame f = new JFrame(&amp;quot;JColorChooser Sample&amp;quot;);&lt;br /&gt;
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    final JButton button = new JButton(&amp;quot;Pick to Change Background&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    ActionListener actionListener = new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent actionEvent) {&lt;br /&gt;
        Color initialBackground = button.getBackground();&lt;br /&gt;
        Color background = JColorChooser.showDialog(null,&lt;br /&gt;
            &amp;quot;JColorChooser Sample&amp;quot;, initialBackground);&lt;br /&gt;
        if (background != null) {&lt;br /&gt;
          button.setBackground(background);&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    button.addActionListener(actionListener);&lt;br /&gt;
    f.add(button, BorderLayout.CENTER);&lt;br /&gt;
    f.setSize(300, 200);&lt;br /&gt;
    f.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
}&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Create a class '''MineSweeper''' (Capital S!)&lt;br /&gt;
:*Copy and paste the following code to that class:&lt;br /&gt;
&amp;lt;pre&amp;gt;import java.awt.AWTEvent;&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.Color;&lt;br /&gt;
import java.awt.Component;&lt;br /&gt;
import java.awt.FlowLayout;&lt;br /&gt;
import java.awt.GridLayout;&lt;br /&gt;
import java.awt.Insets;&lt;br /&gt;
import java.awt.Point;&lt;br /&gt;
import java.awt.Toolkit;&lt;br /&gt;
import java.awt.event.AWTEventListener;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import java.awt.event.KeyEvent;&lt;br /&gt;
import java.awt.event.MouseAdapter;&lt;br /&gt;
import java.awt.event.MouseEvent;&lt;br /&gt;
import java.util.ArrayList;&lt;br /&gt;
import java.util.List;&lt;br /&gt;
import java.util.Random;&lt;br /&gt;
&lt;br /&gt;
import javax.swing.JButton;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JOptionPane;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
&lt;br /&gt;
public class MineSweeper extends JPanel implements AWTEventListener, ActionListener {&lt;br /&gt;
&lt;br /&gt;
	  public static enum State {&lt;br /&gt;
	    Clicked, Marked, Initial, WrongMarked&lt;br /&gt;
	  }&lt;br /&gt;
&lt;br /&gt;
	  public static enum GameState {&lt;br /&gt;
	    NotStarted, Playing, Finished&lt;br /&gt;
	  }&lt;br /&gt;
&lt;br /&gt;
	  private static final int  MAX_BOMB_COUNT  = 10;&lt;br /&gt;
	  private int          ROWS      = 9, COLUMNS = 9, TOTAL = ROWS * COLUMNS;&lt;br /&gt;
	  private JPanel        pnlMain      = new JPanel(new GridLayout(ROWS, COLUMNS));&lt;br /&gt;
	  private JLabel        lblBombCount  = new JLabel(MAX_BOMB_COUNT + &amp;quot;&amp;quot;);&lt;br /&gt;
	  private JLabel        lblTimer    = new JLabel(&amp;quot;0&amp;quot;);&lt;br /&gt;
	  private boolean        isColorCheatOn  = false;&lt;br /&gt;
	  private JButton        btnReset    = new JButton(&amp;quot;Reset&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
	  private void startThread() {&lt;br /&gt;
	    Thread th = new Thread(new Runnable() {&lt;br /&gt;
	      public void run() {&lt;br /&gt;
	        while (state == GameState.Playing) {&lt;br /&gt;
	          lblTimer.setText((Long.parseLong(lblTimer.getText()) + 1) + &amp;quot;&amp;quot;);&lt;br /&gt;
	          lblTimer.updateUI();&lt;br /&gt;
	          try {&lt;br /&gt;
	            Thread.sleep(1000);&lt;br /&gt;
	          } catch (InterruptedException e) {&lt;br /&gt;
	            e.printStackTrace();&lt;br /&gt;
	          }&lt;br /&gt;
	        }&lt;br /&gt;
	      }&lt;br /&gt;
	    });&lt;br /&gt;
	    th.start();&lt;br /&gt;
	  }&lt;br /&gt;
&lt;br /&gt;
	  private GameState  state  = GameState.NotStarted;&lt;br /&gt;
&lt;br /&gt;
	  public MineSweeper() {&lt;br /&gt;
	    setLayout(new BorderLayout());&lt;br /&gt;
	    add(pnlMain, BorderLayout.CENTER);&lt;br /&gt;
	    createButtons();&lt;br /&gt;
	    addControlPanel();&lt;br /&gt;
	    Toolkit.getDefaultToolkit().addAWTEventListener(this, AWTEvent.KEY_EVENT_MASK);&lt;br /&gt;
	  }&lt;br /&gt;
&lt;br /&gt;
	  private void showAbout() {&lt;br /&gt;
	    JOptionPane.showMessageDialog(this, &amp;quot;&amp;lt;html&amp;gt;Author : Justin Cowles Cowperthwaite &amp;lt;br&amp;gt;Version : 1.0&amp;lt;/html&amp;gt;&amp;quot;, &amp;quot;About&amp;quot;, JOptionPane.INFORMATION_MESSAGE);&lt;br /&gt;
	  }&lt;br /&gt;
&lt;br /&gt;
	  private void restartGame() {&lt;br /&gt;
	    state = GameState.NotStarted;&lt;br /&gt;
	    lblTimer.setText(&amp;quot;0&amp;quot;);&lt;br /&gt;
	    pnlMain.removeAll();&lt;br /&gt;
	    createButtons();&lt;br /&gt;
	    pnlMain.updateUI();&lt;br /&gt;
	    lblBombCount.setText(&amp;quot;&amp;quot; + MAX_BOMB_COUNT);&lt;br /&gt;
	    lblBombCount.updateUI();&lt;br /&gt;
	  }&lt;br /&gt;
&lt;br /&gt;
	  private void addControlPanel() {&lt;br /&gt;
	    JPanel pnlTimer = new JPanel(new FlowLayout(FlowLayout.RIGHT));&lt;br /&gt;
&lt;br /&gt;
	    pnlTimer.add(lblTimer);&lt;br /&gt;
&lt;br /&gt;
	    JPanel pnl = new JPanel(new FlowLayout(FlowLayout.CENTER));&lt;br /&gt;
&lt;br /&gt;
	    btnReset.setToolTipText(&amp;quot;&amp;lt;HTML&amp;gt;Press &amp;lt;B&amp;gt;F2&amp;lt;/B&amp;gt; to reset the current game&amp;lt;/HTML&amp;gt;&amp;quot;);&lt;br /&gt;
	    pnl.add(lblBombCount);&lt;br /&gt;
	    pnl.add(btnReset);&lt;br /&gt;
	    JPanel pnlN = new JPanel(new GridLayout(1, 3));&lt;br /&gt;
&lt;br /&gt;
	    pnlN.add(lblBombCount);&lt;br /&gt;
	    pnlN.add(pnl);&lt;br /&gt;
	    pnlN.add(pnlTimer);&lt;br /&gt;
	    add(pnlN, BorderLayout.NORTH);&lt;br /&gt;
	    btnReset.addActionListener(this);&lt;br /&gt;
	  }&lt;br /&gt;
&lt;br /&gt;
	  private void createButtons() {&lt;br /&gt;
	    List&amp;lt;Point&amp;gt; lstBombsLocation = new ArrayList&amp;lt;Point&amp;gt;();&lt;br /&gt;
&lt;br /&gt;
	    for (int row = 0; row &amp;lt; ROWS; row++) {&lt;br /&gt;
	      for (int col = 0; col &amp;lt; COLUMNS; col++) {&lt;br /&gt;
	        JButton btn = getButton(lstBombsLocation, TOTAL, new Point(row, col) {&lt;br /&gt;
	          @Override&lt;br /&gt;
	          public String toString() {&lt;br /&gt;
	            return (int) getX() + &amp;quot;, &amp;quot; + (int) getY();&lt;br /&gt;
	          }&lt;br /&gt;
&lt;br /&gt;
	          @Override&lt;br /&gt;
	          public boolean equals(Object obj) {&lt;br /&gt;
	            return ((Point) obj).getX() == getX() &amp;amp;&amp;amp; ((Point) obj).getY() == getY();&lt;br /&gt;
	          }&lt;br /&gt;
	        });&lt;br /&gt;
	        pnlMain.add(btn);&lt;br /&gt;
	      }&lt;br /&gt;
	    }&lt;br /&gt;
	    while (lstBombsLocation.size() &amp;lt; MAX_BOMB_COUNT) {&lt;br /&gt;
	      updateBomds(lstBombsLocation, pnlMain.getComponents());&lt;br /&gt;
	    }&lt;br /&gt;
	    for (Component c : pnlMain.getComponents()) {&lt;br /&gt;
	      updateBombCount((GameButton) c, pnlMain.getComponents());&lt;br /&gt;
	    }&lt;br /&gt;
	    // System.out.println(&amp;quot;Total Bomb Count: &amp;quot; + lstBombsLocation.size());&lt;br /&gt;
	  }&lt;br /&gt;
&lt;br /&gt;
	  private void updateBomds(List&amp;lt;Point&amp;gt; lstBombsLocation, Component[] components) {&lt;br /&gt;
	    // int currentPosition = new Double(((location.x) * COLUMNS ) +&lt;br /&gt;
	    // location.getY()).intValue();&lt;br /&gt;
	    Random r = new Random();&lt;br /&gt;
	    for (Component c : components) {&lt;br /&gt;
	      Point location = ((GameButton) c).getPosition();&lt;br /&gt;
	      int currentPosition = new Double(((location.x) * COLUMNS) + location.getY()).intValue();&lt;br /&gt;
	      int bombLocation = r.nextInt(TOTAL);&lt;br /&gt;
	      if (bombLocation == currentPosition) {&lt;br /&gt;
	        ((GameButton) c).setBomb(true);&lt;br /&gt;
	        lstBombsLocation.add(((GameButton) c).getPosition());&lt;br /&gt;
	        return;&lt;br /&gt;
	      }&lt;br /&gt;
	    }&lt;br /&gt;
	  }&lt;br /&gt;
&lt;br /&gt;
	  private GameButton getButton(List&amp;lt;Point&amp;gt; lstBombsLocation, int totalLocations, Point location) {&lt;br /&gt;
	    GameButton btn = new GameButton(location);&lt;br /&gt;
	    btn.setMargin(new Insets(0, 0, 0, 0));&lt;br /&gt;
	    btn.setFocusable(false);&lt;br /&gt;
	    if (lstBombsLocation.size() &amp;lt; MAX_BOMB_COUNT) {&lt;br /&gt;
	      if (isBomb()) {&lt;br /&gt;
	        btn.setBomb(true);&lt;br /&gt;
	        lstBombsLocation.add(location);&lt;br /&gt;
	      }&lt;br /&gt;
	    }&lt;br /&gt;
	    btn.addMouseListener(new MouseAdapter() {&lt;br /&gt;
	      @Override&lt;br /&gt;
	      public void mouseClicked(MouseEvent mouseEvent) {&lt;br /&gt;
	        if (state != GameState.Playing) {&lt;br /&gt;
	          state = GameState.Playing;&lt;br /&gt;
	          startThread();&lt;br /&gt;
	        }&lt;br /&gt;
	        if (((GameButton) mouseEvent.getSource()).isEnabled() == false) {&lt;br /&gt;
	          return;&lt;br /&gt;
	        }&lt;br /&gt;
	        if (mouseEvent.getButton() == MouseEvent.BUTTON1) {&lt;br /&gt;
	          if (((GameButton) mouseEvent.getSource()).getState() == State.Marked) {&lt;br /&gt;
	            ((GameButton) mouseEvent.getSource()).setState(State.Initial);&lt;br /&gt;
	            lblBombCount.setText((Long.parseLong(lblBombCount.getText()) + 1) + &amp;quot;&amp;quot;);&lt;br /&gt;
	            ((GameButton) mouseEvent.getSource()).updateUI();&lt;br /&gt;
	            return;&lt;br /&gt;
	          }&lt;br /&gt;
	          ((GameButton) mouseEvent.getSource()).setState(State.Clicked);&lt;br /&gt;
	          if (((GameButton) mouseEvent.getSource()).isBomb()) {&lt;br /&gt;
	            blastBombs();&lt;br /&gt;
	            return;&lt;br /&gt;
	          } else {&lt;br /&gt;
	            if (((GameButton) mouseEvent.getSource()).getBombCount() == 0) {&lt;br /&gt;
	              updateSurroundingZeros(((GameButton) mouseEvent.getSource()).getPosition());&lt;br /&gt;
	            }&lt;br /&gt;
	          }&lt;br /&gt;
	          if (!checkGameState()) {&lt;br /&gt;
	            ((GameButton) mouseEvent.getSource()).setEnabled(false);&lt;br /&gt;
	          }&lt;br /&gt;
	        } else if (mouseEvent.getButton() == MouseEvent.BUTTON3) {&lt;br /&gt;
	          if (((GameButton) mouseEvent.getSource()).getState() == State.Marked) {&lt;br /&gt;
	            ((GameButton) mouseEvent.getSource()).setState(State.Initial);&lt;br /&gt;
	            lblBombCount.setText((Long.parseLong(lblBombCount.getText()) + 1) + &amp;quot;&amp;quot;);&lt;br /&gt;
	          } else {&lt;br /&gt;
	            ((GameButton) mouseEvent.getSource()).setState(State.Marked);&lt;br /&gt;
	            lblBombCount.setText((Long.parseLong(lblBombCount.getText()) - 1) + &amp;quot;&amp;quot;);&lt;br /&gt;
	          }&lt;br /&gt;
	        }&lt;br /&gt;
	        ((GameButton) mouseEvent.getSource()).updateUI();&lt;br /&gt;
	      }&lt;br /&gt;
	    });&lt;br /&gt;
	    return btn;&lt;br /&gt;
	  }&lt;br /&gt;
&lt;br /&gt;
	  private boolean checkGameState() {&lt;br /&gt;
	    boolean isWin = false;&lt;br /&gt;
	    for (Component c : pnlMain.getComponents()) {&lt;br /&gt;
	      GameButton b = (GameButton) c;&lt;br /&gt;
	      if (b.getState() != State.Clicked) {&lt;br /&gt;
	        if (b.isBomb()) {&lt;br /&gt;
	          isWin = true;&lt;br /&gt;
	        } else {&lt;br /&gt;
	          return false;&lt;br /&gt;
	        }&lt;br /&gt;
	      }&lt;br /&gt;
	    }&lt;br /&gt;
	    if (isWin) {&lt;br /&gt;
	      state = GameState.Finished;&lt;br /&gt;
	      for (Component c : pnlMain.getComponents()) {&lt;br /&gt;
	        GameButton b = (GameButton) c;&lt;br /&gt;
	        if (b.isBomb()) {&lt;br /&gt;
	          b.setState(State.Marked);&lt;br /&gt;
	        }&lt;br /&gt;
	        b.setEnabled(false);&lt;br /&gt;
&lt;br /&gt;
	      }&lt;br /&gt;
	      JOptionPane.showMessageDialog(this, &amp;quot;You win the game :D&amp;quot;, &amp;quot;Congrats&amp;quot;, JOptionPane.INFORMATION_MESSAGE, null);&lt;br /&gt;
	    }&lt;br /&gt;
	    return isWin;&lt;br /&gt;
	  }&lt;br /&gt;
&lt;br /&gt;
	  private void updateSurroundingZeros(Point currentPoint) {&lt;br /&gt;
	    Point[] points = getSurroundings(currentPoint);&lt;br /&gt;
&lt;br /&gt;
	    for (Point p : points) {&lt;br /&gt;
	      GameButton b = getButtonAt(pnlMain.getComponents(), p);&lt;br /&gt;
	      if (b != null &amp;amp;&amp;amp; b.getBombCount() == 0 &amp;amp;&amp;amp; b.getState() != State.Clicked &amp;amp;&amp;amp; b.getState() != State.Marked &amp;amp;&amp;amp; b.isBomb() == false) {&lt;br /&gt;
	        b.setState(State.Clicked);&lt;br /&gt;
	        updateSurroundingZeros(b.getPosition());&lt;br /&gt;
	        b.updateUI();&lt;br /&gt;
	      }&lt;br /&gt;
	      if (b != null &amp;amp;&amp;amp; b.getBombCount() &amp;gt; 0 &amp;amp;&amp;amp; b.getState() != State.Clicked &amp;amp;&amp;amp; b.getState() != State.Marked &amp;amp;&amp;amp; b.isBomb() == false) {&lt;br /&gt;
	        b.setEnabled(false);&lt;br /&gt;
	        b.setState(State.Clicked);&lt;br /&gt;
	        b.updateUI();&lt;br /&gt;
	      }&lt;br /&gt;
	    }&lt;br /&gt;
	  }&lt;br /&gt;
&lt;br /&gt;
	  private void blastBombs() {&lt;br /&gt;
	    int blastCount = 0;&lt;br /&gt;
	    for (Component c : pnlMain.getComponents()) {&lt;br /&gt;
	      ((GameButton) c).setEnabled(false);&lt;br /&gt;
	      ((GameButton) c).transferFocus();&lt;br /&gt;
	      if (((GameButton) c).isBomb() &amp;amp;&amp;amp; ((GameButton) c).getState() != State.Marked) {&lt;br /&gt;
	        ((GameButton) c).setState(State.Clicked);&lt;br /&gt;
	        ((GameButton) c).updateUI();&lt;br /&gt;
	        blastCount++;&lt;br /&gt;
	      }&lt;br /&gt;
	      if (((GameButton) c).isBomb() == false &amp;amp;&amp;amp; ((GameButton) c).getState() == State.Marked) {&lt;br /&gt;
	        ((GameButton) c).setState(State.WrongMarked);&lt;br /&gt;
	      }&lt;br /&gt;
	    }&lt;br /&gt;
	    lblBombCount.setText(&amp;quot;&amp;quot; + blastCount);&lt;br /&gt;
	    lblBombCount.updateUI();&lt;br /&gt;
	    state = GameState.Finished;&lt;br /&gt;
	    JOptionPane.showMessageDialog(this, &amp;quot;You loose the game :(&amp;quot;, &amp;quot;Game Over&amp;quot;, JOptionPane.ERROR_MESSAGE, null);&lt;br /&gt;
	    for (Component c : pnlMain.getComponents()) {&lt;br /&gt;
	      GameButton b = (GameButton) c;&lt;br /&gt;
	      b.setEnabled(false);&lt;br /&gt;
	    }&lt;br /&gt;
	  }&lt;br /&gt;
&lt;br /&gt;
	  private boolean isBomb() {&lt;br /&gt;
	    Random r = new Random();&lt;br /&gt;
	    return r.nextInt(ROWS) == 1;&lt;br /&gt;
	  }&lt;br /&gt;
&lt;br /&gt;
	  public static void main(String[] args) {&lt;br /&gt;
	    JFrame fr = new JFrame(&amp;quot;MineSweeper&amp;quot;);&lt;br /&gt;
	    fr.setLayout(new BorderLayout());&lt;br /&gt;
	    fr.add(new MineSweeper());&lt;br /&gt;
	    fr.setResizable(false);&lt;br /&gt;
	    fr.setSize(250, 350);&lt;br /&gt;
	    fr.setLocationRelativeTo(null);&lt;br /&gt;
	    fr.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
	    fr.setVisible(true);&lt;br /&gt;
	  }&lt;br /&gt;
&lt;br /&gt;
	  class GameButton extends JButton {&lt;br /&gt;
	    private boolean  isBomb    = false;&lt;br /&gt;
	    private Point  position  = null;&lt;br /&gt;
	    private int    bombCount  = 0;&lt;br /&gt;
	    private State  state    = State.Initial;&lt;br /&gt;
&lt;br /&gt;
	    public void setState(State state) {&lt;br /&gt;
	      this.state = state;&lt;br /&gt;
	      if (getBombCount() == 0 &amp;amp;&amp;amp; !isBomb) {&lt;br /&gt;
	        setEnabled(false);&lt;br /&gt;
	      }&lt;br /&gt;
	    }&lt;br /&gt;
&lt;br /&gt;
	    public State getState() {&lt;br /&gt;
	      return state;&lt;br /&gt;
	    }&lt;br /&gt;
&lt;br /&gt;
	    public int getBombCount() {&lt;br /&gt;
	      return bombCount;&lt;br /&gt;
	    }&lt;br /&gt;
&lt;br /&gt;
	    public void setBombCount(int bombCount) {&lt;br /&gt;
	      this.bombCount = bombCount;&lt;br /&gt;
	    }&lt;br /&gt;
&lt;br /&gt;
	    public GameButton(Point position) {&lt;br /&gt;
	      setPosition(position);&lt;br /&gt;
	      setText(position.toString());&lt;br /&gt;
	    }&lt;br /&gt;
&lt;br /&gt;
	    public Point getPosition() {&lt;br /&gt;
	      return position;&lt;br /&gt;
	    }&lt;br /&gt;
&lt;br /&gt;
	    public void setPosition(Point position) {&lt;br /&gt;
	      this.position = position;&lt;br /&gt;
	    }&lt;br /&gt;
&lt;br /&gt;
	    public boolean isBomb() {&lt;br /&gt;
	      return isBomb;&lt;br /&gt;
	    }&lt;br /&gt;
&lt;br /&gt;
	    public void setBomb(boolean isBomb) {&lt;br /&gt;
	      this.isBomb = isBomb;&lt;br /&gt;
	    }&lt;br /&gt;
&lt;br /&gt;
	    @Override&lt;br /&gt;
	    public String getText() {&lt;br /&gt;
	      if (state == State.Initial) {&lt;br /&gt;
	        return &amp;quot;&amp;quot;;&lt;br /&gt;
	      }&lt;br /&gt;
	      if (state == State.Marked) {&lt;br /&gt;
	        return &amp;quot;\u00B6&amp;quot;;&lt;br /&gt;
	      }&lt;br /&gt;
	      if (state == State.Clicked) {&lt;br /&gt;
	        if (isBomb) {&lt;br /&gt;
	          return &amp;quot;&amp;lt;html&amp;gt;&amp;lt;font size='16'&amp;gt;&amp;lt;b&amp;gt;*&amp;lt;/b&amp;gt;&amp;lt;/font&amp;gt;&amp;lt;/html&amp;gt;&amp;quot;;&lt;br /&gt;
	        } else {&lt;br /&gt;
	          if (getBombCount() &amp;gt; 0)&lt;br /&gt;
	            return getBombCount() + &amp;quot;&amp;quot;;&lt;br /&gt;
	          else&lt;br /&gt;
	            return &amp;quot;&amp;quot;;&lt;br /&gt;
	        }&lt;br /&gt;
	      }&lt;br /&gt;
	      if (state == State.WrongMarked) {&lt;br /&gt;
	        return &amp;quot;X&amp;quot;;&lt;br /&gt;
	      }&lt;br /&gt;
	      return super.getText();&lt;br /&gt;
	    }&lt;br /&gt;
&lt;br /&gt;
	    @Override&lt;br /&gt;
	    public Color getBackground() {&lt;br /&gt;
	      if (isColorCheatOn &amp;amp;&amp;amp; isBomb) {&lt;br /&gt;
	        return Color.MAGENTA;&lt;br /&gt;
	      }&lt;br /&gt;
	      if (state == State.Clicked) {&lt;br /&gt;
	        if (isBomb) {&lt;br /&gt;
	          return Color.RED;&lt;br /&gt;
	        }&lt;br /&gt;
	        if (getBombCount() &amp;gt; 0) {&lt;br /&gt;
	          return Color.GREEN;&lt;br /&gt;
	        }&lt;br /&gt;
	      }&lt;br /&gt;
	      if (isEnabled()) {&lt;br /&gt;
	        return Color.YELLOW.brighter();&lt;br /&gt;
	      } else {&lt;br /&gt;
	        return super.getBackground();&lt;br /&gt;
	      }&lt;br /&gt;
	    }&lt;br /&gt;
	  }&lt;br /&gt;
&lt;br /&gt;
	  private Point[] getSurroundings(Point cPoint) {&lt;br /&gt;
	    int cX = (int) cPoint.getX();&lt;br /&gt;
	    int cY = (int) cPoint.getY();&lt;br /&gt;
	    Point[] points = { new Point(cX - 1, cY - 1), new Point(cX - 1, cY), new Point(cX - 1, cY + 1), new Point(cX, cY - 1), new Point(cX, cY + 1), new Point(cX + 1, cY - 1), new Point(cX + 1, cY), new Point(cX + 1, cY + 1) };&lt;br /&gt;
	    return points;&lt;br /&gt;
	  }&lt;br /&gt;
&lt;br /&gt;
	  private void updateBombCount(GameButton btn, Component[] components) {&lt;br /&gt;
	    Point[] points = getSurroundings(btn.getPosition());&lt;br /&gt;
&lt;br /&gt;
	    for (Point p : points) {&lt;br /&gt;
	      GameButton b = getButtonAt(components, p);&lt;br /&gt;
	      if (b != null &amp;amp;&amp;amp; b.isBomb()) {&lt;br /&gt;
	        btn.setBombCount(btn.getBombCount() + 1);&lt;br /&gt;
	      }&lt;br /&gt;
	    }&lt;br /&gt;
	    btn.setText(btn.getBombCount() + &amp;quot;&amp;quot;);&lt;br /&gt;
	  }&lt;br /&gt;
&lt;br /&gt;
	  private GameButton getButtonAt(Component[] components, Point position) {&lt;br /&gt;
	    for (Component btn : components) {&lt;br /&gt;
	      if ((((GameButton) btn).getPosition().equals(position))) {&lt;br /&gt;
	        return (GameButton) btn;&lt;br /&gt;
	      }&lt;br /&gt;
	    }&lt;br /&gt;
	    return null;&lt;br /&gt;
	  }&lt;br /&gt;
&lt;br /&gt;
	  public void eventDispatched(AWTEvent event) {&lt;br /&gt;
	    if (KeyEvent.class.isInstance(event) &amp;amp;&amp;amp; ((KeyEvent) (event)).getID() == KeyEvent.KEY_RELEASED) {&lt;br /&gt;
	      if (((KeyEvent) (event)).getKeyCode() == KeyEvent.VK_F1) {&lt;br /&gt;
	        showAbout();&lt;br /&gt;
	      }&lt;br /&gt;
	      if (((KeyEvent) (event)).getKeyCode() == KeyEvent.VK_F2) {&lt;br /&gt;
	        restartGame();&lt;br /&gt;
	      }&lt;br /&gt;
	      if (((KeyEvent) (event)).getKeyCode() == KeyEvent.VK_F3) {&lt;br /&gt;
	        isColorCheatOn = !isColorCheatOn;&lt;br /&gt;
	        if (state == GameState.Playing) {&lt;br /&gt;
	          pnlMain.updateUI();&lt;br /&gt;
	        }&lt;br /&gt;
	      }&lt;br /&gt;
&lt;br /&gt;
	      if (((KeyEvent) (event)).getKeyCode() == KeyEvent.VK_F12) {&lt;br /&gt;
	        for (Component c : pnlMain.getComponents()) {&lt;br /&gt;
	          GameButton b = (GameButton) c;&lt;br /&gt;
	          if (b.isBomb() == false) {&lt;br /&gt;
	            b.setState(State.Clicked);&lt;br /&gt;
	          } else {&lt;br /&gt;
	            b.setState(State.Marked);&lt;br /&gt;
	          }&lt;br /&gt;
	          b.setEnabled(false);&lt;br /&gt;
	        }&lt;br /&gt;
	        checkGameState();&lt;br /&gt;
	      }&lt;br /&gt;
	    }&lt;br /&gt;
	  }&lt;br /&gt;
&lt;br /&gt;
	  public void actionPerformed(ActionEvent actionEvent) {&lt;br /&gt;
	    if (actionEvent.getSource() == btnReset) {&lt;br /&gt;
	      restartGame();&lt;br /&gt;
	    }&lt;br /&gt;
	  }&lt;br /&gt;
	}&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go back to [[HelloWorld in Java]] and follow the instructions for Exporting and Running a Java Program on the Over COM. When you are done, you should be able to play a 9x10 colorful game of MineSweeper on the monitor connected to your Overo COM expansion board.&lt;/div&gt;</summary>
		<author><name>JustinC474</name></author>	</entry>

	</feed>