Labyrinth
version 5
projekt1.py — text/python-source, 10 KB (10924 bytes)
Dateiinhalt
"""Labyrint-mit Hindernissen Kugel als spielfigur """ from visual import * from visual.text import * oberflaeche = frame () a=100 b=0.5 c=2.5 flaeche = box (frame = oberflaeche, pos = (25,0,0),\ length=(50), height= (1), width= (a), color=color.blue, material=materials.wood) #Aussenwaende: wand5= box (frame = oberflaeche, pos = (0.5*a-0.5*b,1.75,0),\ length=(b), width=(a), height=(1),color=color.blue, material=materials.wood) wand6= box (frame = oberflaeche, pos = (0,1.75,0),\ length=(b), width=(a), height=(1), color=color.blue, material=materials.wood) wand7= box (frame = oberflaeche, pos = (25,1.75,0.5*a-0.5*b),\ length=(0.5*a), width=(b), height=(1), color=color.blue, material=materials.wood) wand8= box (frame = oberflaeche, pos = (25,1.75,-0.5*a+0.5*b),\ length=(0.5*a), width=(b), height=(1), color=color.blue, material=materials.wood) #Trennwaende: wand9 = box(frame= oberflaeche, pos = ( 30,1.75,45),\ length= (40), width = (1), height= (c),color=color.green , material=materials.wood) #1 wand10 = box(frame= oberflaeche, pos = ( 5,1.75,47),\ length= (1), width = (5), height= (c),color=color.green , material=materials.wood) #3 wand11 = box(frame= oberflaeche, pos = ( 40,1.75,40),\ length= (20), width = (1), height= (c),color=color.green , material=materials.wood) #7 wand12 =box(frame= oberflaeche, pos = ( 25,1.75,40 ),\ length= (1), width = (10), height= (c),color=color.green , material=materials.wood) #8 wand13 = box(frame= oberflaeche, pos = ( 10,1.75,40),\ length= (20), width = (1), height= (c),color=color.green , material=materials.wood) #9 wand14 =box(frame= oberflaeche, pos = ( 30,1.75,35.5 ),\ length= (1), width = (10), height= (c),color=color.green , material=materials.wood) #10 wand15 = box(frame= oberflaeche, pos = ( 15,1.75,35),\ length= (21), width = (1), height= (c),color=color.green , material=materials.wood) #11 wand16 = box(frame= oberflaeche, pos = ( 23,1.75,30),\ length= (15), width = (1), height= (c),color=color.green , material=materials.wood) #12 wand17 =box(frame= oberflaeche, pos = ( 10,1.75,-5 ),\ length= (1), width = (80), height= (c),color=color.green , material=materials.wood) #13 wand18 =box(frame= oberflaeche, pos = ( 15,1.75,28 ),\ length= (1), width = (5), height= (c),color=color.green , material=materials.wood) #14 wand19 = box(frame= oberflaeche, pos = ( 24.5,1.75,25),\ length= (20), width = (1), height= (c),color=color.green , material=materials.wood) #15 wand20 = box(frame= oberflaeche, pos = ( 32.5,1.75,20),\ length= (35), width = (1), height= (c),color=color.green , material=materials.wood) #16 wand21 =box(frame= oberflaeche, pos = ( 35,1.75,29.5 ),\ length= (1), width = (10), height= (c),color=color.green , material=materials.wood) #17 wand22 =box(frame= oberflaeche, pos = ( 45,1.75,29.5 ),\ length= (1), width = (10), height= (c),color=color.green , material=materials.wood) #18 wand23 = box(frame= oberflaeche, pos = ( 40,1.75,35),\ length= (11), width = (1), height= (c),color=color.green , material=materials.wood) #19 wand24 = box(frame= oberflaeche, pos = ( 43,1.75,25),\ length= (4), width = (1), height= (c),color=color.green, material=materials.wood ) #20 wand25 =box(frame= oberflaeche, pos = ( 40.5,1.75,27.5 ),\ length= (1), width = (6), height= (c),color=color.green , material=materials.wood) #21 wand26 =box(frame= oberflaeche, pos = ( 15,1.75,13 ),\ length= (1), width = (15), height= (c),color=color.green, material=materials.wood ) #22 wand27 = box(frame= oberflaeche, pos = ( 17,1.75,5),\ length= (5), width = (1), height= (c),color=color.green , material=materials.wood) #23 wand28 =box(frame= oberflaeche, pos = ( 20,1.75,9.5 ),\ length= (1), width = (10), height= (c),color=color.green , material=materials.wood) #24 wand29 =box(frame= oberflaeche, pos = ( 25.25,1.75,-5 ),\ length= (1), width = (31), height= (c),color=color.green , material=materials.wood) #25 wand30 = box(frame= oberflaeche, pos = ( 32.25,1.75,15),\ length= (25.5), width = (1), height= (c),color=color.green , material=materials.wood) #26 wand31 = box(frame= oberflaeche, pos = ( 35,1.75,10),\ length= (20.5), width = (1), height= (c),color=color.green , material=materials.wood) #27 wand32 =box(frame= oberflaeche, pos = ( 5,1.75,-5 ),\ length= (1), width = (80), height= (c),color=color.green , material=materials.wood) #28 wand33 = box(frame= oberflaeche, pos = ( 15.5,1.75,0),\ length= (10), width = (1), height= (c),color=color.green , material=materials.wood) #29 wand34 = box(frame= oberflaeche, pos = ( 27,1.75,-45),\ length= (35), width = (1), height= (c),color=color.green , material=materials.wood) #30 wand35 =box(frame= oberflaeche, pos = ( 45,1.75,-5 ),\ length= (1), width = (31), height= (c),color=color.green , material=materials.wood) #31 wand36 =box(frame= oberflaeche, pos = ( 45,1.75,-35.5 ),\ length= (1), width = (20), height= (c),color=color.green , material=materials.wood) #32 wand37 = box(frame= oberflaeche, pos = ( 35,1.75,-20),\ length= (20.5), width = (1), height= (c),color=color.green , material=materials.wood) #33 wand38 = box(frame= oberflaeche, pos = ( 35.25,1.75,-25),\ length= (20.5), width = (1), height= (c),color=color.green , material=materials.wood) #34 wand39 =box(frame= oberflaeche, pos = ( 20,1.75,-10 ),\ length= (1), width = (21), height= (c),color=color.green , material=materials.wood) #35 wand40 =box(frame= oberflaeche, pos = ( 15,1.75,-12.5 ),\ length= (1), width = (15), height= (c),color=color.green , material=materials.wood) #36 wand41 = box(frame= oberflaeche, pos = ( 17,1.75,-20),\ length= (5), width = (1), height= (c),color=color.green , material=materials.wood) #37 wand42 = box(frame= oberflaeche, pos = ( 17,1.75,-25),\ length= (5), width = (1), height= (c),color=color.green, material=materials.wood ) #38 wand43 = box(frame= oberflaeche, pos = ( 17,1.75,-35),\ length= (5), width = (1), height= (c),color=color.green, material=materials.wood ) #39 wand44 =box(frame= oberflaeche, pos = ( 20,1.75,-30 ),\ length= (1), width = (11), height= (c),color=color.green, material=materials.wood ) #40 wand45 =box(frame= oberflaeche, pos = ( 15,1.75,-30 ),\ length= (1), width = (10), height= (c),color=color.green , material=materials.wood) #41 wand44 =box(frame= oberflaeche, pos = ( 25,1.75,-32.25 ),\ length= (1), width = (15.5), height= (c),color=color.green , material=materials.wood) #42 wand45 = box(frame= oberflaeche, pos = ( 27,1.75,-40),\ length= (25), width = (1), height= (c),color=color.green , material=materials.wood) #43 wand46 =box(frame= oberflaeche, pos = ( 40,1.75,-35.5 ),\ length= (1), width = (10), height= (c),color=color.green , material=materials.wood) #44 wand47 = box(frame= oberflaeche, pos = ( 35.25,1.75,-30.5),\ length= (10.5), width = (1), height= (c),color=color.green , material=materials.wood) #45 wand44 =box(frame= oberflaeche, pos = ( 30,1.75,-32.5 ),\ length= (1), width = (5), height= (c),color=color.green , material=materials.wood) #46 #Smilie: wand45 =box(frame= oberflaeche, pos = ( 30,1.75,-11 ),\ length= (1), width = (5), height= (c),color=color.green , material=materials.wood) #s1 wand46 =box(frame= oberflaeche, pos = ( 30,1.75,1 ),\ length= (1), width = (5), height= (c),color=color.green , material=materials.wood) #s2 wand47 =box(frame= oberflaeche, pos = ( 40,1.75,-5 ),\ length= (1), width = (17), height= (c),color=color.green , material=materials.wood) #s3 wand48 = box(frame= oberflaeche, pos = ( 38,1.75,3),\ length= (4), width = (1), height= (c),color=color.green , material=materials.wood) #s4 wand49 = box(frame= oberflaeche, pos = ( 38,1.75,-13),\ length= (4), width = (1), height= (c),color=color.green, material=materials.wood ) #s5 wand50 = box(frame= oberflaeche, pos = ( 34,1.75,-5),\ length= (3), width = (1), height= (c),color=color.green , material=materials.wood) #s6 #Zielfeld: feld = box(frame = oberflaeche, pos = (47.5,0.51,42.5),\ length=(5), width = (5), height=(0.1),color = color.red, material=materials.wood) # Blick auf die Szene scene.forward=(-2,-3,0) scene.background=color.black # Ball mit Geschwindigkeit und repr. Vektorpfeil ball = sphere (frame= oberflaeche, pos= (47.5,1.5,47.5),radius =( 1),color=color.orange, opacity=0.8, material=materials.wood) oberflaeche.velocity=vector(0, 0, -1) ball.velocity = oberflaeche.velocity e=0 f=0 name='wand' list=[] locs=locals() for i in range(5,50): list.append(locs[name + str(i)]) while True: rate(100) #oberflaeche.pos= oberflaeche.pos+ oberflaeche.velocity*dt # Falls Tastatur gedrueckt... if scene.kb.keys: s = scene.kb.getkey() print s print oberflaeche.axis if s == 'up' and f<25 : # links oberflaeche.rotate(angle=radians(0.75), axis=(0,0,1)) f=f+1 elif s == 'down'and f>-25: # right oberflaeche.rotate(angle=radians(0.75), axis=(0,0,-1)) f=f-1 elif s == 'right' and e<25: # vor oberflaeche.rotate(angle=radians(0.75), axis=(-1,0,0)) e=e+1 elif s == 'left' and e>-25: # zurueck oberflaeche.rotate(angle=radians(0.75), axis=(1,0,0)) e=e-1 #Moeglichkeit des uebertretens des Feldes verhindern: """if ball.x>1 and ball.x<48: ball.x= ball.x+(-0.001*f) #Bewegegung des Balls in x-Richtung else: if ball.x>=48: ball.x=47.9999 if ball.x<=1: ball.x=1.0001 if ball.z>-48 and ball.z<48: ball.z=ball.z+(-0.001*e) #Bewegung des Balls in z-Richtung else: if ball.z>=48: ball.z=47.9999 if ball.z<=-48: ball.z=-47.9999""" ballpositionX=ball.x ballpositionZ=ball.z for wand in list: #X xbereich = [wand.x - wand.length/2,wand.x + wand.length/2] #Z zbereich = [wand.z - wand.width/2,wand.z + wand.width/2] if xbereich[0] <= ball.x<= xbereich[1]and zbereich[0] <= ball.z<= zbereich[1]: print xbereich[0] ball.x=47.5 ball.z=47.5 print ball.x print ball.z else: ball.z=ball.z+(-0.001*e) ball.x=ball.x+(-0.001*f) if box.x==feld.x: text=text(text='Gewonnen', alaign=center, depth=-0.5, color=color.red, material=materials.wood)