{"id":119,"date":"2009-09-04T22:45:05","date_gmt":"2009-09-05T05:45:05","guid":{"rendered":"https:\/\/mathpirate.net\/log\/?p=119"},"modified":"2009-09-04T22:45:05","modified_gmt":"2009-09-05T05:45:05","slug":"atari-2600-pong-paddle-zones","status":"publish","type":"post","link":"https:\/\/mathpirate.net\/log\/2009\/09\/04\/atari-2600-pong-paddle-zones\/","title":{"rendered":"Atari 2600 Pong Paddle Zones"},"content":{"rendered":"<p>One thing that I haven&#8217;t mentioned regarding the &#8220;physics&#8221; of Pong is that the paddle causes a total change in the motion of the ball.\u00c2\u00a0 The walls reflect the ball like a real-world wall would, giving the ball a negative slope of the same value.\u00c2\u00a0 The paddles, however, assign a new slope, based on where the ball hits.<\/p>\n<p>If the ball hits high on the paddle, the ball gets a steep upward slope.\u00c2\u00a0 If the ball hits toward the middle of the\u00c2\u00a0bottom half, the ball takes a 45 degree downward trajectory, and when it hits the middle, it will go straight across.<\/p>\n<p><a href=\"https:\/\/mathpirate.net\/log\/wp-content\/uploads\/2009\/09\/PaddleZones.jpg\"><img decoding=\"async\" loading=\"lazy\" class=\"alignnone size-medium wp-image-118\" title=\"Paddle Zones\" src=\"https:\/\/mathpirate.net\/log\/wp-content\/uploads\/2009\/09\/PaddleZones-288x300.jpg\" alt=\"Paddle Zones\" width=\"288\" height=\"300\" srcset=\"https:\/\/mathpirate.net\/log\/wp-content\/uploads\/2009\/09\/PaddleZones-288x300.jpg 288w, https:\/\/mathpirate.net\/log\/wp-content\/uploads\/2009\/09\/PaddleZones.jpg 565w\" sizes=\"(max-width: 288px) 100vw, 288px\" \/><\/a><\/p>\n<p>The diagram above is for illustrative purposes only, as I&#8217;m pretty sure there are 7 possible angles, not the five shown:\u00c2\u00a0 Three up, three down, and straight.\u00c2\u00a0 Seven makes the most sense when considering the game programming, as well.\u00c2\u00a0 There are seven possible angles for each side, which makes 14 possible angles in normal play.\u00c2\u00a0 Add in straight up and straight down, which are possible on some of the other variations of Pong on the cartridge, and you get 16 total angles, which can be stored neatly in a four-bit nibble.<\/p>\n<p>Another point to note is the X on the upper half of the paddle.\u00c2\u00a0 That represents the location of the follow point on the CPU paddle.\u00c2\u00a0 The Atari will try to always seek that point to the ball, which means that most of the time, when the CPU paddle hits the ball, it&#8217;ll bounce it in an upper trajectory.\u00c2\u00a0 However, in order to make it possible for the player to actually beat the computer, the CPU paddle can&#8217;t move fast enough to perfectly track the ball.\u00c2\u00a0 The paddle is always too slow for the highest angles and will only be able to hit them if the ball reflects off a boundary wall close enough to the CPU side so it doesn&#8217;t have to chase it that far.\u00c2\u00a0 At higher speeds, it can be too slow for any angle, potentially even straight across.<\/p>\n<p>Anyway, the relevance of this to my project is that I&#8217;m not going to attempt to calculate the trajectory\u00c2\u00a0after hitting the paddle.\u00c2\u00a0 It would be too much work to determine the location of the different reflection zones, and wouldn&#8217;t be of any real benefit.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>One thing that I haven&#8217;t mentioned regarding the &#8220;physics&#8221; of Pong is that the paddle causes a total change in the motion of the ball.\u00c2\u00a0 The walls reflect the ball like a real-world wall would, giving the ball a negative slope of the same value.\u00c2\u00a0 The paddles, however, assign a new slope, based on where [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[24,8],"tags":[17,15,18,22,238],"_links":{"self":[{"href":"https:\/\/mathpirate.net\/log\/wp-json\/wp\/v2\/posts\/119"}],"collection":[{"href":"https:\/\/mathpirate.net\/log\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mathpirate.net\/log\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mathpirate.net\/log\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/mathpirate.net\/log\/wp-json\/wp\/v2\/comments?post=119"}],"version-history":[{"count":1,"href":"https:\/\/mathpirate.net\/log\/wp-json\/wp\/v2\/posts\/119\/revisions"}],"predecessor-version":[{"id":120,"href":"https:\/\/mathpirate.net\/log\/wp-json\/wp\/v2\/posts\/119\/revisions\/120"}],"wp:attachment":[{"href":"https:\/\/mathpirate.net\/log\/wp-json\/wp\/v2\/media?parent=119"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mathpirate.net\/log\/wp-json\/wp\/v2\/categories?post=119"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mathpirate.net\/log\/wp-json\/wp\/v2\/tags?post=119"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}