Jack Admin
Nombre de messages : 2395 Date d'inscription : 28/05/2007
| Sujet: SYNAPSE Mer 3 Déc 2008 - 21:47 | |
| Pour les impatients, voici un listing du jeu SYNAPSE que vous pouvez exécuter dans l'EDITEUR. Voici le principe: Un parcours est constitué d'une suite de cases de différentes couleurs. Sur ce parcours, une petite boule rouge (le personnage) doit aller sur une case particulière (la case jaune). On déplace le personnage avec les 4 touches fléchées du clavier (ou les 4 touches fléchées du pavé numérique, cela dépend de votre clavier). Mais la couleur d'une case indique le nombre de passages et une case ne disparait que lorsqu'elle est grise ou violette quand le personnage la quitte. Lorsque le personnage est sur une case violette, il doit obligatoirement sauter. A chaque fois que le personnage tombe dans le vide, il doit recommencer le niveau au début. Le jeu contient 8 niveaux. Voici le règle des couleurs: case grise : 1 seul passage case bleue : 2 passages obligatoires case verte : 3 passages obligatoires case rouge : 4 passages obligatoires case violette : un saut est obligatoire On revient au début du niveau par ESPACE (abandon) On sort du jeu par ESCAPE Amusez-vous bien! - Code:
-
rem 03/12/2008 rem SYNAPSE sous PANORAMIC dim game%(20,11),c,i,j,k,k$,lev,m,nc,xs,ys,xp,yp label start,test,move,draw_game,rules,bravo,level,ooops,panoramic rem ********************************************************* rem DESCRITION OF LEVELS rem ********************************************************* rem first level : position of the squares rem format X , Y , V rem color code for V: rem 1=gray rem 2=blue rem 3=green rem 4=red rem 9=jump rem -1=goal=yellow rem level 1 data 15:rem number of squares data 5,8,1:rem start data 6,8,1 data 7,8,1 data 8,8,1 data 9,8,1 data 9,7,1 data 9,6,1 data 8,6,1 data 7,6,1 data 7,5,1 data 8,5,1 data 9,5,1 data 10,5,1 data 11,5,1 data 12,5,-1:rem goal rem level 2 data 14 data 6,4,1 data 7,4,1 data 8,4,1 data 9,4,1 data 10,4,1 data 11,4,2 data 11,5,1 data 12,4,1 data 13,4,1 data 14,4,1 data 15,4,1 data 15,5,1 data 15,6,9 data 15,8,-1 rem level 3 data 18 data 12,8,1 data 12,7,1 data 12,6,1 data 12,5,1 data 11,5,1 data 10,5,1 data 9,5,1 data 8,5,1 data 7,5,1 data 6,5,1 data 6,4,1 data 6,3,1 data 7,3,1 data 8,3,1 data 9,3,1 data 10,3,1 data 10,4,9 data 10,6,-1 rem level 4 data 19 data 13,6,1 data 14,6,9 data 12,6,1 data 11,6,2 data 10,6,2 data 9,6,2 data 8,6,1 data 7,6,1 data 6,6,1 data 6,5,1 data 6,4,1 data 7,4,1 data 8,4,1 data 9,4,1 data 10,4,1 data 11,4,1 data 11,5,1 data 11,7,1 data 11,8,-1 rem level 5 data 16 data 8,6,1 data 9,6,2 data 10,6,2 data 11,6,2 data 12,6,2 data 13,6,4 data 13,7,1 data 13,8,9 data 14,6,1 data 15,6,9 data 13,5,1 data 13,4,9 data 9,5,1 data 8,5,1 data 7,5,1 data 7,6,-1 rem level 6 data 14 data 7,8,1 data 8,8,1 data 9,8,1 data 10,8,1 data 11,8,1 data 12,8,1 data 13,8,1 data 13,7,1 data 12,7,1 data 11,7,1 data 11,6,1 data 12,6,9 data 13,6,9 data 12,4,-1 rem level 7 data 16 data 9,9,1 data 10,9,1 data 11,9,1 data 12,9,1 data 12,8,1 data 12,7,1 data 13,7,1 data 12,6,2 data 12,5,2 data 11,6,9 data 11,5,9 data 11,4,9 data 12,4,9 data 13,6,9 data 13,5,9 data 13,4,-1 rem level 8 data 16 data 8,8,1 data 8,7,9 data 9,9,1 data 9,8,2 data 9,7,1 data 9,6,1 data 9,5,1 data 10,9,1 data 10,8,1 data 10,7,9 data 10,6,1 data 11,8,1 data 11,7,2 data 11,6,2 data 11,5,9 data 8,9,-1 rem ********************************************************* rem INITIATION rem ********************************************************* width 0,800 height 0,600 scene3D 1:full_space 1 color 1,70,120,120 caption 0,"SYNAPSE 3D : flèches pour bouger, ESPACE pour termimer" gosub rules 3d_delete_all lev=1:rem level start: if lev=9 then gosub panoramic:end:rem last level is 8 gosub level restore rem clear the game 20x11 for i=1 to 20 for j=1 to 11 game%(i,j)=0 next j next i if lev>1 for i=1 to lev-1: rem jump the upper levels read nc for c=1 to nc:read k:read k:read k:next c next i end_if 3d_delete_all rem set the light cam_x_position 0:cam_y_position 0:cam_z_position 9 rem read number of squares read nc rem put the character (red sphere) on the first square 3d_sphere 1,0.3:3d_color 1,255,0,0 read xs:read ys: rem read position of first square (character) 3d_x_position 1,xs:3d_y_position 1,ys rem memorize the colors in the table read c:rem read the code game%(xs,ys)=c for i=2 to nc read xp:read yp:rem read the coordinates read c:rem read the code game%(xp,yp)=c next i gosub draw_game rem ********************************************************* rem MAIN LOOP : read the keyboard for the moves rem ********************************************************* test: m=0 if scancode=37 then m=37:xp=xs:yp=ys:xs=xs-1:goto move:rem left if scancode=38 then m=38:xp=xs:yp=ys:ys=ys+1:goto move:rem up if scancode=39 then m=39:xp=xs:yp=ys:xs=xs+1:goto move:rem right if scancode=40 then m=40:xp=xs:yp=ys:ys=ys-1:goto move:rem bottom if scancode=32 or scancode=13 then goto start:rem SPACE or ENTER if scancode=27 then terminate wait 50 goto test move: if game%(xp,yp)=9:rem JUMP=double move if m=37 then xs=xs-1 if m=38 then ys=ys+1 if m=39 then xs=xs+1 if m=40 then ys=ys-1 end_if rem move the character to (xs,ys) 3d_x_position 1,xs:3d_y_position 1,ys rem check if no square under character if game%(xs,ys)=0 then wait 500:gosub ooops:gosub rules:goto start:rem fall ! if game%(xp,yp)=9 then game%(xp,yp)=1:rem case of jump game%(xp,yp)=game%(xp,yp)-1:rem changes the value if game%(xp,yp)=0 then nc=nc-1:rem number of characters 3d_delete_all rem recreate the character 3d_sphere 1,0.3:3d_color 1,255,0,0 3d_x_position 1,xs:3d_y_position 1,ys rem draw the new game (the squares) gosub draw_game if game%(xs,ys)=-1 wait 1000 if nc=1 then gosub bravo:lev=lev+1:goto start:rem goal reached ! gosub ooops:gosub rules:goto start end_if wait 100 goto test rem ********************************************************* rem DRAW THE BOARD rem ********************************************************* draw_game: rem set the camera to play cam_x_position 8:cam_y_position 8:cam_z_position 9 rem aim the camera point_x_position 8:point_y_position 8 rem read the table, create the squares with their color k=1 for i=1 to 20 for j=1 to 11 if game%(i,j)=1 then k=k+1:3d_box k,0.95,0.95,0.2:3d_x_position k,i:3d_y_position k,j:3d_color k,70,70,70 if game%(i,j)=2 then k=k+1:3d_box k,0.95,0.95,0.2:3d_x_position k,i:3d_y_position k,j:3d_color k,0,0,255 if game%(i,j)=3 then k=k+1:3d_box k,0.95,0.95,0.2:3d_x_position k,i:3d_y_position k,j:3d_color k,0,255,0 if game%(i,j)=4 then k=k+1:3d_box k,0.95,0.95,0.2:3d_x_position k,i:3d_y_position k,j:3d_color k,255,0,0 if game%(i,j)=9 then k=k+1:3d_box k,0.95,0.95,0.2:3d_x_position k,i:3d_y_position k,j:3d_color k,255,0,255 if game%(i,j)=-1 then k=k+1:3d_box k,0.95,0.95,0.2:3d_x_position k,i:3d_y_position k,j:3d_color k,255,255,0 next j next i return rem ********************************************************* rem DISPLAY THE RULES rem ********************************************************* rules: 3d_delete_all rem set the camera for text cam_x_position 6:cam_y_position 6:cam_z_position 8 rem aim the camera point_x_position 6:point_y_position 6 3d_box 1,0.95,0.95,0.2:3d_color 1,70,70,70 3d_x_position 1,0:3d_y_position 1,11 3d_text 2,"GRIS = 1 PASSAGE":3d_color 2,70,70,70 3d_x_position 2,2:3d_y_position 2,11 3d_box 3,0.95,0.95,0.2:3d_color 3,0,0,255 3d_x_position 3,0:3d_y_position 3,9.6 3d_text 4,"BLEU = 2 PASSAGES":3d_color 4,0,0,255 3d_x_position 4,2:3d_y_position 4,9.6 3d_box 5,0.95,0.95,0.2:3d_color 5,0,255,0 3d_x_position 5,0:3d_y_position 5,8.2 3d_text 6,"VERT = 3 PASSAGES":3d_color 6,0,255,0 3d_x_position 6,2:3d_y_position 6,8.2 3d_box 7,0.95,0.95,0.2:3d_color 7,255,0,0 3d_x_position 7,0:3d_y_position 7,6.8 3d_text 8,"ROUGE = 4 PASSAGES":3d_color 8,255,0,0 3d_x_position 8,2:3d_y_position 8,6.8 3d_box 9,0.95,0.95,0.2:3d_color 9,255,0,255 3d_x_position 9,0:3d_y_position 9,5.4 3d_text 10,"VIOLET = SAUT":3d_color 10,255,0,255 3d_x_position 10,2:3d_y_position 10,5.4 3d_box 11,0.95,0.95,0.2:3d_color 11,255,255,0 3d_x_position 11,0:3d_y_position 11,4 3d_text 12,"JAUNE = BUT":3d_color 12,255,255,0 3d_x_position 12,2:3d_y_position 12,4 3d_text 13,"Flèches pour se déplacer":3d_color 13,70,70,70 3d_x_position 13,0:3d_y_position 13,2.5 3d_text 14,"ESCAPE pour SORTIR":3d_color 14,70,70,70 3d_x_position 14,0:3d_y_position 14,1 wait 6500 return rem ********************************************************* rem DISPLAY BRAVO rem ********************************************************* bravo: 3d_delete_all rem set the camera for text cam_x_position 2:cam_y_position 6:cam_z_position 5 rem aim the camera point_x_position 2:point_y_position 6 3d_text 2,"BRAVO !":3d_color 2,70,70,70 3d_x_position 2,0:3d_y_position 2,6 wait 2000 return rem ********************************************************* rem DISPLAY LEVEL rem ********************************************************* level: 3d_delete_all rem set the camera for text cam_x_position 2:cam_y_position 6:cam_z_position 5 rem aim the camera point_x_position 2:point_y_position 6 3d_text 2,"Niveau "+str$(lev):3d_color 2,70,70,70 3d_x_position 2,0:3d_y_position 2,6 wait 2000 return rem ********************************************************* rem DISPLAY OOOPS rem ********************************************************* ooops: 3d_delete_all rem set the camera for text cam_x_position 2:cam_y_position 6:cam_z_position 5 rem aim the camera point_x_position 2:point_y_position 6 3d_text 2,"OOOPS ...":3d_color 2,70,70,70 3d_x_position 2,0:3d_y_position 2,6 wait 2000 return rem ********************************************************* rem DISPLAY ADVERTISEMENT rem ********************************************************* panoramic: 3d_delete_all rem set the camera for text cam_x_position 8:cam_y_position 6:cam_z_position 11 rem aim the camera point_x_position 8:point_y_position 6 rem set the light light_x_position 8:light_y_position 6:light_z_position 10 3d_text 2,"Ce jeu a été programmé" 3d_color 2,70,70,70 3d_x_position 2,0:3d_y_position 2,10 3d_text 3,"avec le langage PANORAMIC disponible sur :" 3d_color 3,70,70,70 3d_x_position 3,0:3d_y_position 3,6 3d_text 4," www.panoramic-language.com"3d_color 4,15,15,255 3d_x_position 4,0:3d_y_position 4,2 caption 0,"Cliquez sur la croix pour fermer. A bientôt sur le site !" return EDIT: Pour ceux qui auraient du mal à copier ce code, je l'ai mis à disposition sur le site: www.panoramic-language.com/Reference/Sources/SYNAPSE.bas
Dernière édition par panoramic le Mer 3 Déc 2008 - 22:06, édité 2 fois (Raison : code source disponible sur le site) | |
|