# jeu_de_platforme.py

Created by charlie18-coquel

Created on November 07, 2021

6.25 KB

```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()```