SERPENTHolli Rachall6.111 Fall 2006The GamePlayer controls snake with directional buttonsGoal is to eat apples while avoiding obstaclesApples cause snake to grow, until a new level is reachedSystemXVGATimerRandomizer(Max = 736)GraphicsGameLogicImageProcessorSnakeNESHandlerNES Controllerclock_65mhzclock_65mhzclock_65mhzresetresetresetresetresethcount [10:0]vcount [9:0]hsyncvsyncblankVGA signalsimage [9:0] [3:0]orientation [3:0]background [3:0]new image [9:0] [3:0]ABpulselatchdatanew framenew lifeticknewnumber [9:0]start selectnew lifelocation [9:0]enabletype [1:0]head location [9:0]orientation [3:0]length [9:0]occupiedcollisionupdow nleftrightpauseorientation [3:0]numlives [1:0]tile type [2:0]new lifelocation [9:0]clock_65mhzgrowdoneSnake RepresentationBRAMlength 736 (32 x 23)width 154 bits orientation (1111 represents empty)1 bit parity (1 => odd, 0 => even)10 bits next location (1111111111 represents tail)head registertail registerlength registerSnake MovementSnake moves on enableParity of each location switchesHead register points to new location with next pointing to previous headTail is removed (set to all 1s)Location with next pointing to previous tail is set to tail (next set to all 1s)Snake GrowthSnake grows upon collision with appleParity of each location switchesHead register points to new location with next pointing to previous headNo change to tailCollisionsSnakedetermined in snake modulesignaled to game logic – lose a lifeWalldetermined using head location and level maplose a lifeAppledetermined using head and apple locationsgrow snakeScheduleMonday, November 20snake module completegame logic module completerandomizer completetimer completerudimentary graphics engineMonday, November 27image processor completegraphics draws correct image at each tickMonday, December 4graphics draws smooth transitions between ticksFinal Week finish reportwork out
View Full Document