from math import * from random import * from kandinsky import * from random import randint as RAND from kandinsky import * from kandinsky import fill_rect as F from kandinsky import draw_string as STR from ion import * from time import * cenergy=50 cpoints=0 foodx=RAND(10,280) foody=RAND(-500,-300) foodw=10 foodh=10 foodc=(0,255,0) M=255 GAME_MODE=False cx=150 cy=160 cw=10 ch=10 cc=(RAND(0,255),RAND(0,255),RAND(0,255)) bg = (61, 43, 2) level = [ [139, 65, 85, 3, (43, 197, 169)], [237, 152, 85, 3, (183, 236, 201)], [75, 206, 85, 3, (29, 172, 232)], [0, 119, 85, 3, (167, 59, 60)] ] F(0,0,322,222,bg) def draw_level(): for i in level: fill_rect(*i) def move_RIGHT(): pass def move_LEFT(): sleep(0.001) if len(level)==1: level[0][1]-=1 if len(level)==2: level[0][0]-=1 level[1][0]-=1 if len(level)==3: level[0][0]-=1 level[1][0]-=1 level[3][0]-=1 if len(level)==4: level[0][0]-=1 level[1][0]-=1 level[2][0]-=1 level[3][0]-=1 if len(level)==5: level[0][0]-=1 level[1][0]-=1 level[2][0]-=1 level[3][0]-=1 level[4][0]-=1 if len(level)==6: level[0][0]-=1 level[1][0]-=1 level[2][0]-=1 level[3][0]+=1 level[4][0]-=1 level[5][0]-=1 if len(level)==7: level[0][0]-=1 level[1][0]-=1 level[2][0]-=1 level[3][0]-=1 level[4][0]-=1 level[5][0]-=1 level[6][0]-=1 def move_DOWN(): sleep(0.001) if len(level)==1: level[0][1]+=2 if len(level)==2: level[0][1]+=2 level[1][1]+=2 if len(level)==3: level[0][1]+=2 level[1][1]+=2 level[2][1]+=2 if len(level)==4: level[0][1]+=2 level[1][1]+=2 level[2][1]+=2 level[3][1]+=2 if len(level)==5: level[0][1]+=2 level[1][1]+=2 level[2][1]+=2 level[3][1]+=2 level[4][1]+=2 if len(level)==6: level[0][1]+=2 level[1][1]+=2 level[2][1]+=2 level[3][1]+=2 level[4][1]+=2 level[5][1]+=2 if len(level)==7: level[0][1]+=2 level[1][1]+=2 level[2][1]+=2 level[3][1]+=2 level[4][1]+=2 level[5][1]+=2 level[6][1]+=2 draw_level() while not keydown(KEY_EXE): if GAME_MODE==False: STR("PRESS: [LEFT],[DOWN],[SHIFT]",2,1,(0,0,0),(200,255,255)) STR("[EXE] = EXIT & PRINT DATA.",2,20,(255,200,200),bg) STR("[9] = GAME_MODE",170,200,(255,255,200),bg) if GAME_MODE: F(foodx,foody,foodw,foodh,foodc) foodc=(RAND(0,255),RAND(0,255),RAND(0,255)) foody+=2 if foodx<3: foodx=3 if foodx>315: foodx=315 if foody>222: foody=RAND(-500,-300) if cx+cw>=foodx and cx<=foodx+foodw and cy+cw>=foody and cy<=foody+foodh: sleep(0.1) F(cx,cy,cw,ch,(0,255,255)) F(foodx,foody,foodw,foodh,(0,255,0)) foodx=RAND(3,315) foody=RAND(-500,-315) cenergy+=5 pc=foodc bg=(RAND(0,255),RAND(0,255),RAND(0,255)) cpoints+=RAND(50,100) STR("+5",cx-15,cy+20,(255,255,200),bg) STR("Yes!",150,2,(0,255,200),bg) if keydown(KEY_LEFT): F(0,0,322,222,bg) cx-=5 draw_level() if keydown(KEY_RIGHT): F(0,0,322,222,bg) cx+=5 draw_level() if keydown(KEY_UP): F(0,0,322,222,bg) cy-=5 draw_level() if keydown(KEY_DOWN): F(0,0,322,222,bg) cy+=5 draw_level() for i in level: if cx+cw >= i[0] and cx <= i[0]+i[2] and cy+ch >= i[1] and cy<= i[1]+i[3]: F(cx,cy,cw,ch,(255,0,0)) cenergy-=1 if GAME_MODE: if cenergy<0: GAME_MODE==False F(0,0,322,222,(0,0,0)) while not keydown(KEY_OK): STR("GAME OVER",100,100,"orange",(0,0,0)) STR("SCORE: "+str(cpoints),100,130,"white",(0,0,0)) STR("PRESS [OK]",100,170,"green",(0,0,0)) STR(" ",100,100,bg,bg) STR(" ",100,160,bg,bg) draw_level() cx=150 cy=140 cenergy=50 GAME_MODE==False if GAME_MODE==False: F(cx,cy,1,ch,cc) F(cx+cw-1,cy,1,ch,cc) F(cx,cy,cw,1,cc) F(cx,cy+ch-1,cw,1,cc) if GAME_MODE==True: F(cx,cy,2,ch,(0,255,0)) F(cx+cw-2,cy,2,ch,(0,255,0)) F(cx,cy,cw,2,(0,255,0)) F(cx,cy+ch-2,cw,2,(0,255,0)) if keydown(KEY_SHIFT) and GAME_MODE==False: sleep(0.2) bg=(RAND(0,255),RAND(0,255),RAND(0,255)) F(0,0,322,222,bg) draw_level() if len(level)>0: for i in level: i[-1]=(RAND(0,M),RAND(0,M),RAND(0,M)) for i in level: if i[0]+i[2]<-10: i[0]=322 for j in level: if j[1]+j[3]>222: j[1]=0-j[3] for i in level: i[-1]=(RAND(0,M),RAND(0,M),RAND(0,M)) if GAME_MODE==False: if keydown(KEY_DOWN): draw_level() move_DOWN() if keydown(KEY_LEFT): draw_level() move_LEFT() if keydown(KEY_NINE): sleep(0.2) GAME_MODE=True if GAME_MODE: F(0,0,3,222,(255,0,0)) F(315,0,3,222,(255,0,0)) STR("E:",4,4,(0,255,255),(0,0,0)) F(22,6,int(cenergy),12,(255,0,0)) move_DOWN() draw_level() for i in level: i[0]+=RAND(-4,4) i[2]+=RAND(-3,3) for j in level: if j[1]+j[3]>222+RAND(50,100): j[1]=0-j[3]-RAND(50,100) bg=choice([bg,bg,(RAND(0,M),RAND(0,M),RAND(0,M))]) F(0,0,322,222,bg) for i in level: i[0]=RAND(0,250) if cx<3: cx=3 F(cx,cy,cw,ch,(255,0,0)) cenergy-=0.1 if cx+cw>315: cx=315-cw F(cx,cy,cw,ch,(255,0,0)) cenergy-=0.1 #end F(0,0,322,222,(200,255,255)) STR("( Press [OK] )",90,100) print("") print("bg=",bg) print("level=",level)