Salutations. Nouveau début de programme, complété : ' *********************** ' * JEU du DAMIER * DAM02.BAS ' *********************** ' Ecrit par Sazuke 83 et SFLPMEA CLS : SCREEN 12: WINDOW SCREEN (1, 1)-(640, 480) OPTION BASE 1 ' ***** Eléments modifiables (dans une certaine limite) L.C% = 40 ' ***** Dimension d'une case carrée du damier Nb.L% = 9 ' ***** Nombre de lignes du damier Nb.Col% = 14 ' ***** Nombre de colonnes Ec% = 5 ' ***** Intervalle/Ecart entre les cases Cc% = 13 ' ***** Couleur du contour des cases Nb.Cf% = 5 ' ***** Nombre de Cases Fixes Ccf% = 4 ' ***** Couleur des cases fixes Nb.Camo% = 12 ' ***** Nombre de Cases mobiles et déplaçables Ccamo% = 11 ' ***** Couleur des cases mobiles Col.C% = 14 ' ***** Les DIM DIM Kase(Nb.Col%, Nb.L%) AS STRING * 4 ' ***** Contenu du damier ' ***** Possibilités ' ***** "VIDE" ' ***** "FIXE" ' ***** "MOBI" ' ***** "ROND" FOR C% = 1 TO Nb.Col%: FOR L% = 1 TO Nb.L% Kase(C%, L%) = "VIDE" NEXT L%, C% DIM Xp%(Nb.Col%) ' ***** Abscisse du Pixel central des cases DIM Yp%(Nb.L%) ' ***** Ordonnée du pixel central des cases FOR I% = 1 TO Nb.Col% Xp%(I%) = Ec% + L.C% / 2 + (Ec% + L.C%) * (I% - 1) NEXT I% FOR I% = 1 TO Nb.L% Yp%(I%) = Ec% + L.C% / 2 + (Ec% + L.C%) * (I% - 1) NEXT ' ***** Dessin du damier L.C2% = L.C% / 2 ' ***** demi côté d'une case FOR X1% = 1 TO Nb.Col% X% = Xp%(X1%) FOR Y1% = 1 TO Nb.L% Y% = Yp%(Y1%) LINE (X% - L.C2%, Y% - L.C2%)-(X% + L.C2%, Y% + L.C2%), Cc%, B, &H3333 ' Tu peux supprimer le &H3333 NEXT Y1% NEXT X1% ' ***** Positionnement des dalles fixes (JAMAIS en bordure du damier) RANDOMIZE TIMER FOR I% = 1 TO Nb.Cf% E01.DALLES.FIXES: C% = INT(RND * (Nb.Col% - 2)) + 2 L% = INT(RND * (Nb.L% - 2)) + 2 IF Kase(C%, L%) <> "VIDE" GOTO E01.DALLES.FIXES X% = Xp%(C%): Y% = Yp%(L%) LINE (X% - L.C2% + 2, Y% - L.C2% + 2)-(X% + L.C2% - 2, Y% + L.C2% - 2), Ccf%, BF Kase(C%, L%) = "FIXE" NEXT I% ' ***** Positionnement des cases mobiles et déplaçables FOR I% = 1 TO Nb.Camo% E02.DALLES.MOVIBLES: C% = INT(RND * (Nb.Col% - 2)) + 2 L% = INT(RND * (Nb.L% - 2)) + 2 IF Kase(C%, L%) <> "VIDE" GOTO E02.DALLES.MOVIBLES X% = Xp%(C%): Y% = Yp%(L%) LINE (X% - L.C2% + 2, Y% - L.C2% + 2)-(X% + L.C2% - 2, Y% + L.C2% - 2), Ccamo%, BF Kase(C%, L%) = "MOBI" NEXT I% ' ***** Positionnement de départ du cercle (n'importe où) E03.DEPART: C% = INT(RND * Nb.Col%) + 1 C% = INT(RND * Nb.L%) + 1 IF Kase(C%, L%) <> "VIDE" GOTO E03.DEPART X.C% = Xp%(C%): Y.C% = Yp%(L%) CIRCLE (X.C%, Y.C%), L.C2% - 1, Col.C% CIRCLE (X.C%, Y.C%), L.C2% - 8, Col.C% PAINT (X.C% - L.C2% + 2, Y.C%), Col.C%, Col.C% Kase(C%, L%) = "ROND" END