MO5 Kandy Krush Java
Modérateurs : Carl, Papy.G, fneck
MO5 Kandy Krush Java
Nouveau programme pour MO5 à tester :
Il vient de sortir, et il n'est pas encore testé. Si vous ne trouvez pas trop de bugs j'en ferai des versions disquette et carte sd et je l'ajouterai au site dcmoto.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
__sam__
- Messages : 7547
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: MO5 Kandy Krush Java
L'animation est très bien faite. Par contre au bout d'un moment j'ai beau cliquer entre deux bille horizontales, mais elles ne s'échangent plus. Comme je ne connais pas le jeu d'origine je ne sais pas si c'est un comportement normal, mais au final le jeu semble bloqué puisque je n'arrive plus à permuter aucune bille.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: MO5 Kandy Krush Java
Non, ce n'est pas normal. Je n'ai jamais eu ce cas dans mes tests. Et surtout je ne sais pas comment faire pour le reproduire et l'analyser.
[Edit]
La partie se joue en 32 coups. Après le 32e coup on ne peut plus cliquer, c'est peut-être ça le problème ?
Il faut appuyer sur une touche pour commencer une nouvelle partie, c'est écrit en bas à gauche de l'écran.
Dans la prochaine version j'ajouterai un message bien visible pour indiquer la fin de partie.
[/Edit]
Le programme a été écrit très vite (en deux jours), il est encore très brouillon et pas du tout optimisé, mais pour un jeu de réflexion la vitesse n'est pas primordiale. Voici le code :
Remarques :
1) Ce code contient des instructions invalides comme LSRD ou LSLD, mais l'assembleur A09 les décompose en instructions 6809 valides.
2) La version diffusée utilise le processeur 6309 en mode émulation, mais c'est totalement transparent pour l'utilisateur.
[Edit]
La partie se joue en 32 coups. Après le 32e coup on ne peut plus cliquer, c'est peut-être ça le problème ?
Il faut appuyer sur une touche pour commencer une nouvelle partie, c'est écrit en bas à gauche de l'écran.
Dans la prochaine version j'ajouterai un message bien visible pour indiquer la fin de partie.
[/Edit]
Le programme a été écrit très vite (en deux jours), il est encore très brouillon et pas du tout optimisé, mais pour un jeu de réflexion la vitesse n'est pas primordiale. Voici le code :
Code : Tout sélectionner
/**************************************************\
* MO5 KANDY KRUSH JAVA *
* (c) 2016 - Daniel Coulom *
* http://dcmoto.free.fr/ *
* http://forum.system-cfg.com/ *
*--------------------------------------------------*
* Ce code est distribue gratuitement dans l'espoir *
* qu'il sera utile, mais sans aucune garantie et *
* sans engager la responsabilité de l'auteur. *
* Vous pouvez l' utiliser, le modifier et le *
* diffuser librement, en conservant cette licence *
* et les références de l'auteur dans toutes les *
* copies. L'exploitation commerciale est interdite.*
\**************************************************/
/**************************************************\
* Version 2016.09.23 *
\**************************************************/
* Historique
* 2016.09.23 Version originale
*===========================================
* INITIALISATIONS
*===========================================
ORG $9000
INIT
LDX #SCRINIT
LBSR CHAINE
LBSR BITMAP
LBSR COULINI determination des couleurs
LDB #$37
INIT3
LBSR PDISP affichage des pastilles
DECB
BGE INIT3
LBSR PALIGN recherche alignements
*===========================================
* DEROULEMENT DU JEU
*===========================================
JEU
LBSR DSCORE affichage du score
SWI contact crayon optique
FCB $16
BCC JEU attente appui
SWI coordonnees crayon optique
FCB $18
* test de la colonne pointee
TFR X,D
LSRD
LSRD
LSRD
TFR D,X
CMPX #$0011
LBLT ERROR trop a gauche
CMPX #$0026
LBGT ERROR trop a droite
* test de la ligne pointee
TFR Y,D
LSRD
LSRD
LSRD
TFR D,Y
CMPY #$0005
BLT ERROR trop haut
CMPY #$0017
BGT ERROR trop bas
* test pointage centre pastille
TFR X,D
SUBD #$0011 centre premiere pastille
LBSR MODULO
PSHS B
TFR Y,D
SUBD #$0005 centre premiere pastille
LBSR MODULO
PULS A
ADDB -1,S
BEQ ERROR
* permutation horizontale
HORIZ
TFR Y,D
SUBD #$0005 centre premiere pastille
BSR MODULO
BNE VERT
PSHS Y,X
LBSR PINVH
BSR PALIGN recherche alignements
PULS X,Y
BCS HORIZ9 pas d'alignement
LDD COUPS
ADDD #$0001
STD COUPS
CMPD #$0020 fin de partie apres 32 coups
BEQ FIN
BRA JEU suite du jeu
HORIZ9
LBSR PINVH retablissement position
BRA ERROR
* permutation verticale
VERT
TFR X,D
SUBD #$0011 centre premiere pastille
BSR MODULO
BNE ERROR
PSHS Y,X
LBSR PINVV
BSR PALIGN recherche alignement
PULS X,Y
BCS VERT9 pas d'alignement
LDD COUPS
ADDD #$0001
STD COUPS
CMPD #$0020
BEQ FIN
LBRA JEU suite du jeu
VERT9
LBSR PINVV retablissement position
BRA ERROR
*===========================================
* ERREUR DE POINTAGE
*===========================================
ERROR
LDX #$0800 hauteur note
LDA #$10 longueur note
LBSR BUZZ
LBRA JEU
*===========================================
* FIN DE PARTIE
*===========================================
FIN
LDD SCORE
CMPD MAX
BLT FIN1
STD MAX
FIN1
LBSR DSCORE
LDX #APPUI
LBSR CHAINE
FIN2
SWI lecture rapide clavier
FCB $0C
BCC FIN2
LDD #$0000
STD COUPS
STD SCORE
LBRA INIT
*===========================================
* CALCUL DE D MODULO 3
* RESULTAT DANS D
*===========================================
MODULO
SUBD #$03
BGE MODULO
ADDD #$03
RTS
*===========================================
* RECHERCHE DES ALIGNEMENTS
* CARRY SET SI AUCUN ALIGNEMENT TROUVE
*===========================================
PALIGN
CLRA initialisation compteur
PSHS A empilage compteur alignements
PALIGN1
* alignement horizontaux
CLRB
HALIGN1
LDX #PCOLOR table des couleurs
LDA B,X couleur pastille B
LEAX 1,X
CMPA B,X couleur pastille B+1
BNE HALIGN2
LEAX 1,X
CMPA B,X couleur pastille B+2
BEQ HALIGN4
HALIGN2
INCB
CMPB #$06
BEQ HALIGN3
CMPB #$0E
BEQ HALIGN3
CMPB #$16
BEQ HALIGN3
CMPB #$1E
BEQ HALIGN3
CMPB #$26
BEQ HALIGN3
CMPB #$2E
BEQ HALIGN3
CMPB #$36
BEQ VALIGN
BRA HALIGN1
HALIGN3
ADDB #$02
BRA HALIGN1
HALIGN4
LBSR SUPPR
INCB
LBSR SUPPR
INCB
LBSR SUPPR
INC ,S
BRA PALIGN1
*alignement verticaux
VALIGN
CLRB
VALIGN1
LDX #PCOLOR table des couleurs
LDA B,X couleur pastille B
LEAX 8,X
CMPA B,X couleur pastille B+8
BNE VALIGN2
LEAX 8,X
CMPA B,X couleur pastille B+16
BEQ VALIGN4
VALIGN2
INCB
CMPB #$28
BEQ VALIGN8
BRA VALIGN1
VALIGN4
ADDB #$10
LBSR SUPPR
LBSR SUPPR
LBSR SUPPR
INC ,S
BRA PALIGN1
VALIGN8
ANDCC #$FE clear carry
PULS A
CMPA #$00
BNE VALIGN9
ORCC #$01 set carry
VALIGN9
RTS
*===========================================
* DETERMINATION DES COULEURS INITIALES
*===========================================
COULINI
LDX #PCOLOR table des couleurs
LDB #$37 numero derniere pastille
COULINI1
LDA #$01
STA B,X
DECB
BGE COULINI1
RTS
*===========================================
* CALCUL DU NUMERO DE PASTILLE B
* FONCTION DE LIGNE ET COLONNE POINTEES
*===========================================
CALNUM
* numero dans la ligne = Y/3
TFR Y,D ligne pointee
SUBD #$0005 centre premiere pastille
CALNUM1
INCA
SUBB #$03
BGE CALNUM1
DECA
* multiplication par 8
LSLA
LSLA
LSLA
PSHS A empilage resultat
* numero dans la ligne = X/3
TFR X,D colonne pointee
SUBD #$0011 centre premiere pastille
CALNUM2
INCA
SUBB #$03
BGE CALNUM2
DECA
* ajout du nombre de pastilles lignes precedentes
ADDA ,S
TFR A,B
PULS A
RTS
*===========================================
* INVERSION DE DEUX PASTILLES B ET B+1
*===========================================
PINVH
BSR CALNUM calcul du numero B
LDX #PCOLOR table des couleurs
LDA B,X couleur premiere pastille
PSH A
INCB
LDA B,X couleur deuxieme pastille
DECB
STA B,X deuxieme dans premiere
PULS A
INCB
STA B,X premiere dans deuxieme
LBSR PDISP affichage deuxieme pastille
DECB
LBSR PDISP affichage premiere pastille
LDX #$0080 hauteur note
LDA #$08 longueur note
BSR BUZZ
RTS
*===========================================
* INVERSION DE DEUX PASTILLES B ET B+8
*===========================================
PINVV
BSR CALNUM calcul du numero B
LDX #PCOLOR table des couleurs
LDA B,X couleur premiere pastille
PSH A
ADDB #$08
LDA B,X couleur deuxieme pastille
SUBB #$08
STA B,X deuxieme dans premiere
PULS A
ADDB #$08
STA B,X premiere dans deuxieme
LBSR PDISP affichage deuxieme pastille
SUBB #$08
LBSR PDISP affichage premiere pastille
LDX #$0080 hauteur note
LDA #$08 longueur note
BSR BUZZ
RTS
*===========================================
* TEMPORISATION EN FONCTION DE X
*===========================================
TEMPO
PSHS X
TEMPO1
LEAX -1,X
BNE TEMPO1
PULS X,PC
*===========================================
* EMISSION SIGNAL SONORE
* TEMPO DANS X
* DUREE DANS A
*===========================================
BUZZ
* signal sonore
ORCC #$50 masque les interruptions
PSHS A compteur duree note
LDA $A7C1 registre pour le buzzer
BUZZ1
ORA #$01
STA $A7C1 buzzer a un
BSR TEMPO temporisation
ANDA #$FE
STA $A7C1 buzzer a zero
BSR TEMPO temporisation
DEC ,S
BNE BUZZ1
PULS A
ANDCC #$AF restaure les interruptions
RTS
*===========================================
* SUPPRESSION PASTILLE B ET DESCENTE COLONNE
*===========================================
SUPPR
PSHS B
SUPPR1
SUBB #$08 pastille au-dessus
BLS SUPPR2 haut de colonne depasse
BSR SCROLL scroll pastille
BRA SUPPR1 pastille suivante
SUPPR2
LDA $2031 valeur aleatoire
ANDA #$07 valeur entre 0 et 7
INCA
CMPA #$04 couleur de fond
BNE SUPPR3
LDA #$05
SUPPR3
CMPA #$06
BLE SUPPR4
LDA #$01
SUPPR4
LDX #PCOLOR table des couleurs
ADDB #$08 premiere pastille colonne
STA B,X
LBSR PDISP affichage pastille
PULS B,PC
*===========================================
* SCROLL PASTILLE B
*===========================================
SCROLL
LDX #PADDR table des adresses
LEAX B,X pointeur dans la table
LEAX B,X pointeur dans la table
LDY ,X adresse pastille B
PSHS Y empilage adresse originale
LDA #$18 compteur de boucle
PSHS A empilage compteur
PSHS Y,X empilage pointeur et adresse
SCROLL1
PULS X,Y
LEAY $28,Y
STY ,X
PSHS Y,X
BSR PDISP
DEC 4,S
BNE SCROLL1
PULS X,Y
PULS A
PULS Y adresse originale
STY ,X restauration de l'adresse
LDX #PCOLOR table des couleurs
LDA B,X couleur pastille depart
LEAX 8,X
STA B,X couleur pastille arrivee
* signal sonore
LDX #$0040 hauteur note
LDA #$05 longueur note
LBSR BUZZ
* incrementation du score
PSHS B
LDD SCORE
ADDD #$0001
STD SCORE
PULS B
RTS
*===========================================
* AFFICHAGE DU SCORE
*===========================================
DSCORE
PSHS B
LDX #COUPS+2
LBSR CHAINE
LDD COUPS
JSR $D83E affichage registre D
LDX #SCORE+2
BSR CHAINE
LDD SCORE
JSR $D83E affichage registre D
LDX #BLANC
BSR CHAINE
LDX #MAX+2
BSR CHAINE
LDD MAX
JSR $D83E affichage registre D
PULS B,PC
*===========================================
* AFFICHAGE cOLONNE PASTILLE
*===========================================
CDISP
LDB #$18
CDISP1
LDA ,X+
STA ,Y
LEAY $28,Y
DECB
BNE CDISP1
LEAY -$3BF,Y
RTS
*===========================================
* AFFICHAGE DE LA PASTILLE B
*===========================================
PDISP
PSHS B empilage du numero de pastille
* couleur
LDA $A7C0
ANDA #$FE
STA $A7C0
LDX #PCOLOR
LDA B,X couleur pastille
LSLA
LSLA
LSLA
LSLA
ORA #$04 couleur de fond bleu
LDX #PADDR table des adresses
LSLB deplacement dans la table
LDY B,X adresse pastille B
PSHS Y empilage adresse
LDB #$18 nombre de lignes
PDISP0
STA 0,Y
STA 1,Y
STA 2,Y
LEAY $28,Y
DECB
BNE PDISP0
ORA #$07 couleur de fond blanc
LEAY -$27F,Y
LDB #$08
PDISP2
STA ,Y
LEAY $28,Y
DECB
BNE PDISP2
PULS Y
* forme
LDX #PGRAPH table de definition pastille
INC $A7C0 selection video forme
BSR CDISP affichage premiere colonne
BSR CDISP affichage deuxieme colonne
BSR CDISP affichage troisieme colonne
PULS B,PC
*===========================================
* AFFICHAGE CHAINE EN X TERMINEE PAR $04
*===========================================
CHAINE
LDB ,X+
CMPB #$04
BEQ CHAIN9
SWI affichage caractere
FCB $02
BRA CHAINE
CHAIN9
RTS
*===========================================
* AFFICHAGE BITMAP DU TITRE
*===========================================
BITMAP
LDY #$0000
LDX #TITRE
LDA $A7C0
ORA #$01
STA $A7C0
BIT1
LDD ,x++
STD ,Y++
CMPY #$03C0
BNE BIT1
RTS
*===========================================
* Compteur pour le score et les coups
*===========================================
SCORE
FDB $0000
FCB $1E,$0A,$0A,$0A,$0A,$0A
FCC 'Score : '
FCB $04
COUPS
FDB $0000
FCB $1E,$0A,$0A,$0A,$0A
FCC 'Coups : '
FCB $04
MAX
FDB $0000
FCB $1E,$0A,$0A,$0A,$0A,$0A,$0A,$0A
FCC 'Hiscore '
FCB $04
BLANC
FCC ' '
FCB $04
*===========================================
* Initialisation de l'ecran
*===========================================
SCRINIT
FCB $1B sequence d'echappement
FCB $47 forme blanc
FCB $1B sequence d'echappement
FCB $54 fond bleu
FCB $1B sequence d'echappement
FCB $64 cadre bleu
FCB $0C effacement ecran
FCB $14 extinction curseur
FCB $1E,$0A,$0A,$0A,$0A,$0A
FCC 'Patientez...'
FCB $0D,$0A,$0A,$0A,$0A,$0A
FCC 'Alignez 3 pions'
FCB $0D,$0A
FCC 'de m'
FDB $1643
FCC 'eme couleur'
FCB $0D,$0A
FCC 'horizontalement'
FCB $0D,$0A
FCC 'ou verticalement'
FCB $0D,$0A,$0A
FCC 'Pointez entre 2'
FCB $0D CR
FCB $0A linefeed
FCC 'pions pour les'
FCB $0D,$0A
FCC 'permuter.'
FCB $04
*===========================================
* Message appuyez sur une touche
*===========================================
APPUI
FCB $1E locate 0,0
FCB $0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A
FCB $0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A,$0A
FCC 'Appuyez sur une'
FCB $0D,$0A
FCC 'touche pour'
FCB $0D,$0A
FCC 'continuer...'
FCB $04
*===========================================
* Table des couleurs
*===========================================
PCOLOR
FCB $00,$00,$00,$00,$00,$00,$00,$00
FCB $00,$00,$00,$00,$00,$00,$00,$00
FCB $00,$00,$00,$00,$00,$00,$00,$00
FCB $00,$00,$00,$00,$00,$00,$00,$00
FCB $00,$00,$00,$00,$00,$00,$00,$00
FCB $00,$00,$00,$00,$00,$00,$00,$00
FCB $00,$00,$00,$00,$00,$00,$00,$00
*===========================================
* Position de la pastille dans l'ecran
*===========================================
PADDR
FDB $0510,$0513,$0516,$0519,$051C,$051F,$0522,$0525
FDB $08D0,$08D3,$08D6,$08D9,$08DC,$08DF,$08E2,$08E5
FDB $0C90,$0C93,$0C96,$0C99,$0C9C,$0C9F,$0CA2,$0CA5
FDB $1050,$1053,$1056,$1059,$105C,$105F,$1062,$1065
FDB $1410,$1413,$1416,$1419,$141C,$141F,$1422,$1425
FDB $17D0,$17D3,$17D6,$17D9,$17DC,$17DF,$17E2,$17E5
FDB $1B90,$1B93,$1B96,$1B99,$1B9C,$1B9F,$1BA2,$1BA5
*===========================================
* Graphisme de la pastille (par colonne)
*===========================================
PGRAPH
FCB $00,$00,$00,$00,$00,$03,$07,$07
FCB $0F,$0F,$0F,$0F,$0F,$0F,$07,$07
FCB $03,$00,$00,$00,$00,$00,$00,$00
FCB $00,$00,$00,$00,$FC,$FF,$FF,$FF
FCB $FF,$FF,$FE,$FE,$FC,$FC,$F1,$C3
FCB $FF,$FC,$00,$00,$00,$00,$00,$00
FCB $00,$00,$00,$00,$00,$00,$80,$80
FCB $C0,$C0,$C0,$C0,$C0,$C0,$80,$80
FCB $00,$00,$00,$00,$00,$00,$00,$00
*===========================================
* Graphisme du titre
*===========================================
TITRE
FCB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
FCB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
FCB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE,$00,$7F,$FC,$00,$FC,$00,$00
FCB $3F,$00,$00,$00,$7F,$FF,$FF,$E3,$F8,$3F,$FF,$FF,$FF,$FC,$7F,$FF
FCB $FE,$3F,$83,$FF,$FF,$FF,$FF,$8F,$FF,$FF,$F1,$FF,$FF,$FF,$FF,$FF
FCB $FE,$FF,$BF,$FB,$FE,$F3,$FF,$FF,$CF,$7F,$FF,$FF,$7F,$FF,$FF,$E3
FCB $F0,$7F,$FF,$FF,$FF,$FC,$7F,$FF,$FE,$3F,$07,$FF,$FF,$FF,$FF,$8F
FCB $FF,$FF,$F1,$FF,$FF,$FF,$FF,$FF,$FE,$FF,$BF,$FB,$FE,$EF,$FF,$FF
FCB $F7,$7F,$FF,$FF,$7F,$FF,$FF,$E3,$E0,$FF,$FF,$FF,$FF,$FC,$7F,$FF
FCB $FE,$3E,$0F,$FF,$FF,$FF,$FF,$8F,$FF,$FF,$F1,$FF,$FF,$FF,$FF,$FF
FCB $FE,$F7,$DF,$F7,$DE,$EF,$FF,$FF,$F7,$7F,$FF,$FF,$7F,$FF,$FF,$E3
FCB $C1,$FF,$FF,$FF,$FF,$FC,$7F,$FF,$FE,$3C,$1F,$FF,$FF,$FF,$FF,$8F
FCB $FF,$FF,$F1,$FF,$FF,$FF,$FF,$FF,$FE,$F3,$DF,$F7,$9E,$DF,$FF,$FF
FCB $FB,$78,$00,$00,$7F,$FF,$FF,$E3,$83,$F8,$1F,$10,$7F,$00,$63,$E3
FCB $FE,$38,$3E,$02,$3E,$3C,$07,$88,$3F,$FF,$F1,$F0,$38,$FC,$70,$3F
FCB $FE,$F3,$EF,$EF,$9E,$DF,$00,$00,$FB,$7B,$FF,$FF,$FF,$FF,$FF,$E3
FCB $07,$E0,$0F,$00,$3E,$00,$63,$C3,$FE,$30,$7E,$02,$3E,$38,$03,$80
FCB $1F,$FF,$F1,$C0,$18,$FC,$40,$1F,$FE,$F5,$EF,$EF,$5E,$DE,$FF,$FF
FCB $7B,$7B,$FF,$FF,$FF,$FF,$FF,$E0,$0F,$C0,$07,$00,$3C,$00,$63,$C3
FCB $FE,$00,$FE,$06,$3E,$30,$03,$80,$0F,$FF,$F1,$80,$08,$F8,$00,$0F
FCB $FE,$F5,$F7,$DF,$5E,$DE,$FF,$FF,$7B,$7A,$00,$07,$FF,$FF,$FF,$E0
FCB $1F,$C3,$87,$0E,$18,$70,$61,$C7,$FE,$01,$FE,$1E,$3E,$31,$E1,$87
FCB $0F,$FF,$F1,$87,$0C,$78,$87,$0F,$FE,$F6,$F7,$DE,$DE,$DE,$FF,$FF
FCB $7B,$78,$FF,$F9,$FF,$FF,$FF,$E0,$0F,$C7,$C7,$1F,$18,$78,$71,$C7
FCB $FE,$00,$FE,$3E,$3E,$30,$71,$8F,$8F,$FF,$F1,$8F,$8C,$78,$8F,$8F
FCB $FE,$F6,$FB,$BE,$DE,$DE,$FF,$FF,$7B,$7F,$FF,$FE,$FF,$FF,$FF,$E0
FCB $0F,$FE,$07,$1F,$18,$F8,$71,$87,$FE,$00,$FE,$3E,$3E,$30,$0F,$8F
FCB $8F,$FF,$F1,$FC,$0C,$31,$FC,$0F,$FE,$F7,$7B,$BD,$DE,$DE,$FF,$FF
FCB $7B,$7F,$FF,$FF,$7F,$FF,$FF,$E1,$87,$F0,$07,$1F,$18,$FC,$70,$8F
FCB $FE,$18,$7E,$3E,$3E,$38,$03,$8F,$8F,$FF,$F1,$E0,$0E,$31,$E0,$0F
FCB $FE,$F7,$7D,$7D,$DE,$DE,$FF,$FF,$7B,$7E,$00,$1F,$7F,$FF,$FF,$E3
FCB $83,$E0,$07,$1F,$18,$FC,$78,$0F,$FE,$38,$3E,$3E,$3E,$3C,$01,$8F
FCB $8F,$FF,$F1,$C0,$0E,$21,$C0,$0F,$FE,$F7,$BD,$7B,$DE,$DE,$FF,$FF
FCB $7B,$00,$FF,$EF,$7F,$FF,$FF,$E3,$C3,$C1,$C7,$1F,$18,$F8,$78,$0F
FCB $FE,$3C,$3E,$3E,$3E,$3F,$C1,$8F,$8F,$F8,$F1,$83,$8F,$03,$83,$8F
FCB $FE,$F7,$BE,$FB,$DE,$DE,$FF,$FF,$7B,$FF,$FF,$EF,$7F,$FF,$FF,$E3
FCB $E1,$C7,$87,$1F,$18,$78,$78,$1F,$FE,$3E,$1E,$3E,$3C,$31,$F1,$8F
FCB $8F,$F8,$F1,$8F,$0F,$03,$8F,$0F,$FE,$F7,$DE,$F7,$DE,$DE,$FF,$FF
FCB $7B,$FF,$FF,$EF,$7F,$FF,$FF,$E3,$F0,$C3,$07,$1F,$1C,$30,$7C,$1F
FCB $FE,$3F,$0E,$3E,$18,$30,$61,$8F,$8F,$F8,$61,$86,$0F,$07,$86,$0F
FCB $FE,$F7,$DE,$F7,$DE,$DE,$FF,$FF,$7B,$FF,$FF,$EF,$7F,$FF,$FF,$E3
FCB $F0,$40,$07,$1F,$1C,$00,$7C,$1F,$FE,$3F,$06,$3E,$00,$38,$03,$8F
FCB $8F,$F8,$03,$80,$0F,$87,$80,$0F,$FE,$F7,$EF,$EF,$DE,$DF,$00,$00
FCB $FB,$00,$FF,$EF,$7F,$FF,$FF,$E3,$F8,$60,$03,$1F,$1E,$00,$7E,$1F
FCB $FE,$3F,$86,$3F,$00,$38,$03,$8F,$8F,$FC,$07,$C0,$07,$87,$C0,$07
FCB $FE,$F7,$EF,$EF,$DE,$DF,$FF,$FF,$FB,$7E,$00,$1F,$7F,$FF,$FF,$E3
FCB $FC,$30,$E3,$1F,$1F,$84,$7E,$3F,$FE,$3F,$C2,$3F,$C2,$3E,$0F,$8F
FCB $8F,$FF,$0F,$E1,$C7,$CF,$E1,$C7,$FE,$F7,$F7,$DF,$DE,$EF,$FF,$FF
FCB $F7,$7F,$FF,$FF,$7F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FC,$3F
FCB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
FCB $FE,$F7,$F7,$DF,$DE,$EF,$FF,$FF,$F7,$BF,$FF,$FE,$FF,$FF,$FF,$FF
FCB $FF,$FF,$FF,$FF,$FF,$FF,$FC,$7F,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
FCB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FE,$F7,$FB,$BF,$DE,$F3,$FF,$FF
FCB $CF,$CF,$FF,$F9,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$F0,$7F
FCB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
FCB $FE,$07,$F8,$3F,$C0,$FC,$00,$00,$3F,$F0,$00,$07,$FF,$FF,$FF,$FF
FCB $FF,$FF,$FF,$FF,$FF,$FF,$F0,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
FCB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
FCB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$F1,$FF
FCB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
END
1) Ce code contient des instructions invalides comme LSRD ou LSLD, mais l'assembleur A09 les décompose en instructions 6809 valides.
2) La version diffusée utilise le processeur 6309 en mode émulation, mais c'est totalement transparent pour l'utilisateur.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
- Carl
- Modérateur
- Messages : 12988
- Inscription : 08 avr. 2007 13:21
- Localisation : http://www.doledujura.fr
- Contact :
Re: MO5 Kandy Krush Java
Daniel, je ne connais pas ce jeu mais je n'arrive pas à échanger les deux que je voudrais...peux tu m'éclairer ?
la fin de la partie
la fin de la partie
Re: MO5 Kandy Krush Java
Personne ne connaît ce jeu, je l'ai inventé de toutes pièces pour des enfants de 3 et 4 ans
Voici les règles détaillées :
- A chaque coup il faut aligner 3 pions de la même couleur verticalement ou horizontalement.
- Pour ce faire, il faut permuter deux pions voisins sur la même ligne ou la même colonne
- Pour permuter deux pions il faut cliquer entre les deux (plus exactement : appuyer avec le crayon optique).
- Le clic est refusé s'il n'est pas au bon endroit (hors du tableau ou pas précisément entre les deux pions à permuter).
- Le clic est refusé si la permutation ne génère pas d'alignement de trois pions
Après chaque coup les trois pions alignés sont retirés, les pions au-dessus descendent d'une case et les colonnes sont complétées par le haut avec des pions de couleur aléatoire. Ce nouvel agencement peut produire de nouveaux alignements de trois pions. Les pions alignés sont enlevés et le processus recommence jusqu'à ce qu'il n'y ait plus aucun alignement. On passe alors au coup suivant.
Chaque pion fait gagner un point lorsqu'il descend d'une case. La partie se joue en 32 coups. Si le score final est supérieur au "hiscore" il le remplace. Il faut appuyer sur une touche pour commencer une nouvelle partie.
Vous noterez que le score final est en grande partie aléatoire (fruit du hasard), mais le choix des permutations joue malgré tout un rôle non négligeable. Je ne sais pas si le jeu peut se bloquer (aucune permutation possible). Je n'ai encore jamais rencontré ce cas, il paraît hautement improbable mais peut-être pas impossible. Si ça arrive, faites une copie d'écran !
La prochaine version aura un message beaucoup plus visible en fin de partie :
Voici les règles détaillées :
- A chaque coup il faut aligner 3 pions de la même couleur verticalement ou horizontalement.
- Pour ce faire, il faut permuter deux pions voisins sur la même ligne ou la même colonne
- Pour permuter deux pions il faut cliquer entre les deux (plus exactement : appuyer avec le crayon optique).
- Le clic est refusé s'il n'est pas au bon endroit (hors du tableau ou pas précisément entre les deux pions à permuter).
- Le clic est refusé si la permutation ne génère pas d'alignement de trois pions
Après chaque coup les trois pions alignés sont retirés, les pions au-dessus descendent d'une case et les colonnes sont complétées par le haut avec des pions de couleur aléatoire. Ce nouvel agencement peut produire de nouveaux alignements de trois pions. Les pions alignés sont enlevés et le processus recommence jusqu'à ce qu'il n'y ait plus aucun alignement. On passe alors au coup suivant.
Chaque pion fait gagner un point lorsqu'il descend d'une case. La partie se joue en 32 coups. Si le score final est supérieur au "hiscore" il le remplace. Il faut appuyer sur une touche pour commencer une nouvelle partie.
Vous noterez que le score final est en grande partie aléatoire (fruit du hasard), mais le choix des permutations joue malgré tout un rôle non négligeable. Je ne sais pas si le jeu peut se bloquer (aucune permutation possible). Je n'ai encore jamais rencontré ce cas, il paraît hautement improbable mais peut-être pas impossible. Si ça arrive, faites une copie d'écran !
La prochaine version aura un message beaucoup plus visible en fin de partie :
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
__sam__
- Messages : 7547
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: MO5 Kandy Krush Java
Ok c'est ca qu'il m'est arrivé hier soir. J'avais donc bien bloqué la grilleDaniel a écrit : - Le clic est refusé si la permutation ne génère pas d'alignement de trois pions
Question spec: qui a la priorité ? Lorsqu'on fait un échange et qu'il apparait au moins 3 pieces de même couleur horizontalement ET verticalement ? Est-ce la direction avec le plus de pastilles qui l'emporte ou est-ce qu'il y a codé en dur une direction toujours choisie en pareil cas?
Dernière modification par __sam__ le 24 sept. 2016 15:29, modifié 1 fois.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: MO5 Kandy Krush Java
Ce sont toujours les mêmes qui n'ont pas de chance. Il y a une chance sur un million de bloquer le jeu et c'est tombé sur __sam__
C'est à moi maintenant de trouver une parade pour la prochaine version...
C'est à moi maintenant de trouver une parade pour la prochaine version...
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
__sam__
- Messages : 7547
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: MO5 Kandy Krush Java
Non il est plus probable que j'ai oublié de tester l'un des échanges.
Idée: Au lieu de faire tester par le programme si la situation est bloquée après chaque échange (long?), j'aurais une suggestion: un bouton "AIDE" fait faire une recherche exhaustive par l'ordi qui affiche tous les échanges possibles (faire apparaitre un symbole entre les pastilles échangeables). Ainsi les petits enfants ne seront pas coincés. Par contre pour éviter d'abuser de ce bouton "aide", on peut retirer 10 points par possibilité d'échange trouvée. A chacun de voir si ca vaut le coup d'utiliser ce bouton ou pas.
Idée: Au lieu de faire tester par le programme si la situation est bloquée après chaque échange (long?), j'aurais une suggestion: un bouton "AIDE" fait faire une recherche exhaustive par l'ordi qui affiche tous les échanges possibles (faire apparaitre un symbole entre les pastilles échangeables). Ainsi les petits enfants ne seront pas coincés. Par contre pour éviter d'abuser de ce bouton "aide", on peut retirer 10 points par possibilité d'échange trouvée. A chacun de voir si ca vaut le coup d'utiliser ce bouton ou pas.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
Re: MO5 Kandy Krush Java
Ce n'est pas très évolué : le programme recherche d'abord les alignements horizontaux en parcourant les lignes de haut en bas (de gauche à droite pour chaque ligne), puis les déplacements verticaux de la même manière. Il n'y a aucun traitement spécial pour les alignements de plus de trois pions, seuls les trois premiers sont pris en compte.__sam__ a écrit :Question spec: qui a la priorité ? Lorsqu'on fait un échange et qu'il apparait au moins 3 pieces de même couleur horizontalement ET verticalement ? Est-ce la direction avec le plus de pastilles qui l'emporte ou est-ce qu'il y a codé en dur une direction toujours choisie en pareil cas?
Je crois que la bonne stratégie pour un score élevé est de privilégier les alignements horizontaux dans les lignes inférieures. Mais la chance reste un facteur très important et ce n'est pas toujours le meilleur choix.
L'idée du bouton d'aide est très bonne, je vais essayer de le programmer.
Remarque : les K de Kandy et de Krush ne sont pas des fautes d'orthographe, mais un problème d'ayant droits (encore une fois). La société King a déposé les mots Candy, Crush et Saga pour les jeux.
Wikipedia a écrit :En réaction, des développeurs indépendants se sont mis à créer un nombre important de jeux comportant ces noms, de façon plus ou moins moqueuse vis-à-vis de cette histoire. On pouvait ainsi en compter 368 le 3 février 2014
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
-
__sam__
- Messages : 7547
- Inscription : 18 sept. 2010 12:08
- Localisation : Brest et parfois les Flandres
Re: MO5 Kandy Krush Java
On peut Imaginer Kandy Krush Kawa ? Ca va avoir du succès auprès de certains américains à bonets blancs 
Pour l'aide plutot que de retirer des points, on peut aussi limiter à 3 les aides possibles au cours d'une partie. A chacun de ne pas les utiliser trop vite.
Pour l'aide plutot que de retirer des points, on peut aussi limiter à 3 les aides possibles au cours d'une partie. A chacun de ne pas les utiliser trop vite.
Samuel.
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
A500 Vampire V2+ ^8^, A1200 (030@50mhz/fpu/64mb/cf 8go),
A500 GVP530(MMU/FPU) h.s., R-Pi, TO9, TO8D, TO8.Démos
- fneck
- Site Admin
- Messages : 16919
- Inscription : 01 avr. 2007 12:03
- Localisation : Drôme Provençale (26)
- Contact :
Re: MO5 Kandy Krush Java
C'est pas bien de faire des jeux comme ça Daniel... au total j'ai dû passer au moins deux heures à jouer cet après midi
Si tu veux faire un petit truc en plus, c'est autoriser la disparition de plus de trois pions lorsque c'est possible, ça pimente le jeu!
Si tu veux faire un petit truc en plus, c'est autoriser la disparition de plus de trois pions lorsque c'est possible, ça pimente le jeu!
Fabien https://www.system-cfg.com
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Les bonnes pratiques de l'utilisateur du forum viewtopic.php?f=14&t=3
Re: MO5 Kandy Krush Java
Nouvelle version avec une fonction d'aide et un message en fin de partie :
J'ai d'autres idées d'améliorations, il y aura peut-être de nouvelles versions dans le futur...
@Fabien: Pour les non-joueurs comme toi et moi les jeux vidéo actuels demandent trop de réflexion et trop de dextérité. Les jeux simplistes, au contraire, ne nécessitent aucune adresse et très peu de réflexion, c'est pourquoi nous accrochons davantage. C'est comme les jeunes enfants : L'Aigle d'Or, Le 5e Axe ou Sapiens sont trop complexes, au dessous de dix ans ils abandonnent vite. Par contre j'espère qu'ils aimeront Kandy Krush Java, j'aurai probablement la confirmation aux prochaines vacances scolaires...
Je note la suggestion pour les alignements de 4 pions, mais j'attends d'avoir un peu plus de recul pour modifier le moteur du jeu.
@Fabien: Pour les non-joueurs comme toi et moi les jeux vidéo actuels demandent trop de réflexion et trop de dextérité. Les jeux simplistes, au contraire, ne nécessitent aucune adresse et très peu de réflexion, c'est pourquoi nous accrochons davantage. C'est comme les jeunes enfants : L'Aigle d'Or, Le 5e Axe ou Sapiens sont trop complexes, au dessous de dix ans ils abandonnent vite. Par contre j'espère qu'ils aimeront Kandy Krush Java, j'aurai probablement la confirmation aux prochaines vacances scolaires...
Je note la suggestion pour les alignements de 4 pions, mais j'attends d'avoir un peu plus de recul pour modifier le moteur du jeu.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
Re: MO5 Kandy Krush Java
Ca a l'air sympa ce jeu, j'ose même pas imaginer l'algo.
J'ai jamais rien compris à Candy Crush mais là ca à l'air plus clair, encore que je ne comprend pas l'aide de combinaison entre la pastille jaune et la pastille violette au bas à droite sur la dernière capture d'écran.
[EDIT]Il y a aussi l'aide de combinaison entre la pastille jaune et la pastille rouge au bas à gauche de la capture écran ci-dessus qui me parait curieuse.
J'ai jamais rien compris à Candy Crush mais là ca à l'air plus clair, encore que je ne comprend pas l'aide de combinaison entre la pastille jaune et la pastille violette au bas à droite sur la dernière capture d'écran.
[EDIT]Il y a aussi l'aide de combinaison entre la pastille jaune et la pastille rouge au bas à gauche de la capture écran ci-dessus qui me parait curieuse.
Dernière modification par petitjd le 25 sept. 2016 15:50, modifié 1 fois.
PetitJD
Tortue Jeulin: www.tortue-jeulin.com
Nanoreseau: www.nanoreseau.net
Proteus III: www.proteus-international.fr
Tortue Jeulin: www.tortue-jeulin.com
Nanoreseau: www.nanoreseau.net
Proteus III: www.proteus-international.fr
- Papy.G
- Modérateur
- Messages : 2971
- Inscription : 10 juin 2014 13:40
- Localisation : Haute-Garonne/Gers
Re: MO5 Kandy Krush Java
Aucun risque de poursuites pour copie, la fonctionnalité première du jeu original étant de rapporter un max de sous par l'affichage de pubs, le principe du jeu n'ayant pour cela aucun intérêt autre que d'être un jeu simple et addictif. En cela, il n'y a pas copie. 
Ceci dit, on pourrait envisager d'y voir de la pub (désactivée par défaut) pour les jeux programmés récemment, sur MO/TO, mais aussi sur toutes les machines dont nous parlons ici.
Avec le crayon optique pour pointer, on est proche de l'expérience tactile, cette machine est l'idéal pour ce genre d'adaptation!
Dans le jeu "original", la grille fait 7x8 pions?
Ceci dit, on pourrait envisager d'y voir de la pub (désactivée par défaut) pour les jeux programmés récemment, sur MO/TO, mais aussi sur toutes les machines dont nous parlons ici.
Avec le crayon optique pour pointer, on est proche de l'expérience tactile, cette machine est l'idéal pour ce genre d'adaptation!
Dans le jeu "original", la grille fait 7x8 pions?
Soyez exigeants, ne vous contentez pas de ce que l'on vous vend.
Demandez-en plus, ou faites-le vous-même.
Demandez-en plus, ou faites-le vous-même.
Re: MO5 Kandy Krush Java
Même si le jeu est inspiré de Candy Crush, il est totalement différent et il y a une colonne et deux lignes en moins.
Pour jouer sur MO5 il faut le crayon optique et un écran cathodique. Je ne sais pas si on peut adapter le driver de souris du MO6 au MO5, mais c'est une question à creuser car ce serait bien pratique pour les écrans LCD.
Dans la version Windows du jeu, la configuration de départ est toujours la même, car la mémoire est restaurée à l'identique à chaque démarrage. Dans les versions MO5 ça ne sera pas le cas, les couleurs initiales sont choisies au hasard.
Pour jouer sur MO5 il faut le crayon optique et un écran cathodique. Je ne sais pas si on peut adapter le driver de souris du MO6 au MO5, mais c'est une question à creuser car ce serait bien pratique pour les écrans LCD.
Bien vu ! C'est un bug de l'aide. Nouvelle version corrigée ci-dessous : [Edit]petitjd a écrit :je ne comprend pas l'aide de combinaison entre la pastille jaune et la pastille violette au bas à droite sur la dernière capture d'écran.
Dans la version Windows du jeu, la configuration de départ est toujours la même, car la mémoire est restaurée à l'identique à chaque démarrage. Dans les versions MO5 ça ne sera pas le cas, les couleurs initiales sont choisies au hasard.
Daniel
L'obstacle augmente mon ardeur.
L'obstacle augmente mon ardeur.
