from kandinsky import * from time import * from random import * from ion import * loop = 0 levell = 15 limitup = 31 limitdown = 191 game = 0 jumpcount = 0 yplat = [] xplat = [] lplat = [] count = 0 lava = 0 def background(): fill_rect(0,0,320,222,'black') def randomlevel(x, y, l): for i in range(levell): l.insert(i, randint(10, 80)) if i == 0: y.insert(i, randint(limitup,limitdown)) x.insert(i, 100) else: x.insert(i, x[i-1] + randint(125,150)) updown = randint(1, 2) randomh = randint(1, 40) if updown == 1: if y[i-1] - randomh < limitup: y.insert(i, limitup) else: y.insert(i, y[i-1] - randomh) elif updown == 2 : y.insert(i, randint(y[i-1], limitdown)) def plateforms(): for i in range(levell): if i == levell-1: fill_rect(xplat[i], yplat[i], lplat[i], 5, 'green') else: fill_rect(xplat[i], yplat[i], lplat[i], 5, 'white') def platformsresetright(): for i in range(levell): fill_rect(xplat[i] + lplat[i], yplat[i], 1, 10, 'black') def platformsresetleft(): for i in range(levell): fill_rect(xplat[i]-1, yplat[i], 1, 10, 'black') def hero_static(): fill_rect(xp+3,yp+1,3,1,'white') fill_rect(xp+2,yp+2,5,1,'white') fill_rect(xp+1,yp+3,2,1,'white') fill_rect(xp+6,yp+3,2,1,'white') fill_rect(xp+2,yp+4,1,2,'white') fill_rect(xp+6,yp+4,1,2,'white') fill_rect(xp+3,yp+6,3,1,'white') fill_rect(xp+4,yp+7,1,1,'white') fill_rect(xp+1,yp+8,7,1,'white') fill_rect(xp,yp+9,9,1,'white') fill_rect(xp,yp+10,9,1,'white') fill_rect(xp,yp+11,9,1,'white') fill_rect(xp,yp+12,9,1,'white') fill_rect(xp,yp+13,9,1,'white') fill_rect(xp,yp+14,1,1,'white') fill_rect(xp+2,yp+14,5,1,'white') fill_rect(xp+8,yp+14,1,1,'white') fill_rect(xp+2,yp+15,2,1,'white') fill_rect(xp+5,yp+15,2,1,'white') fill_rect(xp+2,yp+16,2,1,'white') fill_rect(xp+5,yp+16,2,1,'white') fill_rect(xp+2,yp+17,2,1,'white') fill_rect(xp+5,yp+17,2,1,'white') fill_rect(xp+2,yp+18,2,1,'white') fill_rect(xp+5,yp+18,2,1,'white') fill_rect(xp+2,yp+19,2,1,'white') fill_rect(xp+5,yp+19,2,1,'white') def hero_move(): fill_rect(xp+3,yp+1,3,1,'white') fill_rect(xp+2,yp+2,5,1,'white') fill_rect(xp+2,yp+3,1,1,'white') fill_rect(xp+6,yp+3,1,1,'white') fill_rect(xp+2,yp+4,1,2,'white') fill_rect(xp+8,yp+4,1,3,'white') fill_rect(xp+6,yp+4,1,2,'white') fill_rect(xp+3,yp+6,3,1,'white') fill_rect(xp+4,yp+7,1,1,'white') fill_rect(xp+7,yp+7,2,1,'white') fill_rect(xp+2,yp+8,6,1,'white') fill_rect(xp+1,yp+9,6,1,'white') fill_rect(xp,yp+10,7,1,'white') fill_rect(xp,yp+11,1,1,'white') fill_rect(xp+2,yp+11,5,1,'white') fill_rect(xp,yp+12,1,1,'white') fill_rect(xp+2,yp+12,5,1,'white') fill_rect(xp,yp+13,1,1,'white') fill_rect(xp+2,yp+13,5,1,'white') fill_rect(xp+2,yp+14,6,1,'white') fill_rect(xp+2,yp+15,2,1,'white') fill_rect(xp+6,yp+15,3,1,'white') fill_rect(xp+2,yp+16,2,1,'white') fill_rect(xp+7,yp+16,2,1,'white') fill_rect(xp+1,yp+17,3,1,'white') fill_rect(xp+7,yp+17,2,1,'white') fill_rect(xp,yp+18,3,1,'white') fill_rect(xp+7,yp+18,2,1,'white') fill_rect(xp,yp+19,2,1,'white') def hero_jump(): fill_rect(xp+3,yp+1,3,1,'white') fill_rect(xp+2,yp+2,5,1,'white') fill_rect(xp+2,yp+3,1,1,'white') fill_rect(xp+6,yp+3,1,1,'white') fill_rect(xp+2,yp+4,1,2,'white') fill_rect(xp+8,yp+4,1,3,'white') fill_rect(xp+6,yp+4,1,2,'white') fill_rect(xp+3,yp+6,3,1,'white') fill_rect(xp,yp+4,1,3,'white') fill_rect(xp,yp+7,2,1,'white') fill_rect(xp+4,yp+7,1,1,'white') fill_rect(xp+7,yp+7,2,1,'white') fill_rect(xp+1,yp+8,7,1,'white') fill_rect(xp+2,yp+9,5,1,'white') fill_rect(xp+2,yp+10,5,1,'white') fill_rect(xp+2,yp+11,5,1,'white') fill_rect(xp+2,yp+12,5,1,'white') fill_rect(xp+2,yp+13,5,1,'white') fill_rect(xp+1,yp+14,7,1,'white') fill_rect(xp+1,yp+15,3,1,'white') fill_rect(xp+6,yp+15,3,1,'white') fill_rect(xp,yp+16,2,1,'white') fill_rect(xp+7,yp+16,2,1,'white') fill_rect(xp,yp+17,2,1,'white') fill_rect(xp+7,yp+17,2,1,'white') fill_rect(xp,yp+18,2,1,'white') fill_rect(xp+7,yp+18,2,1,'white') def victory(): for i in range(222): fill_rect(0,i,320,1,'green') sleep(0.01) draw_string("YOU WIN",160,111) sleep(5) def death(): for i in range(222): fill_rect(0,i,320,1,'gray') sleep(0.01) fill_rect(130,61,60,50,'white') sleep(0.3) fill_rect(140,111,40,30,'white') sleep(0.3) fill_rect(140,71,10,30,'gray') sleep(0.3) fill_rect(170,71,10,30,'gray') sleep(0.3) fill_rect(145,112,5,28,'gray') sleep(0.3) fill_rect(153,112,5,28,'gray') sleep(0.3) fill_rect(162,112,5,28,'gray') sleep(0.3) fill_rect(170,112,5,28,'gray') sleep(5) def hero(): if h == 1: heroreset() hero_static() if h == 2: heroreset() hero_move () if h == 3: heroreset() hero_jump() def heroreset(): fill_rect(xp, yp, 10, 20, 'black') def lava1(): lw = 1 lwc = 0 fill_rect(0,212,320,10,'gray') for i in range(0,320,2): if lw == 1: lwc = 1 elif lw == 10: lwc = -1 lw = lw + lwc fill_rect(i,212,2,-lw,'gray') while loop == 0: randomlevel(xplat, yplat, lplat) xp = xplat[0] yp = yplat[0]-20 h = 1 background() plateforms() hero() lava1() while game == 0: h = 1 if keydown(KEY_RIGHT): platformsresetright() xplat = [x-1 for x in xplat] plateforms() h = 2 if keydown(KEY_LEFT): platformsresetleft() xplat = [x+1 for x in xplat] plateforms() h = 2 gravityleft = get_pixel(xp, yp + 20) gravityright = get_pixel(xp + 10, yp + 20) nofall = color('white') lavacolor1 = color('gray') if keydown(KEY_UP): if jumpcount == 0 and gravityleft == nofall or gravityright == nofall: jumpcount = 75 if jumpcount == 0 and gravityleft != nofall and gravityright != nofall: heroreset() yp = yp + 1 if jumpcount > 0: heroreset() yp = yp - 1 jumpcount = jumpcount - 1 h = 3 if gravityleft == lavacolor1 : heroreset() death() break if gravityleft == color('green'): victory() break count = count + 1 hero()