[Alice32] [Forth] Sokoban pour Alice
Modérateurs : Papy.G, fneck, Carl
Re: [Alice32] [Forth] Sokoban pour Alice
Pour les joystick il, suffit de lire les adresses : $BF30 (droite) $BF34 (gauche)
Je ne connais pas de routine dans le BIOS qui permette d'interroger les joystick !!!
Je ne connais pas de routine dans le BIOS qui permette d'interroger les joystick !!!
- Patrice
- Messages : 1562
- Inscription : 14 janv. 2008 10:42
- Localisation : https://www.ville-saintes.fr/
- Contact :
Re: [Alice32] [Forth] Sokoban pour Alice
@Dominique:
Et aucune routine n'est prévue dans la ROM système d'origine.
Et aucune routine n'est prévue dans la ROM système d'origine.
Re: [Alice32] [Forth] Sokoban pour Alice
Ca fonctionne sur le multiports , je ne faisais pas CTRL . Merci Phil et Dominique
- Patrice
- Messages : 1562
- Inscription : 14 janv. 2008 10:42
- Localisation : https://www.ville-saintes.fr/
- Contact :
Re: [Alice32] [Forth] Sokoban pour Alice
Oui, et même dans la configuration Multi-Ports + l'interface MCX32-SD!
Avec un Alice 90, tu peux utiliser les flèches ainsi que les touches <CTRL><Z,W,Q,S>, comme dcalice!
Avec un Alice 90, tu peux utiliser les flèches ainsi que les touches <CTRL><Z,W,Q,S>, comme dcalice!
Re: [Alice32] [Forth] Sokoban pour Alice
Parfait Patrice !
Y a-t-il 1 ou 2 manettes comme je le suppose (?)
- Faudra-t-il lire les deux ou donner une préférence à l'un : Par exemple dire à l'utilisateur dans les instructions : "utilisez la manette ... (droite ou gauche)" ?
- Il va falloir intercaler les tests des ports ici, je pense
- Dans mon journal des MAJ j'ai
1 - Ecran éditeur, ajouter test <Ctrl> Z pour le déplacement du curseur : Fait
2 - Mettre des bornes pour l'affichage des Niveaux ( du niveau 1 au niveau 50, bornes inclues): Fait
3 - Faire une K7 avec 50 niveaux faciles (3 ou 4 caisses) : A faire
4 - Revoir la gestion des touches clavier dans les écrans éditeur et jeu - Actions indexées - En cours
viewtopic.php?p=244760#p244760
5 - Retranscrire, détailler et expliquer le programme FORTH du Sokoban Alice - A faire
6 - Gestion du Joystick - A faire
Y a-t-il 1 ou 2 manettes comme je le suppose (?)
- Faudra-t-il lire les deux ou donner une préférence à l'un : Par exemple dire à l'utilisateur dans les instructions : "utilisez la manette ... (droite ou gauche)" ?
- Il va falloir intercaler les tests des ports ici, je pense
Code : Tout sélectionner
waitakey
37A3 BDF883 JSR POLCA
37A6 4D TSTA
37A7 27FA BEQ waitakey
37A9 39 RTS
1 - Ecran éditeur, ajouter test <Ctrl> Z pour le déplacement du curseur : Fait
2 - Mettre des bornes pour l'affichage des Niveaux ( du niveau 1 au niveau 50, bornes inclues): Fait
3 - Faire une K7 avec 50 niveaux faciles (3 ou 4 caisses) : A faire
4 - Revoir la gestion des touches clavier dans les écrans éditeur et jeu - Actions indexées - En cours
viewtopic.php?p=244760#p244760
5 - Retranscrire, détailler et expliquer le programme FORTH du Sokoban Alice - A faire
6 - Gestion du Joystick - A faire
- Patrice
- Messages : 1562
- Inscription : 14 janv. 2008 10:42
- Localisation : https://www.ville-saintes.fr/
- Contact :
Re: [Alice32] [Forth] Sokoban pour Alice
Une seule manette de jeu est nécessaire, je pense sur les 2 possibles ---> donc $BF30 ou $BF34 avec une préférence pour $BF30 (manette droite) peut-être.
L'utilisation des 2 manettes serait utile si le jeu permettait de jouer à 2 joueurs, l'un contre l'autre.
Pour les tests de port, oui au même niveau que pour le clavier, me semble correct.
L'utilisation des 2 manettes serait utile si le jeu permettait de jouer à 2 joueurs, l'un contre l'autre.
Pour les tests de port, oui au même niveau que pour le clavier, me semble correct.
Re: [Alice32] [Forth] Sokoban pour Alice
Merci encore une fois Patrice.
C'est noté et j'attaque dès que je termine l'autre MAJ.
J'aime ça quand le groupe participe, émet des suggestions, apporte des solutions. !
C'est noté et j'attaque dès que je termine l'autre MAJ.
J'aime ça quand le groupe participe, émet des suggestions, apporte des solutions. !
Re: [Alice32] [Forth] Sokoban pour Alice
Je pense que tu peux tester les 2 ports dès qu'un des 2 contient une valeur autre que $3F tu teste les directions et fire,
en tout cas c'est comme ca que je procéderais .
A moins que tu veuille rajouter un mode 2 joueurs
en tout cas c'est comme ca que je procéderais .
A moins que tu veuille rajouter un mode 2 joueurs
Re: [Alice32] [Forth] Sokoban pour Alice
Bonjour Dominique,
Le Forth utilise une pile comme en assembleur (je suis débutant en assembleur),
mais comment crée-tu un programme complexe comme Sokoban ?
Comment écrire cette routine Assembleur en FORTH par exemple :
Merci, c'est très intéressant. Et bravo.
Le Forth utilise une pile comme en assembleur (je suis débutant en assembleur),
mais comment crée-tu un programme complexe comme Sokoban ?
Comment écrire cette routine Assembleur en FORTH par exemple :
Code : Tout sélectionner
LDAA #$66 ; fréquence du DO
LDAB #$20 ; durée du son
JSR $FFAB ; routine système pour emettre un son sur Alice.
RTS ; retour au BASIC
Re: [Alice32] [Forth] Sokoban pour Alice
@David,
1- Tu vas créer le MOT 'SON' ou tout autre nom que tu désires
a) Forth utilise la pile S pour passer les données d'une procédure à l'autre.
b) Donc ton mot SON ira chercher les paramètres dans la pile S par
c) Ensuite il fera appel à $FFAB
D) Si tu es sur un compilateur Forth tu fais :
OBS : Tout dépend comment ton compilateur a défini NEXT.
Certains mettent déjà 7E + Adresse de NEXT
Si tu tapes directement les codes compilés :
2 )
Tu crées un mot qui va mettre les paramètres dans la pile et jouer SON
Si tu tapes directement les codes compilés :
1- Tu vas créer le MOT 'SON' ou tout autre nom que tu désires
a) Forth utilise la pile S pour passer les données d'une procédure à l'autre.
b) Donc ton mot SON ira chercher les paramètres dans la pile S par
Code : Tout sélectionner
32 PULA
33 PULB
Code : Tout sélectionner
BDFFAB JSR $FFAB
Code : Tout sélectionner
CREATE SON 32 C, 33 C, BD C, FFAF , 7E C, NEXT ,
Certains mettent déjà 7E + Adresse de NEXT
Si tu tapes directement les codes compilés :
Code : Tout sélectionner
CF_SON
FDB *+2
PULA
PULB
JSR $FFAF
JMP NEXT
Tu crées un mot qui va mettre les paramètres dans la pile et jouer SON
Code : Tout sélectionner
: MELODIE 6620 SON ;
Code : Tout sélectionner
CF_MELODIE
FDB DOCOL
FDB LIT
FDB $6620
FDB CF_SON
FDB SEMIS
Dernière modification par Dominique le 13 mars 2024 08:55, modifié 1 fois.
Re: [Alice32] [Forth] Sokoban pour Alice
Merci Dominique pour ce petit tutoriel très clair, je comprends mieux.
Je testerai FORTH s'il est disponible un jour sur Alice.
Je testerai FORTH s'il est disponible un jour sur Alice.
Re: [Alice32] [Forth] Sokoban pour Alice
Bonsoir à tous,
Voici 2 versions de test du Sokoban.
VERSION 7.3 (Fichier SOK73) - Gestion du <Ctrl>Z écran édition - ok
- Tableau N° 48 corrigé (Au lieu des Caisse_sur_En-but on avait Sokoban_sur_En-but
- Ecran Editeur -> Gestion de l'affichage des Sprites améliorée (J'explique plus tard)
Mais :
1)
Il y a un bug inexpliqué pour moi :
Ecran Edition - Je choisi le tableau 48 - Par la touche N (Niveau+1) j'édite le tableau 49 avec l'affichage
du texte " NIVEAU 49" illisible suite à une couleur de fond.
Et cela n'arrive qu'au NIVEAU 49 en mode Edition, pas aux autres !!!!! ????
La même erreur se reproduit-elle sur Alice ?
2)
J'ai mis la gestion du joystick. Selon mes tests faits sur DCALICE avec un joystick PC, la gestion du
déplacement est justement : ingérable car trop rapide.
En est-il de même sur Alice ?
VERSION 7.4 (Fichier SOK74) Même chose que la version 73 sauf que j'ai modifié la gestion du Joystick en l'empêchant de se déplacer 2 fois de suite dans la même direction, sauf si le joystick passe par la case repos.
Laquelle des 2 versions est-elle la plus confortable ?
Merci de vos retours.
Voici 2 versions de test du Sokoban.
VERSION 7.3 (Fichier SOK73) - Gestion du <Ctrl>Z écran édition - ok
- Tableau N° 48 corrigé (Au lieu des Caisse_sur_En-but on avait Sokoban_sur_En-but
- Ecran Editeur -> Gestion de l'affichage des Sprites améliorée (J'explique plus tard)
Mais :
1)
Il y a un bug inexpliqué pour moi :
Ecran Edition - Je choisi le tableau 48 - Par la touche N (Niveau+1) j'édite le tableau 49 avec l'affichage
du texte " NIVEAU 49" illisible suite à une couleur de fond.
Et cela n'arrive qu'au NIVEAU 49 en mode Edition, pas aux autres !!!!! ????
La même erreur se reproduit-elle sur Alice ?
2)
J'ai mis la gestion du joystick. Selon mes tests faits sur DCALICE avec un joystick PC, la gestion du
déplacement est justement : ingérable car trop rapide.
En est-il de même sur Alice ?
VERSION 7.4 (Fichier SOK74) Même chose que la version 73 sauf que j'ai modifié la gestion du Joystick en l'empêchant de se déplacer 2 fois de suite dans la même direction, sauf si le joystick passe par la case repos.
Laquelle des 2 versions est-elle la plus confortable ?
Merci de vos retours.
Dernière modification par Dominique le 13 mars 2024 09:20, modifié 1 fois.
Re: [Alice32] [Forth] Sokoban pour Alice
Pour ce qui est du Bug du Niveau 49, je crois que je viens de trouver.
Le Niveau est le seul à terminer par un mur (en bas à droite). Tous les autres par un 0, code de Extérieur (Fond noir).
D'ailleurs si je l'efface (touche L) le bug disparait.
Dans la prochaine version je déplace les éléments 1case vers la gauche.
Le Niveau est le seul à terminer par un mur (en bas à droite). Tous les autres par un 0, code de Extérieur (Fond noir).
D'ailleurs si je l'efface (touche L) le bug disparait.
Dans la prochaine version je déplace les éléments 1case vers la gauche.
Re: [Alice32] [Forth] Sokoban pour Alice
La version 7.4 me parait plus adéquate par rapport au style de jeu (déplacement 1 case à la fois) c'est pas un jeu d'action ou il faut être rapide
J'ai pas testé sur machine réelle .
J'attend la version finale pour en faire une version cartouche
J'ai pas testé sur machine réelle .
J'attend la version finale pour en faire une version cartouche
- Patrice
- Messages : 1562
- Inscription : 14 janv. 2008 10:42
- Localisation : https://www.ville-saintes.fr/
- Contact :
Re: [Alice32] [Forth] Sokoban pour Alice
@Dominique: Je viens de t'envoyer un courriel concernant SOK74, testé sur machine réelle