Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Othello | |
| | Auteur | Message |
---|
jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: Othello Mer 17 Mai 2017 - 17:44 | |
| En 2014, j'avais présenté une simple table d'exercice, pour ce jeu. Aujourd'hui, le voici comme un jeu tout à fait complet... En plus, l'ordinateur est gentil, il ne cherche pas à vous battre à plate couture à tous les coups, comme c'est le cas dans bien d'autres jeux... Il est même tellement gentil qu'il peut vous donner des conseils pour que vous puissiez encore mieux le battre ! Le pied, non ? - Code:
-
rem ' Othello - par jjn4 - le 16-05-2017 ====================================== dim V1M% , V2M% , V3M% , V1D$ : rem Variables à utilisation Multiple et Variée dim EI% : rem Emplacement Indiqué pour dessiner les pions dim CC%(9,9) : rem Pions contenus dans les cases de la grille dim CF% : rem Couleur du feu du bas (vert=0 - rouge=1) dim CJ% : rem Couleur que joue le joueur seul contre l`ordi (1=Blancs 0=Noirs) dim GA%(8,8) : rem Grille d`Analyse de la situation dim GR%(8,8) : rem GRille décorative dim NC% : rem Nombre de cases où jouer dim NQ% : rem Numero de la cellule cliQuée dim IO% : rem Indicateur du bouton Où dim JP% : rem Indicateur de Juste Place d`un pion dim TB% , TN% : rem Total de points des blancs et des noirs dim VL%(8) : rem Valeur des Lignes autour du pion joué dim TP$ : rem Titre du Programme label clac : rem Redirection de tous les on-click hors grille label clic : rem Clic sur une cellule de la grille CC%(5,4)=1 : CC%(5,5)=2 : CC%(4,4)=2 : CC%(4,5)=1 V1D$="DBDAADBDECEDDECEBACBBCABFBEDDEBF" : rem Hexadécimal ------------------ TP$=" Othello - par jjn4 - Ver-130514.2.0" for V1M%=1 to 2 V1D$=reverse$(V1D$) for V3M%=1+(V1M%-1)*4 to 4+(V1M%-1)*4 for V2M%=1 to 8 GR%(V3M%,V2M%)=asc(mid$(V1D$,((V3M%-1)-(V1M%-1)*4)*8+V2M%,1))-65 next V2M% next V3M% next V1M%
rem form0 ===================================================================== width 0,1000 height 0,730 caption 0,TP$
rem Cache de début de jeu ===================================================== form 5 width 5,1000 height 5,730 caption 5," Othello - Suspens..." picture 6 parent 6,5 full_space 6 color 6,180,255,255 2d_target_is 6 for V1M% = 1 to 30 V2M%=int(rnd(2))+1 if V2M%=1 2d_fill_color 255,255,255 else 2d_fill_color 0,0,0 end_if 2d_circle int(rnd(900))+50,int(rnd(580))+50,35 next V1M% panel 7 parent 7,5 left 7,300 top 7,400 width 7,400 height 7,80 font_bold 7 font_size 7,20 font_name 7,"Arial" caption 7,"O T H E L L O"
rem Indicateurs de jeu ======================================================== button 18 : rem Bouton où left 18,9 top 18,536 width 18,106 height 18,106 font_bold 18 font_size 18,22 font_name 18,"Arial" caption 18,"Où" on_click 18,clac alpha 19 : rem Annotation du bouton Où left 19,7 top 19,648 caption 19,"Conseils de l'ordinateur" alpha 20 : rem fond rouge du dessus du bouton où hide 20 left 20,2 top 20,475 width 20,120 height 20,173 color 20,255,0,0 alpha 21 : rem Indication du bouton Où hide 21 left 21,20 top 21,460 font_color 21,255,0,0 caption 21,"Cliquez sur Jouer" alpha 22 : rem Fond noir du dessus du bouton où hide 22 left 22,9 top 22,482 width 22,53 height 22,54 color 22,0,0,0 alpha 24 : rem Fond blanc du dessus du bouton où hide 24 left 24,62 top 24,482 width 24,53 height 24,54 color 24,255,255,255 alpha 26 : rem Fond du chiffre blanc sur fond noir (bouton où) hide 26 left 26,17 top 26,491 font_bold 26 font_size 26,24 color 26,0,0,0 font_color 26,255,255,255 alpha 28 : rem Fond du chiffre noir sur fond blanc (bouton où) hide 28 left 28,70 top 28,491 font_bold 28 font_size 28,24 color 28,255,255,255 alpha 30 : rem fond blanc du dessus du bouton Haut-Bas left 30,10 top 30,80 width 30,48 height 30,53 color 30,255,255,255 alpha 32 : rem Fond noir du dessus du bouton Haut-Bas left 32,10 top 32,133 width 32,48 height 32,53 color 32,0,0,0 alpha 34 : rem Fond rouge du dessus du bouton Haut-Bas left 34,58 top 34,80 width 34,58 height 34,53 color 34,255,0,0 alpha 36 : rem Fond vert du dessus du bouton Haut-Bas left 36,58 top 36,133 width 36,58 height 36,53 color 36,0,255,0 button 38 : rem Bouton Haut-Bas left 38,10 top 38,190 width 38,106 height 38,106 font_bold 38 font_size 38,48 font_name 38,"Wingdings" caption 38,chr$(244) on_click 38,clac inactive 38 alpha 39 left 39,12 top 39,297 caption 39,"Inverser Noirs-Blancs" alpha 40 : rem Fond noir du nombre de pions noirs left 40,10 top 40,380 width 40,53 height 40,53 color 40,0,0,0 alpha 42 : rem Fond blanc du nombre de pions blancs left 42,63 top 42,380 width 42,53 height 42,53 color 42,255,255,255 alpha 44 : rem Écriture bleue du nombre de pions noirs left 44,18 top 44,389 font_bold 44 font_size 44,24 color 44,0,0,0 font_color 44,0,255,255 alpha 45 : rem Écriture bleue du nombre de pions blancs left 45,71 top 45,389 font_bold 45 font_size 45,24 color 45,255,255,255 font_color 45,0,0,255 alpha 46 left 46,20 top 46,435 caption 46,"Nombre de points" alpha 47 : rem Indication que c`est aux Noirs de jouer left 47,65 top 47,138 font_bold 47 font_size 47,12 color 47,0,255,0 caption 47," Aux"+chr$(13)+"Noirs" panel 48 : rem Support de l`indication Impossible de jouer hide 48 left 48,2 top 48,322 width 48,120 height 48,42 color 48,255,0,0 alpha 49 : rem Indication Impossible de jouer parent 49,48 left 49,5 top 49,6 color 49,255,0,0 font_bold 49 caption 49,"Impossible de jouer"+chr$(13)+" Passer son tour" rem Boutons de commande ======================================================= button 50 : rem Bouton Aide left 50,784 top 50,25 width 50,160 height 50,140 font_bold 50 font_size 50,28 font_name 50,"Arial" caption 50,"Aide" on_click 50,clac alpha 51 : rem Annotation du bouton Aide left 51,814 top 51,10 caption 51,"Explications diverses" button 52 : rem Bouton Nouveau left 52,784 top 52,345 width 52,160 height 52,140 font_bold 52 font_size 52,20 font_name 52,"Arial" caption 52,"Nouveau" on_click 52,clac alpha 53 : rem Annotation du bouton Nouveau left 53,782 top 53,330 caption 53,"Recommencer une nouvelle partie" button 54 : rem Bouton Quitter left 54,784 top 54,510 width 54,160 height 54,140 font_bold 54 font_size 54,22 font_name 54,"Arial" caption 54,"Quitter" on_click 54,clac alpha 55 : rem Annotation du bouton Quitter left 55,820 top 55,495 caption 55,"Abandonner ce jeu" button 56 : rem Bouton Nombre de joueurs biologiques left 56,784 top 56,190 width 56,160 height 56,130 font_bold 56 font_size 56,75 font_name 56,"Arial" caption 56,"1" on_click 56,clac alpha 58 : rem Annotation sur le nombre de joueurs biologiques left 58,787 top 58,175 caption 58,"Nombre de joueurs biologiques" panel 60 : rem Bouton du choix de la couleur de jeu left 60,2 top 60,5 width 60,120 height 60,50 color 60,0,0,0 font_bold 60 font_color 60,0,255,255 caption 60,"Vous jouez noirs" on_click 60,clac alpha 61 : rem Annotation pour le choix de la couleur du jeu left 61,8 top 61,55 caption 61,"Cliquez ici pour choisir" button 62 : rem Bouton Démarrer hide 62 left 62,784 top 62,345 width 62,160 height 62,140 font_bold 62 font_size 62,20 font_name 62,"Arial" caption 62,"Démarrer" on_click 62,clac alpha 63 : rem Annotation du bouton Démarrer hide 63 left 63,782 top 63,330 color 63,255,0,0 font_color 63,255,255,255 caption 63," Faire agir l'ordinateur " rem Bordure du tableau ======================================================== alpha 80 left 80,125 top 80,5 width 80,648 height 80,648 color 80,120,90,0 alpha 90 : rem Commentaires en bas de la grille left 90,250 top 90,660 caption 90,"Cliquez sur une des cases pour commencer à jouer"
rem Dessin de la grille (101-108 + 111-118 + 121-128 + 131-138 ) ============== for V1M%=1 to 8 : rem ( + 141-148 + 151-158 + 161-168 + 171-178) for V2M%=1 to 8 picture 100+(V1M%-1)*10+V2M% left 100+(V1M%-1)*10+V2M%,V2M%*80+50 top 100+(V1M%-1)*10+V2M%,(8-V1M%)*80+10 width 100+(V1M%-1)*10+V2M%,78 height 100+(V1M%-1)*10+V2M%,78 color 100+(V1M%-1)*10+V2M%,180,255,255 on_click 100+(V1M%-1)*10+V2M%,clic next V2M% next V1M%
rem Fin de jeu ================================================================ panel 180 hide 180 left 180,960 top 180,10 width 180,160 height 180,155 color 180,255,255,0 on_click 180,clac alpha 182 parent 182,180 left 182,18 top 182,15 font_bold 182 font_size 182,18 font_name 182,"Arial" caption 182," Terminer"+chr$(13)+" le jeu"+chr$(13)+" si suite"+chr$(13)+"impossible" on_click 182,clac panel 185 hide 185 left 185,960 top 185,180 width 185,160 height 185,305 color 185,255,255,0 alpha 187 parent 187,185 left 187,20 top 187,20 font_bold 187 font_size 187,18 font_name 187,"Arial" alpha 189 parent 189,185 left 189,20 top 189,150 font_bold 189 font_size 189,18 font_name 189,"Arial" panel 195 hide 195 left 195,960 top 195,500 width 195,160 height 195,150 color 195,255,255,0 font_size 195,95 font_name 195,"Webdings" font_color 195,255,50,0 caption 195,chr$(37) rem Préparation du jeu ===================================================== for V1M%=0 to 1 for V2M%=0 to 1 EI%=134+V1M%*10+V2M% dessin(V1M%,V2M%) next V2M% next V1M% dlist 200 calcul() midi_on midi_volume 127 hide 5 end : rem ' Début des routines ================================================
sub aide() : rem Aide à l`utilisation du programme ============================ application_title " REGLES DU JEU D'OTHELLO" V1D$=" Ce jeu consiste à placer des pions de sa couleur"+chr$(13) V1D$=V1D$+"de façon à ce que ceux-ci emprisonnent un ou plusieurs"+chr$(13) V1D$=V1D$+"pions adverses dans le sens horizontal, vertical ou diagonal."+chr$(13) V1D$=V1D$+chr$(13)+" Les pions capturés prendront alors la couleur du joueur."+chr$(13) V1D$=V1D$+"Vous devez placer vos pions à un endroit où ils pourront prendre"+chr$(13) V1D$=V1D$+"au moins un pion de l'adversaire."+chr$(13)+chr$(13) V1D$=V1D$+" Les noirs commencent. Si un joueur ne peut pas jouer, il passe"+chr$(13) V1D$=V1D$+"son tour. A la fin, le vainqueur est celui qui possède le plus de"+chr$(13) V1D$=V1D$+"pions. S'il reste des cases vides, elles comptent pour le vainqueur."+chr$(13) V1D$=V1D$+"Vous pouvez jouer à deux ou seul contre l'ordinateur. Si vous pensez"+chr$(13) V1D$=V1D$+"devoir passer votre tour, demandez conseil à l'ordinateur (Bouton Où)."+chr$(13)+chr$(13) V1D$=V1D$+" Le programme peut vous prodiguer des conseils en vous indiquant"+chr$(13) V1D$=V1D$+"toutes les cases où vous pouvez jouer (jaune + rose) et les cases où"+chr$(13) V1D$=V1D$+"il vous conseille préférentiellement de jouer (rose). (Mais si vous"+chr$(13) V1D$=V1D$+"trouvez que les conseils de l'ordinateur sont mauvais, l'auteur du"+chr$(13) V1D$=V1D$+"programme décline toute responsabilité...)"+chr$(13) message V1D$ end_sub
sub auto() : rem Intelligence Artificielle de l`ordinateur ==================== dim_local v1au% , v2au% , v3au% , v4au% hide 48 if show(60)=1 caption 0,TP$+string$(40," ")+"L'ORDINATEUR RÉFLÉCHIT..." midi_instrument 115 midi_play 43,10 pause 1000 if CF%<>CJ% v4au%=CJ% if CJ%=0 v4au%=2 end_if ou2(2) if count(200)>0 v1au%=(int(rnd(count(200)/2))+1)*2-1 end_if if v1au%>0 v2au%=val(item_read$(200,v1au%)) v3au%=val(item_read$(200,v1au%+1)) EI%=v2au%*10+v3au%+90 NQ%=EI% CC%(v2au%,v3au%)=v4au% quel(v2au%,v3au%) midi_instrument 113 midi_play 80,10 for v1au%=1 to 3 color EI%,255,100,255 pause 200 midi_play 80,10 color EI%,180,255,255 pause 200 next v1au% dessin(1,v4au%) CC%(v2au%,v3au%)=3-v4au% pivot() feux() calcul() if caption$(56)="1" inactive 38 end_if midi_play 40,10 else width 0,1160 show 180 feux() show 48 end_if fini(1) for v1au%=1 to 8 for v2au%=1 to 8 on_click 100+(v1au%-1)*10+v2au%,clic next v2au% next v1au% caption 0,TP$ end_if end_if end_sub
sub calcul() : rem Calcul du nombre de pions de chacun ======================== dim_local v1ca% , v2ca% TB%=0 : TN%=0 for v1ca%=1 to 8 for v2ca%=1 to 8 if CC%(v1ca%,v2ca%)=1 TB%=TB%+1 end_if if CC%(v1ca%,v2ca%)=2 TN%=TN%+1 end_if next v2ca% next v1ca% caption 44,TN% caption 45,TB% end_sub
sub choix() : rem Choix du nombre de joueurs biologiques ====================== if val(caption$(56))=1 caption 56,"2" hide 60 hide 61 active 18 active 38 hide 62 hide 63 CJ%=0 color 60,0,0,0 font_color 60,0,255,255 caption 60,"Vous jouez Noirs" else caption 56,"1" show 60 show 61 inactive 38 if CF%=1 feux() end_if end_if end_sub
clac: : rem Redirection de tous les on-click à part ceux de la grille ========= select number_click case 18 : ou() case 38 : feux() case 50 : aide() case 52 : new() case 54 : quitter() case 56 : choix() case 60 : couleur() case 62 : commencer() case 180 : fini(2) case 182 : fini(2) end_select return
clic: : rem Clic sur une cellule de la grille ================================= NQ%=number_click inactive 18 inactive 52 inactive 56 caption 90,"" if caption$(56)="1" inactive 60 end_if if CC%(int((NQ%-100)/10)+1,NQ%-(int(NQ%/10)*10))=0 hide 180 V1M%=int((NQ%-100)/10)+1 V2M%=NQ%-(int(NQ%/10)*10) quel(V1M%,V2M%) if JP%=1 2d_target_is NQ% 2d_pen_color 0,0,0 midi_instrument 120 if CF%=1 2d_fill_color 255,255,255 CC%(int((NQ%-100)/10)+1,NQ%-(int(NQ%/10)*10))=1 midi_play 70,10 else 2d_fill_color 0,0,0 CC%(int((NQ%-100)/10)+1,NQ%-(int(NQ%/10)*10))=2 midi_play 60,10 end_if 2d_circle 39,39,35 pivot() feux() calcul() if show(60)=1 for V1M%=1 to 8 for V2M%=1 to 8 off_click 100+(V1M%-1)*10+V2M% next V2M% next V1M% end_if fini(1) pause 400 auto() else beep caption 90,"Bip = veut dire que vous ne pouvez pas jouer à cet endroit" end_if else beep caption 90,"Bip = veut dire que vous ne pouvez pas jouer à cet endroit" end_if active 18 active 52 return
sub commencer() : rem L`ordinateur commence le jeu ============================ hide 62 hide 63 inactive 18 inactive 52 inactive 56 if caption$(56)="1" inactive 60 end_if auto() active 18 active 52 end_sub
sub couleur() : rem Le joueur seul joue les Noirs ou les Blancs =============== if CJ%=0 CJ%=1 color 60,255,255,255 font_color 60,0,0,255 caption 60,"Vous jouez Blancs" show 62 show 63 inactive 18 else CJ%=0 color 60,0,0,0 font_color 60,0,255,255 caption 60,"Vous jouez Noirs" hide 62 hide 63 active 18 end_if end_sub
sub dessin(c1%,c2%) : rem Dessine un pion à l`endroit indiqué ================= rem c1% = Couleur 1 rem c2% = Couleur 2 2d_target_is EI% 2d_fill_color 255,255,255 if c1%=c2% 2d_fill_color 0,0,0 end_if 2d_pen_color 0,0,0 2d_circle 39,39,35 end_sub
sub feux() : rem Changement de couleur des feux bicolors ====================== CF%=1-CF% if CF%=1 color 34,0,255,0 color 36,255,0,0 left 47,60 top 47,86 caption 47," Aux"+chr$(13)+"Blancs" if caption$(56)="1" if number_click=38 inactive 18 inactive 52 auto() active 18 active 52 end_if end_if else color 34,255,0,0 color 36,0,255,0 left 47,65 top 47,138 caption 47," Aux"+chr$(13)+"Noirs" end_if end_sub
sub fin(cc%) : rem Déclaration de fin de jeu ================================== dim_local v1fi% , v2fi% , v3fi% rem cc% = Combien de Cases sont remplies de jetons width 0,1160 show 185 inactive 38 hide 48 hide 180 v1fi%=val(caption$(44)) v2fi%=val(caption$(45)) if cc%<64 v3fi%=64-cc% end_if if v1fi%>v2fi% caption 187,"Les Noirs"+chr$(13)+"ont gagné" caption 189,"par "+str$(v1fi%+v3fi%)+" à "+str$(v2fi%) end_if if v2fi%>v1fi% caption 187,"Les Blancs"+chr$(13)+"ont gagné" caption 189,"par "+str$(v2fi%+v3fi%)+" à "+str$(v1fi%) end_if if v2fi%=v1fi% caption 187,"Égalité"+chr$(13)+"Personne"+chr$(13)+"n'a gagné" caption 189,"( "+str$(v1fi%)+" à "+str$(v2fi%)+" )" end_if for v1fi%=1 to 8 for v2fi%=1 to 8 off_click 100+(v1fi%-1)*10+v2fi% next v2fi% next v1fi% show 195 end_sub
sub fini(qa%) : rem Détection comme quoi le jeu est fini ========================= dim_local v1fn% , v2fn% dim_local ncfn% : rem Nombre de Cases remplies rem qa% = Quel Appel for v1fn%=1 to 8 for v2fn%=1 to 8 if CC%(v1fn%,v2fn%)>0 ncfn%=ncfn%+1 end_if next v2fn% next v1fn% if ncfn%=64 or qa%=2 fin(ncfn%) end_if end_sub
sub new() : rem Recommencer un nouveau jeu ==================================== dim_local v1ne% , v2ne% , v3ne% v1ne%=message_confirmation_yes_no("Recommencer un nouveau jeu ?") if v1ne%=1 for v2ne%=1 to 8 for v3ne%=1 to 8 2d_target_is 100+(v2ne%-1)*10+v3ne% 2d_pen_color 180,255,255 2d_fill_color 180,255,255 2d_circle 39,39,35 CC%(v2ne%,v3ne%)=0 next v3ne% next v2ne% for v2ne%=0 to 1 for v3ne%=0 to 1 EI%=134+v2ne%*10+v3ne% dessin(v2ne%,v3ne%) next v3ne% next v2ne% CC%(5,4)=1 : CC%(5,5)=2 : CC%(4,4)=2 : CC%(4,5)=1 calcul() CF%=1 feux() if caption$(56)="2" active 38 end_if active 56 active 60 hide 48 hide 185 hide 195 width 0,1000 CJ%=1 couleur() for v1ne%=1 to 8 for v2ne%=1 to 8 on_click 100+(v1ne%-1)*10+v2ne%,clic next v2ne% next v1ne% end_if end_sub
sub ou() : rem Où placer les pions ============================================ dim_local v1ou% , v2ou% IO%=1-IO% if IO%=1 for v1ou%=20 to 28 step 2 show v1ou% next v1ou% show 21 caption 26+(1-CF%)*2,"" caption 18,"Jouer" inactive 38 inactive 52 inactive 56 if caption$(56)="1" inactive 60 end_if ou2(1) if count(200)=0 if show(195)=0 show 180 show 48 end_if width 0,1160 end_if else for v1ou%=20 to 28 step 2 hide v1ou% next v1ou% hide 21 caption 18,"Où" for v1ou%=1 to 8 for v2ou%=1 to 8 on_click 100+(v1ou%-1)*10+v2ou%,clic if GA%(v1ou%,v2ou%)=1 color 100+(v1ou%-1)*10+v2ou%,180,255,255 end_if next v2ou% next v1ou% v1ou%=val(caption$(44)) v2ou%=val(caption$(45)) if v1ou%=2 and v1ou%=2 active 56 if caption$(56)="1" active 60 end_if end_if if caption$(56)="2" if show(195)=0 active 38 end_if end_if if count(200)=0 if show(195)=0 active 38 end_if end_if active 52 end_if end_sub
sub ou2(qo%) : rem Suite de chercher où mettre les pions ========================= dim_local v1o2% , v2o2% , v3o2% , v4o2% rem qo% = Quelle origine for v3o2%=1 to 8 for v4o2%=1 to 8 off_click 100+(v3o2%-1)*10+v4o2% GA%(v3o2%,v4o2%)=0 next v4o2% next v3o2% NC%=0 for v3o2%=1 to 8 for v4o2%=1 to 8 if CC%(v3o2%,v4o2%)=0 quel(v3o2%,v4o2%) if JP%=1 GA%(v3o2%,v4o2%)=1 NC%=NC%+1 if qo%=1 color 100+(v3o2%-1)*10+v4o2%,255,255,0 end_if end_if end_if next v4o2% next v3o2% caption 26+CF%*2,NC% v1o2%=0 clear 200 for v2o2%=5 to 0 step -1 for v3o2%=1 to 8 for v4o2%=1 to 8 if (GA%(v3o2%,v4o2%)=1) and (GR%(v3o2%,v4o2%)=v2o2%) if qo%=1 color 100+(v3o2%-1)*10+v4o2%,255,200,255 end_if item_add 200,v3o2% item_add 200,v4o2% v1o2%=1 end_if next v4o2% next v3o2% if v1o2%=1 exit_for end_if next v2o2% end_sub
sub pivot() : rem Faire pivoter les pions ===================================== dim_local v1pi% , v2pi% , v3pi% , v4pi% v3pi%=int((NQ%-100)/10)+1 v4pi%=NQ%-(int(NQ%/10)*10) v1pi%=CC%(v3pi%,v4pi%) if VL%(1)>0 : rem Horizontale Est for v2pi%=v4pi%+1 to v4pi%+VL%(1) 2d_target_is 100+(v3pi%-1)*10+v2pi% 2d_pen_color 0,0,0 2d_fill_color (2-v1pi%)*255,(2-v1pi%)*255,(2-v1pi%)*255 wait 100 2d_circle 39,39,35 CC%(v3pi%,v2pi%)=v1pi% next v2pi% end_if if VL%(2)>0 : rem Oblique Nord-Est for v2pi%=v3pi%+1 to v3pi%+VL%(2) 2d_target_is 100+(v2pi%-1)*10+v4pi%+v2pi%-v3pi% 2d_pen_color 0,0,0 2d_fill_color (2-v1pi%)*255,(2-v1pi%)*255,(2-v1pi%)*255 wait 100 2d_circle 39,39,35 CC%(v2pi%,v4pi%+v2pi%-v3pi%)=v1pi% next v2pi% end_if if VL%(3)>0 : rem Verticale Nord for v2pi%=v3pi%+1 to v3pi%+VL%(3) 2d_target_is 100+(v2pi%-1)*10+v4pi% 2d_pen_color 0,0,0 2d_fill_color (2-v1pi%)*255,(2-v1pi%)*255,(2-v1pi%)*255 wait 100 2d_circle 39,39,35 CC%(v2pi%,v4pi%)=v1pi% next v2pi% end_if if VL%(4)>0 : rem Oblique Nord-Ouest for v2pi%=v3pi%+1 to v3pi%+VL%(4) 2d_target_is 100+(v2pi%-1)*10+v4pi%-v2pi%+v3pi% 2d_pen_color 0,0,0 2d_fill_color (2-v1pi%)*255,(2-v1pi%)*255,(2-v1pi%)*255 wait 100 2d_circle 39,39,35 CC%(v2pi%,v4pi%-v2pi%+v3pi%)=v1pi% next v2pi% end_if if VL%(5)>0 : rem Horizontale Ouest for v2pi%=v4pi%-1 to v4pi%-VL%(5) step -1 2d_target_is 100+(v3pi%-1)*10+v2pi% 2d_pen_color 0,0,0 2d_fill_color (2-v1pi%)*255,(2-v1pi%)*255,(2-v1pi%)*255 wait 100 2d_circle 39,39,35 CC%(v3pi%,v2pi%)=v1pi% next v2pi% end_if if VL%(6)>0 : rem Oblique Sud-Ouest for v2pi%=v3pi%-1 to v3pi%-VL%(6) step -1 2d_target_is 100+(v2pi%-1)*10+v4pi%+v2pi%-v3pi% 2d_pen_color 0,0,0 2d_fill_color (2-v1pi%)*255,(2-v1pi%)*255,(2-v1pi%)*255 wait 100 2d_circle 39,39,35 CC%(v2pi%,v4pi%+v2pi%-v3pi%)=v1pi% next v2pi% end_if if VL%(7)>0 : rem Verticale Sud for v2pi%=v3pi%-1 to v3pi%-VL%(7) step -1 2d_target_is 100+(v2pi%-1)*10+v4pi% 2d_pen_color 0,0,0 2d_fill_color (2-v1pi%)*255,(2-v1pi%)*255,(2-v1pi%)*255 wait 100 2d_circle 39,39,35 CC%(v2pi%,v4pi%)=v1pi% next v2pi% end_if if VL%(8)>0 : rem Oblique Sud-Est for v2pi%=v3pi%-1 to v3pi%-VL%(8) step -1 2d_target_is 100+(v2pi%-1)*10+v4pi%-v2pi%+v3pi% 2d_pen_color 0,0,0 2d_fill_color (2-v1pi%)*255,(2-v1pi%)*255,(2-v1pi%)*255 wait 100 2d_circle 39,39,35 CC%(v2pi%,v4pi%-v2pi%+v3pi%)=v1pi% next v2pi% end_if end_sub
sub quel(qa%,qo%) : rem Quelle réponse donner au clic ========================= rem qa% = Quelle Abscisse rem qo% = Quelle Ordonnée dim_local v1ql% , v2ql% v1ql%=2-CF% for v2ql%=1 to 8 VL%(v2ql%)=0 next v2ql% for v2ql%=qo%+1 to qo%+8 : rem Horizontale Est if v2ql%<10 if CC%(qa%,v2ql%)=3-v1ql% VL%(1)=VL%(1)+1 else if CC%(qa%,v2ql%)=0 VL%(1)=VL%(1)*0 end_if exit_for end_if end_if next v2ql% for v2ql%=qa%+1 to qa%+8 : rem Oblique Nord-Est if (v2ql%<10) and ((qo%+v2ql%-qa%)<10) if CC%(v2ql%,qo%+v2ql%-qa%)=3-v1ql% VL%(2)=VL%(2)+1 else if CC%(v2ql%,qo%+v2ql%-qa%)=0 VL%(2)=VL%(2)*0 end_if exit_for end_if end_if next v2ql% for v2ql%=qa%+1 to qa%+8 : rem Verticale Nord if v2ql%<10 if CC%(v2ql%,qo%)=3-v1ql% VL%(3)=VL%(3)+1 else if CC%(v2ql%,qo%)=0 VL%(3)=VL%(3)*0 end_if exit_for end_if end_if next v2ql% for v2ql%=qa%+1 to qa%+8 : rem Oblique Nord-Ouest if (v2ql%<10) and ((qo%-v2ql%+qa%)>-1) if CC%(v2ql%,qo%-v2ql%+qa%)=3-v1ql% VL%(4)=VL%(4)+1 else if CC%(v2ql%,qo%-v2ql%+qa%)=0 VL%(4)=VL%(4)*0 end_if exit_for end_if end_if next v2ql% for v2ql%=qo%-1 to qo%-8 step -1 : rem Horizontale Ouest if v2ql%>-1 if CC%(qa%,v2ql%)=3-v1ql% VL%(5)=VL%(5)+1 else if CC%(qa%,v2ql%)=0 VL%(5)=VL%(5)*0 end_if exit_for end_if end_if next v2ql% for v2ql%=qa%-1 to qa%-8 step -1 : rem Oblique Sud-Ouest if (v2ql%>-1) and ((qo%+v2ql%-qa%)>-1) if CC%(v2ql%,qo%+v2ql%-qa%)=3-v1ql% VL%(6)=VL%(6)+1 else if CC%(v2ql%,qo%+v2ql%-qa%)=0 VL%(6)=VL%(6)*0 end_if exit_for end_if end_if next v2ql% for v2ql%=qa%-1 to qa%-8 step -1 : rem Verticale Sud if v2ql%>-1 if CC%(v2ql%,qo%)=3-v1ql% VL%(7)=VL%(7)+1 else if CC%(v2ql%,qo%)=0 VL%(7)=VL%(7)*0 end_if exit_for end_if end_if next v2ql% for v2ql%=qa%-1 to qa%-8 step -1 : rem Oblique Sud-Est if (v2ql%>-1) and ((qo%-v2ql%+qa%)<10) if CC%(v2ql%,qo%-v2ql%+qa%)=3-v1ql% VL%(8)=VL%(8)+1 else if CC%(v2ql%,qo%-v2ql%+qa%)=0 VL%(8)=VL%(8)*0 end_if exit_for end_if end_if next v2ql% JP%=0 for v2ql%=1 to 8 if VL%(v2ql%)>0 JP%=1 end_if next v2ql% end_sub
sub quitter() : rem Sortir du programme ======================================= dim_local v1qu% v1qu%=message_confirmation_yes_no("Quoi, vous voulez réellement quitter ce superbe jeu ?") if v1qu%=1 midi_off terminate end_if end_sub
Amusez-vous bien ! | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Othello Jeu 18 Mai 2017 - 8:42 | |
| Je n'ai pas pu résister à l'envie de tester ton nouveau jeu. Il est super bien fait comme d'hab. Bravo. L'ordi a gagné une fois, j'ai gagné la partie suivante donc c'est bien équilibré (pas trop simple et pas trop dur non plus donc amusant). Visuellement c'est sobre mais joli mais c'est assez normal pour un Othello d'être assez sobre, c'est l'esprit du jeu Bref un excellent jeu pour notre ludotheque. Merci jjn4. As-tu déjà l'idée du prochain jeu ? Je me demande ce que ça donnerait si tu reprenait le Stratego sauce jjn4. Ca prendrait sans doute un peu de temps à équilibrer mais je pense que ça pourrait valoir le coup d'avoir ta version car tu as de super idées. | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Othello Jeu 18 Mai 2017 - 9:34 | |
| Excellent ! Il m'a fallu 5 parties avant d'en gagner une. Comme dit Jicehel, on a un bon équilibre de difficulté. L'aide de l'ordinateur est très utile pour comprendre comment ça marche (je ne connaissais pas ce jeu). Beau travail. Bon tu n'as pas tout le mérite à toi tout seul, vu le numéro de la version "Ver-130514.2.0". Je pense que c'est ton ancêtre "JJN premier" qui l'a commencé et ensuite repris par JJN2, JJN3 et que tu n'as simplement qu'actualiser le code. Celui-là je l'ai intégrer dans ma biblio "Jeux fait par les Panoramiciens". A+ | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| | | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Jeu 18 Mai 2017 - 18:34 | |
| Merci, merci Non pour le jeu suivant, qui n'est pas stratego. C'est un un jeu que je ne connais pas vraiment et sur lequel j'ai vu que pas mal de gens ont travaillé. Mais je ne dis pas sur quoi je travaille maintenant... Je garde ma part de mystère, eh, eh... @Jean Claude: il y a mieux : durant les essais de jeux que j'ai faits au moment où je le débuggais, je me souviens qu'une fois (une seule), je l'ai battu par 64 à 0 ! Là, il est peut-être un peu difficile de faire mieux... Mais vous pouvez au moins essayer d'en faire autant ! C'est vrai que ce jeu est assez remarquable car il est très imprévisible. Avant la fin, il est difficile de faire des pronostics, car tout peut se retourner très vite... | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| | | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| | | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Ven 19 Mai 2017 - 13:56 | |
| Des preuves, réclame Jean Claude ! Ah ! Il est vrai qu'en ces temps de langue de bois et de manipulation systématique permanente, à commencer par la publicité qui nous ment sans interruption, on peut avoir toujours des doutes... Mais quand c'est arrivé, j'étais en train de débugger le programme et le but n'était pas de faire des copies d'écran de mes performances... Alors, il faudra se passer des preuves et en revenir aux bonnes vieilles formules d'antan : faire confiance... Aaaaah ! va s'écrier Jean Claude, mais ça n'existe plus, ce truc-là ! En tout cas, progresse et tu vas y parvenir, sûr ! | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Othello Ven 19 Mai 2017 - 16:10 | |
| J'ai encore progressé: 50 à 14 , c'est un point de plus que précédemment. Te faire confiance Et bien je dis que l'on peut, car c'est effectivement possible de gagner 64 à 0. Voici la preuve: En tous cas, ce jeu est addictif. | |
| | | Jicehel
Nombre de messages : 5947 Age : 52 Localisation : 77500 Date d'inscription : 18/04/2011
| Sujet: Re: Othello Ven 19 Mai 2017 - 17:29 | |
| Moi aussi j'ai réussi à avoir tout en noir en fait on peut le piéger (parfois) car il ne peut jouer qu'à un endroit et nous après, on peut le reconvertir (Mais honnêtement, je n'y suis arrivé qu'une fois ....) | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Ven 19 Mai 2017 - 19:29 | |
| | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Othello Ven 19 Mai 2017 - 20:06 | |
| | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| | | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Othello Sam 20 Mai 2017 - 11:31 | |
| | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Othello Sam 20 Mai 2017 - 12:00 | |
| | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Othello Sam 20 Mai 2017 - 12:09 | |
| J'ai oublié de préciser que c'était le premier test sur le jeu ! Il faut être un peu stratégique et comme dit jjn4, l'ordinateur est quand même 'gentil' avec nous... En tout cas Merci encore à jjn4 pour le nouveau jeu ! | |
| | | jjn4
Nombre de messages : 2747 Date d'inscription : 13/09/2009
| Sujet: +++ Sam 20 Mai 2017 - 14:35 | |
| | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Othello Sam 20 Mai 2017 - 17:09 | |
| - JJN4 a écrit:
- Eeeeh, addictif, effectivement !
Ben... personnellement c'est le cas ! Mais ce n'est au point de 2048 fait en Panoramic par Minibug dont se demande où il est passé. Y en a qui disent que c'est Laurent, ben... je leurs fait confiance... A+
Dernière édition par Jean Claude le Sam 20 Mai 2017 - 19:04, édité 1 fois | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Othello Sam 20 Mai 2017 - 18:09 | |
| | |
| | | Jean Claude
Nombre de messages : 5950 Age : 70 Localisation : 83 Var Date d'inscription : 07/05/2009
| Sujet: Re: Othello Sam 20 Mai 2017 - 19:08 | |
| Ben, c'est pas mal Papydall. Mais le but est maintenant de battre Laurent sans tuer les blancs. Et ça, ça vas pas être facile de chez facile ! | |
| | | papydall
Nombre de messages : 7017 Age : 74 Localisation : Moknine (Tunisie) Entre la chaise et le clavier Date d'inscription : 03/03/2012
| Sujet: Re: Othello Dim 21 Mai 2017 - 1:09 | |
| Je ne cherche pas à être meilleur que les autres. J’aspire à être meilleur que moi-même ! | |
| | | Minibug
Nombre de messages : 4570 Age : 58 Localisation : Vienne (86) Date d'inscription : 09/02/2012
| Sujet: Re: Othello Dim 21 Mai 2017 - 10:04 | |
| Voilà une parole très sage Papydall. A méditer... | |
| | | Contenu sponsorisé
| Sujet: Re: Othello | |
| |
| | | | Othello | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |