<?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>Bruno Soares &#187; Game</title>
	<atom:link href="http://blog.bsoares.com.br/category/game/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.bsoares.com.br</link>
	<description></description>
	<lastBuildDate>Sun, 11 Jul 2010 02:16:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Ping Pong com Matriz de Leds 8&#215;8</title>
		<link>http://blog.bsoares.com.br/arduino/ping-pong-with-8x8-led-matrix-on-arduino</link>
		<comments>http://blog.bsoares.com.br/arduino/ping-pong-with-8x8-led-matrix-on-arduino#comments</comments>
		<pubDate>Mon, 06 Jul 2009 22:41:57 +0000</pubDate>
		<dc:creator>Bruno Soares</dc:creator>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Electronics]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[8x8 Led Matrix]]></category>
		<category><![CDATA[Led]]></category>
		<category><![CDATA[Open Hardware]]></category>
		<category><![CDATA[Techology]]></category>

		<guid isPermaLink="false">http://blog.bsoares.com.br/?p=532</guid>
		<description><![CDATA[Há alguns dias consegui duas matrizes de leds 8&#215;8 azuis e resolvi brincar com elas :)
O resultado foi um jogo de Ping Pong, sim O primeiro videogame lucrativo da história. É de fato um joguinho bem interessante e facíl para quem pratica eletrônica digital por hobby.

YouTube

Em primeiro lugar achei melhor criar um protótipo do game [...]]]></description>
			<content:encoded><![CDATA[<p>Há alguns dias consegui duas matrizes de leds 8&#215;8 azuis e resolvi brincar com elas :)<br />
O resultado foi um jogo de Ping Pong, sim <a href="http://pt.wikipedia.org/wiki/Pong" target="_blank">O primeiro videogame lucrativo da história</a>. É de fato um joguinho bem interessante e facíl para quem pratica <a href="http://pt.wikipedia.org/wiki/Circuito_digital" target="_blank">eletrônica digital</a> por hobby.</p>
<p></p>
<div style="text-align:center"><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="470" height="360" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=5469191&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="470" height="360" src="http://vimeo.com/moogaloop.swf?clip_id=5469191&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=00adef&amp;fullscreen=1" allowscriptaccess="always" allowfullscreen="true"></embed></object><br /><a href="http://www.youtube.com/watch?v=lvAlKH5SzYk" target="_blank">YouTube</a></div>
<p></p>
<p>Em primeiro lugar achei melhor criar um protótipo do game em Flash (<a href="http://pt.wikipedia.org/wiki/ActionScript" target="_blank">ActionScript</a> 3.0) para não ficar &#8220;queimando os miolos&#8221; direto no C++. Pra quem quiser anexo o código fonte do game final e protótipo aqui.</p>
<div style="text-align:center">
<object width="161" height="161">
<param name="movie" value="http://blog.bsoares.com.br/wp-content/uploads/2009/07/PongMatrix.swf"></param>
<param name="quality" value="high"></param>
<param name="wmode" value="window"></param>
<param name="menu" value="false"></param>
<param name="bgcolor" value="#FFFFFF"></param>
<embed type="application/x-shockwave-flash" width="161" height="161" src="http://blog.bsoares.com.br/wp-content/uploads/2009/07/PongMatrix.swf" quality="high" bgcolor="#FFFFFF" wmode="window" menu="false" ></embed>
</object>
</div>
<p>Espaço para iniciar.<br />
Seta para cima e para baixo para mover as astes.</p>
<p>Para ligar e desligar cada led da matriz utilizei como referência o código encontrado no <a href="http://www.arduino.cc/playground/" target="_blank">Arduino Playground</a> (<a href="http://www.arduino.cc/playground/Main/DirectDriveLEDMatrix" target="_blank">http://www.arduino.cc/playground/Main/DirectDriveLEDMatrix</a>), só que minha matriz é diferente do utilizado no exemplo, então fiz algumas pequenas alterações no método doubleBuffer. Resumindo, no exemplo encontrado no Playground a matriz utilizada tem a linha como cátodo já minha matriz tem a coluna como cátodo.<br />
Abaixo a especificação da matriz utilizada:</p>
<p></p>
<div style="text-align:center"><img src="http://blog.bsoares.com.br/wp-content/uploads/2009/07/8x8-led-matriz-especification.png" alt="8x8-led-matriz-especification" title="8x8-led-matriz-especification" /></div>
<p></p>
<p><strong>Código-fonte:</strong></p>
<div class="codecolorer-container cpp mac-classic" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;height:500px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br />119<br />120<br />121<br />122<br />123<br />124<br />125<br />126<br />127<br />128<br />129<br />130<br />131<br />132<br />133<br />134<br />135<br />136<br />137<br />138<br />139<br />140<br />141<br />142<br />143<br />144<br />145<br />146<br />147<br />148<br />149<br />150<br />151<br />152<br />153<br />154<br />155<br />156<br />157<br />158<br />159<br />160<br />161<br />162<br />163<br />164<br />165<br />166<br />167<br />168<br />169<br />170<br />171<br />172<br />173<br />174<br />175<br />176<br />177<br />178<br />179<br />180<br />181<br />182<br />183<br />184<br />185<br />186<br />187<br />188<br />189<br />190<br />191<br />192<br />193<br />194<br />195<br />196<br />197<br />198<br />199<br />200<br />201<br />202<br />203<br />204<br />205<br />206<br />207<br />208<br />209<br />210<br />211<br />212<br />213<br />214<br />215<br />216<br />217<br />218<br />219<br />220<br />221<br />222<br />223<br />224<br />225<br />226<br />227<br />228<br />229<br />230<br />231<br />232<br />233<br />234<br />235<br />236<br />237<br />238<br />239<br />240<br />241<br />242<br />243<br />244<br />245<br />246<br />247<br />248<br />249<br />250<br />251<br />252<br />253<br />254<br />255<br />256<br />257<br />258<br />259<br />260<br />261<br />262<br />263<br />264<br />265<br />266<br />267<br />268<br />269<br />270<br />271<br />272<br />273<br />274<br />275<br />276<br />277<br />278<br />279<br />280<br />281<br />282<br />283<br />284<br />285<br />286<br />287<br />288<br />289<br />290<br />291<br />292<br />293<br />294<br />295<br />296<br />297<br />298<br />299<br />300<br />301<br />302<br /></div></td><td><div class="cpp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #ff0000; font-style: italic;">/**<br />
&nbsp;* Ping Pong with 8x8 Led Dot Matrix on Arduino<br />
&nbsp;*<br />
&nbsp;* @author &nbsp;Bruno Soares<br />
&nbsp;* @website www.bsoares.com.br<br />
&nbsp;*/</span><br />
<br />
<span style="color: #339900;">#include &quot;TimerOne.h&quot;</span><br />
<br />
<span style="color: #339900;">#define PIN_LEFT 4</span><br />
<span style="color: #339900;">#define PIN_RIGHT 5</span><br />
<br />
<span style="color: #0000ff;">unsigned</span> <span style="color: #0000ff;">int</span> left <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">unsigned</span> <span style="color: #0000ff;">int</span> right <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">int</span> angle <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">int</span> radians<span style="color: #008080;">;</span><br />
<br />
byte rows<span style="color: #008000;">&#91;</span>8<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #008000;">&#123;</span>9, 14, 8, 12, 1, 7, 2, 5<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span><br />
byte cols<span style="color: #008000;">&#91;</span>8<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #008000;">&#123;</span>13, 3, 4, 10, 6, 11, 15, 16<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span><br />
byte pins<span style="color: #008000;">&#91;</span>16<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #008000;">&#123;</span>5, 4, 3, 2, 14, 15, 16, 17, 13, 12, 11, 10, 9, 8, 7, 6<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span><br />
byte screen<span style="color: #008000;">&#91;</span>8<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #008000;">&#123;</span>0, 0, 0, 0, 0, 0, 0, 0<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">volatile</span> byte screenRow <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">volatile</span> byte screenCol <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
<br />
<span style="color: #0000ff;">int</span> _angle<span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">int</span> _px<span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">int</span> _py<span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">int</span> _w <span style="color: #000080;">=</span> <span style="color: #0000dd;">7</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">int</span> _h <span style="color: #000080;">=</span> <span style="color: #0000dd;">7</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">int</span> _wall<span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #008000;">&#123;</span>3, 3<span style="color: #008000;">&#125;</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">int</span> _count <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">int</span> _speed <span style="color: #000080;">=</span> <span style="color: #0000dd;">3</span><span style="color: #008080;">;</span><br />
<span style="color: #0000ff;">int</span> _countPoints <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
<br />
<br />
<span style="color: #0000ff;">void</span> setup<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; Timer1.<span style="color: #007788;">initialize</span><span style="color: #008000;">&#40;</span>100<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">2</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;=</span> <span style="color: #0000dd;">17</span><span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; pinMode<span style="color: #008000;">&#40;</span>i, OUTPUT<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; Timer1.<span style="color: #007788;">attachInterrupt</span><span style="color: #008000;">&#40;</span>doubleBuffer<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; <br />
&nbsp; Serial.<span style="color: #007788;">begin</span><span style="color: #008000;">&#40;</span>9600<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; <br />
&nbsp; face<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; reset<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> doubleBuffer<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; digitalWrite<span style="color: #008000;">&#40;</span>translatePin<span style="color: #008000;">&#40;</span>rows<span style="color: #008000;">&#91;</span>screenRow<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>, LOW<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; digitalWrite<span style="color: #008000;">&#40;</span>translatePin<span style="color: #008000;">&#40;</span>cols<span style="color: #008000;">&#91;</span>screenCol<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; <br />
&nbsp; screenCol<span style="color: #000040;">++</span><span style="color: #008080;">;</span><br />
&nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>screenCol <span style="color: #000080;">&gt;=</span> 8<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; screenCol <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; screenRow<span style="color: #000040;">++</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>screenRow <span style="color: #000080;">&gt;=</span> 8<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; screenRow <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; <br />
&nbsp; <span style="color: #0000ff;">if</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span>screen<span style="color: #008000;">&#91;</span>screenRow<span style="color: #008000;">&#93;</span> <span style="color: #000080;">&gt;&gt;</span> screenCol<span style="color: #008000;">&#41;</span> <span style="color: #000040;">&amp;</span> B1 <span style="color: #000080;">==</span> B1<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>translatePin<span style="color: #008000;">&#40;</span>rows<span style="color: #008000;">&#91;</span>screenRow<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>translatePin<span style="color: #008000;">&#40;</span>cols<span style="color: #008000;">&#91;</span>screenCol<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>, LOW<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span> <span style="color: #0000ff;">else</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>translatePin<span style="color: #008000;">&#40;</span>rows<span style="color: #008000;">&#91;</span>screenRow<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>, LOW<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; digitalWrite<span style="color: #008000;">&#40;</span>translatePin<span style="color: #008000;">&#40;</span>cols<span style="color: #008000;">&#91;</span>screenCol<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span>, HIGH<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
byte translatePin<span style="color: #008000;">&#40;</span>byte original<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; <span style="color: #0000ff;">return</span> pins<span style="color: #008000;">&#91;</span>original <span style="color: #000040;">-</span> 1<span style="color: #008000;">&#93;</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> allOFF<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">8</span><span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; screen<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> on<span style="color: #008000;">&#40;</span>byte row, byte column<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; screen<span style="color: #008000;">&#91;</span>column<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">|</span><span style="color: #000080;">=</span> <span style="color: #008000;">&#40;</span>B1 <span style="color: #000080;">&lt;&lt;</span> <span style="color: #008000;">&#40;</span>row <span style="color: #000040;">-</span> 1<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> off<span style="color: #008000;">&#40;</span>byte row, byte column<span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; screen<span style="color: #008000;">&#91;</span>column<span style="color: #000040;">-</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">&amp;</span><span style="color: #000080;">=</span> ~<span style="color: #008000;">&#40;</span>B1 <span style="color: #000080;">&lt;&lt;</span> <span style="color: #008000;">&#40;</span>row <span style="color: #000040;">-</span> 1<span style="color: #008000;">&#41;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> calcWall<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; left <span style="color: #000080;">=</span> analogRead<span style="color: #008000;">&#40;</span>PIN_LEFT<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; right <span style="color: #000080;">=</span> analogRead<span style="color: #008000;">&#40;</span>PIN_RIGHT<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; left <span style="color: #000080;">=</span> constrain<span style="color: #008000;">&#40;</span>map<span style="color: #008000;">&#40;</span>left, 223, 800, 0, 6<span style="color: #008000;">&#41;</span>, 0, 6<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; right <span style="color: #000080;">=</span> constrain<span style="color: #008000;">&#40;</span>map<span style="color: #008000;">&#40;</span>right, 223, 800, 6, 0<span style="color: #008000;">&#41;</span>, 0, 6<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; <br />
&nbsp; clearWall<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; <br />
&nbsp; on<span style="color: #008000;">&#40;</span>1, left <span style="color: #000040;">+</span> 1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>1, left <span style="color: #000040;">+</span> 2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>8, right <span style="color: #000040;">+</span> 1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>8, right <span style="color: #000040;">+</span> 2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; <br />
&nbsp; _wall<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> left<span style="color: #008080;">;</span><br />
&nbsp; _wall<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> right<span style="color: #008080;">;</span><br />
&nbsp; show<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> clearWall<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">8</span><span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; screen<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000040;">&amp;</span><span style="color: #000080;">=</span> B01111110<span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> clearGame<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">8</span><span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; screen<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000040;">&amp;</span><span style="color: #000080;">=</span> B10000001<span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> loop<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span> <span style="color: #008000;">&#123;</span><br />
&nbsp; calcWall<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; enterFrameHandler<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; delay<span style="color: #008000;">&#40;</span>50<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> enterFrameHandler<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_count<span style="color: #000040;">++</span> <span style="color: #000080;">&lt;</span> _speed<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">return</span><span style="color: #008080;">;</span><br />
&nbsp; <br />
&nbsp; _count <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
&nbsp; checkCollision<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; calcAngleIncrement<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; show<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> retorted<span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> angle<span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; Serial.<span style="color: #007788;">println</span><span style="color: #008000;">&#40;</span>angle<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; _angle <span style="color: #000080;">=</span> angle<span style="color: #008080;">;</span><br />
&nbsp; <br />
&nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span><span style="color: #000040;">++</span>_countPoints <span style="color: #000040;">%</span> 5 <span style="color: #000080;">==</span> 0 <span style="color: #000040;">&amp;&amp;</span> _speed <span style="color: #000080;">&gt;</span> 1<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; _speed<span style="color: #000040;">--</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> resetAnim<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">8</span><span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span><br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; screen<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> B11111111<span style="color: #008080;">;</span><br />
&nbsp; &nbsp; delay<span style="color: #008000;">&#40;</span>25<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; <span style="color: #0000ff;">for</span> <span style="color: #008000;">&#40;</span><span style="color: #0000ff;">int</span> i <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span> i <span style="color: #000080;">&lt;</span> <span style="color: #0000dd;">8</span><span style="color: #008080;">;</span> i<span style="color: #000040;">++</span><span style="color: #008000;">&#41;</span><br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; screen<span style="color: #008000;">&#91;</span>i<span style="color: #008000;">&#93;</span> <span style="color: #000080;">=</span> B00000000<span style="color: #008080;">;</span><br />
&nbsp; &nbsp; delay<span style="color: #008000;">&#40;</span>25<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> face<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>1, 1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>1, 2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>2, 1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>2, 2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>7, 1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>7, 2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>8, 1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>8, 2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>1, 1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>1, 2<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>4, 4<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>4, 5<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>5, 4<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>5, 5<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>2, 7<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>7, 7<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>3, 8<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>4, 8<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>5, 8<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>6, 8<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; delay<span style="color: #008000;">&#40;</span>5000<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> reset<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; resetAnim<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; <br />
&nbsp; _px <span style="color: #000080;">=</span> random<span style="color: #008000;">&#40;</span>3, 5<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; _py <span style="color: #000080;">=</span> random<span style="color: #008000;">&#40;</span>3, 5<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; _angle <span style="color: #000080;">=</span> random<span style="color: #008000;">&#40;</span>0, 2<span style="color: #008000;">&#41;</span> <span style="color: #000080;">==</span> 0 <span style="color: #008080;">?</span> 0 <span style="color: #008080;">:</span> <span style="color: #0000dd;">180</span><span style="color: #008080;">;</span><br />
&nbsp; _speed <span style="color: #000080;">=</span> <span style="color: #0000dd;">5</span><span style="color: #008080;">;</span><br />
&nbsp; _countPoints <span style="color: #000080;">=</span> <span style="color: #0000dd;">0</span><span style="color: #008080;">;</span><br />
&nbsp; <br />
&nbsp; show<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; delay<span style="color: #008000;">&#40;</span>500<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> show<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; clearGame<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; on<span style="color: #008000;">&#40;</span>_px <span style="color: #000040;">+</span> 1, _py <span style="color: #000040;">+</span> 1<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> checkCollision<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_px <span style="color: #000080;">==</span> _w <span style="color: #000040;">-</span> 1<span style="color: #008000;">&#41;</span><br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 315 <span style="color: #000040;">||</span> _angle <span style="color: #000080;">==</span> 0 <span style="color: #000040;">||</span> _angle <span style="color: #000080;">==</span> 45<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_py <span style="color: #000080;">==</span> _wall<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">||</span> _py <span style="color: #000080;">==</span> _wall<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">+</span> 1<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 0 <span style="color: #000040;">&amp;&amp;</span> _py <span style="color: #000080;">==</span> _wall<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; retorted<span style="color: #008000;">&#40;</span>225<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 0 <span style="color: #000040;">&amp;&amp;</span> _py <span style="color: #000080;">==</span> _wall<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">+</span> 1<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; retorted<span style="color: #008000;">&#40;</span>135<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 45 <span style="color: #000040;">&amp;&amp;</span> _py <span style="color: #000080;">==</span> _wall<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; retorted<span style="color: #008000;">&#40;</span>135<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 45 <span style="color: #000040;">&amp;&amp;</span> _py <span style="color: #000080;">==</span> _wall<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">+</span> 1<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; retorted<span style="color: #008000;">&#40;</span>180<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 315 <span style="color: #000040;">&amp;&amp;</span> _py <span style="color: #000080;">==</span> _wall<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; retorted<span style="color: #008000;">&#40;</span>180<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 315 <span style="color: #000040;">&amp;&amp;</span> _py <span style="color: #000080;">==</span> _wall<span style="color: #008000;">&#91;</span>1<span style="color: #008000;">&#93;</span> <span style="color: #000040;">+</span> 1<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; retorted<span style="color: #008000;">&#40;</span>225<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_px <span style="color: #000080;">==</span> 1<span style="color: #008000;">&#41;</span><br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 225 <span style="color: #000040;">||</span> _angle <span style="color: #000080;">==</span> 180 <span style="color: #000040;">||</span> _angle <span style="color: #000080;">==</span> 135<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_py <span style="color: #000080;">==</span> _wall<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span> <span style="color: #000040;">||</span> _py <span style="color: #000080;">==</span> _wall<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span> <span style="color: #000040;">+</span> 1<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 180 <span style="color: #000040;">&amp;&amp;</span> _py <span style="color: #000080;">==</span> _wall<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; retorted<span style="color: #008000;">&#40;</span>315<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 180 <span style="color: #000040;">&amp;&amp;</span> _py <span style="color: #000080;">==</span> _wall<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span> <span style="color: #000040;">+</span> 1<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; retorted<span style="color: #008000;">&#40;</span>45<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 135 <span style="color: #000040;">&amp;&amp;</span> _py <span style="color: #000080;">==</span> _wall<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; retorted<span style="color: #008000;">&#40;</span>45<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 135 <span style="color: #000040;">&amp;&amp;</span> _py <span style="color: #000080;">==</span> _wall<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span> <span style="color: #000040;">+</span> 1<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; retorted<span style="color: #008000;">&#40;</span>0<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 225 <span style="color: #000040;">&amp;&amp;</span> _py <span style="color: #000080;">==</span> _wall<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; retorted<span style="color: #008000;">&#40;</span>0<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 225 <span style="color: #000040;">&amp;&amp;</span> _py <span style="color: #000080;">==</span> _wall<span style="color: #008000;">&#91;</span>0<span style="color: #008000;">&#93;</span> <span style="color: #000040;">+</span> 1<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; retorted<span style="color: #008000;">&#40;</span>315<span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; <br />
&nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_px <span style="color: #000080;">==</span> _w<span style="color: #008000;">&#41;</span><br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; reset<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_px <span style="color: #000080;">==</span> 0<span style="color: #008000;">&#41;</span><br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; reset<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008080;">;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_py <span style="color: #000080;">==</span> _h<span style="color: #008000;">&#41;</span><br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 45<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; _angle <span style="color: #000080;">=</span> <span style="color: #0000dd;">315</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 135<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; _angle <span style="color: #000080;">=</span> <span style="color: #0000dd;">225</span><span style="color: #008080;">;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_py <span style="color: #000080;">==</span> 0<span style="color: #008000;">&#41;</span><br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 225<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; _angle <span style="color: #000080;">=</span> <span style="color: #0000dd;">135</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 315<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; _angle <span style="color: #000080;">=</span> <span style="color: #0000dd;">45</span><span style="color: #008080;">;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span><br />
<br />
<span style="color: #0000ff;">void</span> calcAngleIncrement<span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 0 <span style="color: #000040;">||</span> _angle <span style="color: #000080;">==</span> 360<span style="color: #008000;">&#41;</span><br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; _px <span style="color: #000040;">+</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 45<span style="color: #008000;">&#41;</span><br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; _px <span style="color: #000040;">+</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; _py <span style="color: #000040;">+</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 135<span style="color: #008000;">&#41;</span><br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; _px <span style="color: #000040;">-</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; _py <span style="color: #000040;">+</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 180<span style="color: #008000;">&#41;</span><br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; _px <span style="color: #000040;">-</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 225<span style="color: #008000;">&#41;</span><br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; _px <span style="color: #000040;">-</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; _py <span style="color: #000040;">-</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; <span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span style="color: #008000;">&#40;</span>_angle <span style="color: #000080;">==</span> 315<span style="color: #008000;">&#41;</span><br />
&nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; _px <span style="color: #000040;">+</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span><br />
&nbsp; &nbsp; _py <span style="color: #000040;">-</span><span style="color: #000080;">=</span> <span style="color: #0000dd;">1</span><span style="color: #008080;">;</span><br />
&nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></td></tr></tbody></table></div>
<p><a href="http://blog.bsoares.com.br/wp-content/uploads/2009/07/PongMatrix.zip" target="_blank">Código fonte do experimento (Arduino e Flash).</a></p>

<div class="ngg-galleryoverview" id="ngg-gallery-6-532">


	
	<!-- Thumbnails -->
		
	<div id="ngg-image-36" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blog.bsoares.com.br/wp-content/gallery/ping-pong-com-matriz-de-leds-8x8-arduino/pong-with-8x8-led-matrix-on-arduino-4.jpg" title=" "  >
								<img title="pong-with-8x8-led-matrix-on-arduino-4" alt="pong-with-8x8-led-matrix-on-arduino-4" src="http://blog.bsoares.com.br/wp-content/gallery/ping-pong-com-matriz-de-leds-8x8-arduino/thumbs/thumbs_pong-with-8x8-led-matrix-on-arduino-4.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-35" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blog.bsoares.com.br/wp-content/gallery/ping-pong-com-matriz-de-leds-8x8-arduino/pong-with-8x8-led-matrix-on-arduino-3.jpg" title=" "  >
								<img title="pong-with-8x8-led-matrix-on-arduino-3" alt="pong-with-8x8-led-matrix-on-arduino-3" src="http://blog.bsoares.com.br/wp-content/gallery/ping-pong-com-matriz-de-leds-8x8-arduino/thumbs/thumbs_pong-with-8x8-led-matrix-on-arduino-3.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-34" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blog.bsoares.com.br/wp-content/gallery/ping-pong-com-matriz-de-leds-8x8-arduino/pong-with-8x8-led-matrix-on-arduino-2.jpg" title=" "  >
								<img title="pong-with-8x8-led-matrix-on-arduino-2" alt="pong-with-8x8-led-matrix-on-arduino-2" src="http://blog.bsoares.com.br/wp-content/gallery/ping-pong-com-matriz-de-leds-8x8-arduino/thumbs/thumbs_pong-with-8x8-led-matrix-on-arduino-2.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 		
	<div id="ngg-image-33" class="ngg-gallery-thumbnail-box"  >
		<div class="ngg-gallery-thumbnail" >
			<a href="http://blog.bsoares.com.br/wp-content/gallery/ping-pong-com-matriz-de-leds-8x8-arduino/pong-with-8x8-led-matrix-on-arduino-1.jpg" title=" "  >
								<img title="pong-with-8x8-led-matrix-on-arduino-1" alt="pong-with-8x8-led-matrix-on-arduino-1" src="http://blog.bsoares.com.br/wp-content/gallery/ping-pong-com-matriz-de-leds-8x8-arduino/thumbs/thumbs_pong-with-8x8-led-matrix-on-arduino-1.jpg" width="100" height="75" />
							</a>
		</div>
	</div>
	
		
 	 	
	<!-- Pagination -->
 	<div class='ngg-clear'></div>
 	
</div>


<p><strong>Conteúdo relacionado:</strong><br />
<a href="http://www.instructables.com/id/Pong-with-8x8-Led-Matrix-on-Arduino" target="_blank">Instructables</a><br />
<a href="http://www.flickr.com/photos/bsoares/sets/72157620919850875/" target="_blank">Mais fotos no Flickr</a><br />
<a href="http://www.youtube.com/watch?v=lvAlKH5SzYk" target="_blank">Ping Pong com Matriz de Leds 8&#215;8 no YouTube</a><br />
<a href="http://www.arduino.cc/playground/Main/DirectDriveLEDMatrix" target="_blank">Arduino 8&#215;8 LED Matrix Direct drive</a><br />
<a href="http://pt.wikipedia.org/wiki/Pong" target="_blank">O primeiro videogame lucrativo da história (Pong)</a><br />
<a href="http://en.wikipedia.org/wiki/Dot_matrix" target="_blank">Led Dot Matrix</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bsoares.com.br/arduino/ping-pong-with-8x8-led-matrix-on-arduino/feed</wfw:commentRss>
		<slash:comments>17</slash:comments>
		</item>
	</channel>
</rss>
