Question: project idea page or proposal from graphics import * # configurations WIDTH = 4 0 0 GRID _ HEIGHT = WIDTH HEIGHT = 4 7
project idea page or proposal from graphics import
# configurations
WIDTH
GRIDHEIGHT WIDTH
HEIGHT
TIMER False
GAME True
SCORE
BONUS
X
Y
RADIUS
LENGTH RADIUS
PLAYERLENGTH
POISONLENGTH PLAYERLENGTH
i
k
POINTRADIUS
POINTS False
CHERRYPOINTS False
KEY "Right"
COUNTDOWN
# set coordinations
CX
CY
COORDX
COORDY
while COORDXlenCOORDXWIDTH :
CX
COORDXappendCX
while COORDYlenCOORDY:
CY
COORDYappendCY
RANDOMX random.choiceCOORDX
RANDOMY random.choiceCOORDY
CHERRYRANDOMX random.choiceCOORDX
CHERRYRANDOMY random.choiceCOORDY
POISONRANDOMX random.choiceCOORDX
POISONRANDOMY random.choiceCOORDY
#window setup
WINDOW GraphWinSNAKE WIDTH, HEIGHT, autoflushFalse
WINDOW.setBackgroundcolorrgb
# grid
LINEX
while LINEX WIDTH:
GRIDX LinePointLINEX PointLINEX GRIDHEIGHT
GRIDXsetOutlinecolorrgb
GRIDXdrawWINDOW
LINEX
LINEY
while LINEY GRIDHEIGHT:
GRIDX LinePoint LINEY PointWIDTH LINEY
GRIDXsetOutlinecolorrgb
GRIDXdrawWINDOW
LINEY
Step
# snake banner
UI RectanglePoint PointWIDTH HEIGHT
UIsetFillcolorrgb
UIsetOutlinecolorrgb
UIdrawWINDOW
SNAKETITLE TextPointWIDTH "SNAKE"
SNAKETITLE.setTextColorgreen
SNAKETITLE.setSize
SNAKETITLE.drawWINDOW
SCORETITLE TextPoint "SCORE"
SCORETITLE.setTextColorwhite
SCORETITLE.setSize
SCORETITLE.drawWINDOW
SCOREUI TextPoint SCORE
SCOREUIsetTextColorwhite
SCOREUIsetSize
SCOREUIdrawWINDOW
# make player
PLAYER
PLAYER RectanglePointX RADIUS, Y RADIUS PointX RADIUS, Y RADIUS
PLAYER RectanglePointX RADIUS, Y RADIUS PointX RADIUS, Y RADIUS
PLAYER RectanglePointX RADIUS, Y RADIUS PointX RADIUS, Y RADIUS
# make poison
POISON
def main:
global TIMER, SCOREUI SCORE, BONUS, PLAYERLENGTH, POISONLENGTH, X Y POINTS, CHERRYPOINTS, RANDOMX RANDOMY CHERRYRANDOMX CHERRYRANDOMY POISONRANDOMX POISONRANDOMY KEY, COUNTDOWN, k GAME
while GAME:
# score update
SCOREUIundraw
SCOREUI TextPoint SCORE
SCOREUIsetTextColorwhite
SCOREUIsetSize
SCOREUIdrawWINDOW
# generating new body blocks
if lenPLAYER PLAYERLENGTH:
i
PLAYERi PLAYERi clone
# body following player
PLAYERundraw
for i in range lenPLAYER:
PLAYERlenPLAYER iundraw
PLAYERlenPLAYER i PLAYERlenPLAYER i clone
PLAYERlenPLAYER idrawWINDOW
# update player's head coordinate
PLAYER RectanglePointX RADIUS, Y RADIUS PointX RADIUS, Y RADIUS
PLAYERsetFillgreen
PLAYERsetWidth
PLAYERdrawWINDOW
# player movement
if keyboard.ispressedUp and KEY "Down":
KEY Up
elif keyboard.ispressedLeft and KEY "Right":
KEY "Left"
elif keyboard.ispressedDown and KEY Up:
KEY "Down"
elif keyboard.ispressedRight and KEY "Left":
KEY "Right"
if KEY Up:
Y LENGTH
elif KEY "Left":
X LENGTH
elif KEY "Down":
Y LENGTH
elif KEY "Right":
X LENGTH
# point
if not points: # generates new point when eaten
point RectanglePointRANDOMX POINTRADIUS, RANDOMY POINTRADIUS PointRANDOMX POINTRADIUS, RANDOMY POINTRADIUS
point.setFillwhite
point.setWidth
point.drawWINDOW
points True
if PLAYERgetCentergetX point.getCentergetX and PLAYERgetCentergetY point.getCentergetY: # when player eats the point
point.undraw
PLAYERLENGTH
POISONLENGTH
SCORE BONUS
RANDOMX random.choiceCOORDX
RANDOMY random.choiceCOORDY
for i in enumeratePLAYER:
if pointgetCentergetX PLAYERigetCentergetX and point.getCentergetY PLAYERigetCentergetY or CHERRYPOINTS and cherrypoint.getCentergetX point.getCentergetX and cherrypoint.getCentergetY point.getCentergetY: # regenerate x and y coordinate if they share the same coordinate as player and cherry
Step by Step Solution
There are 3 Steps involved in it
1 Expert Approved Answer
Step: 1 Unlock
Question Has Been Solved by an Expert!
Get step-by-step solutions from verified subject matter experts
Step: 2 Unlock
Step: 3 Unlock
