[Alice32] [Forth] Sokoban pour Alice

Cette catégorie traite de développements récents destinés à nos vieilles machines, applications, jeux ou démos... Amis programmeurs, c'est ici que vous pourrez enfin devenir célèbres!

Modérateurs : Papy.G, fneck, Carl

Avatar de l’utilisateur
6502man
Messages : 12332
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [Alice32] [Forth] Sokoban pour Alice

Message par 6502man »

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 !!!
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
Patrice
Messages : 1562
Inscription : 14 janv. 2008 10:42
Localisation : https://www.ville-saintes.fr/
Contact :

Re: [Alice32] [Forth] Sokoban pour Alice

Message par Patrice »

@Dominique:
Joystick-codes.PNG
Joystick-codes.PNG (84.69 Kio) Consulté 725 fois

Et aucune routine n'est prévue dans la ROM système d'origine. :wink:
Brochiman
Messages : 3545
Inscription : 02 juin 2019 11:26
Localisation : Angers

Re: [Alice32] [Forth] Sokoban pour Alice

Message par Brochiman »

Ca fonctionne sur le multiports :D :D , je ne faisais pas CTRL :oops: :oops:. Merci Phil et Dominique
Avatar de l’utilisateur
Patrice
Messages : 1562
Inscription : 14 janv. 2008 10:42
Localisation : https://www.ville-saintes.fr/
Contact :

Re: [Alice32] [Forth] Sokoban pour Alice

Message par Patrice »

Oui, et même dans la configuration Multi-Ports + l'interface MCX32-SD! 8) :wink:

Avec un Alice 90, tu peux utiliser les flèches ainsi que les touches <CTRL><Z,W,Q,S>, comme dcalice! :roll: 8)
Avatar de l’utilisateur
Dominique
Messages : 833
Inscription : 09 mars 2010 13:37
Localisation : Limoges
Contact :

Re: [Alice32] [Forth] Sokoban pour Alice

Message par Dominique »

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

Code : Tout sélectionner

                     waitakey
 37A3 BDF883                  	JSR     POLCA
 37A6 4D                     	TSTA
 37A7 27FA                    	BEQ     waitakey
 37A9 39                      	RTS
- 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
Avatar de l’utilisateur
Patrice
Messages : 1562
Inscription : 14 janv. 2008 10:42
Localisation : https://www.ville-saintes.fr/
Contact :

Re: [Alice32] [Forth] Sokoban pour Alice

Message par Patrice »

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. :wink:

Pour les tests de port, oui au même niveau que pour le clavier, me semble correct.
Avatar de l’utilisateur
Dominique
Messages : 833
Inscription : 09 mars 2010 13:37
Localisation : Limoges
Contact :

Re: [Alice32] [Forth] Sokoban pour Alice

Message par Dominique »

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. !
Avatar de l’utilisateur
6502man
Messages : 12332
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [Alice32] [Forth] Sokoban pour Alice

Message par 6502man »

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 :lol: :lol:
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
David.G
Messages : 300
Inscription : 16 janv. 2024 00:02

Re: [Alice32] [Forth] Sokoban pour Alice

Message par David.G »

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 :

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
Merci, c'est très intéressant. Et bravo.
Avatar de l’utilisateur
Dominique
Messages : 833
Inscription : 09 mars 2010 13:37
Localisation : Limoges
Contact :

Re: [Alice32] [Forth] Sokoban pour Alice

Message par Dominique »

@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

Code : Tout sélectionner

32 	PULA
33 	PULB
c) Ensuite il fera appel à $FFAB

Code : Tout sélectionner

BDFFAB	JSR     $FFAB
D) Si tu es sur un compilateur Forth tu fais :

Code : Tout sélectionner

CREATE SON 32 C, 33 C, BD C, FFAF , 7E C, NEXT , 
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 :

Code : Tout sélectionner

CF_SON
	FDB	*+2
	PULA
	PULB
	JSR	$FFAF
	JMP	NEXT
2 )

Tu crées un mot qui va mettre les paramètres dans la pile et jouer SON

Code : Tout sélectionner

: MELODIE 6620 SON ;
Si tu tapes directement les codes compilés :

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.
Avatar de l’utilisateur
David.G
Messages : 300
Inscription : 16 janv. 2024 00:02

Re: [Alice32] [Forth] Sokoban pour Alice

Message par David.G »

Merci Dominique pour ce petit tutoriel très clair, je comprends mieux.

Je testerai FORTH s'il est disponible un jour sur Alice. :wink:
Avatar de l’utilisateur
Dominique
Messages : 833
Inscription : 09 mars 2010 13:37
Localisation : Limoges
Contact :

Re: [Alice32] [Forth] Sokoban pour Alice

Message par Dominique »

Bonsoir à tous,

Voici 2 versions de test du Sokoban.

VERSION 7.3 (Fichier SOK73)
SOK73.zip
(69.12 Kio) Téléchargé 8 fois
- 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.
Niv49.jpg
Niv49.jpg (26.13 Kio) Consulté 568 fois
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)
SOK74.zip
(69.05 Kio) Téléchargé 7 fois
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.
Avatar de l’utilisateur
Dominique
Messages : 833
Inscription : 09 mars 2010 13:37
Localisation : Limoges
Contact :

Re: [Alice32] [Forth] Sokoban pour Alice

Message par Dominique »

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.
Avatar de l’utilisateur
6502man
Messages : 12332
Inscription : 12 avr. 2007 22:46
Localisation : VAR
Contact :

Re: [Alice32] [Forth] Sokoban pour Alice

Message par 6502man »

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 :wink:
J'ai pas testé sur machine réelle .

J'attend la version finale pour en faire une version cartouche ;)
Phil.

www.6502man.com

To bit or not to bit.
1 or 0.
Avatar de l’utilisateur
Patrice
Messages : 1562
Inscription : 14 janv. 2008 10:42
Localisation : https://www.ville-saintes.fr/
Contact :

Re: [Alice32] [Forth] Sokoban pour Alice

Message par Patrice »

@Dominique: Je viens de t'envoyer un courriel concernant SOK74, testé sur machine réelle :wink:
Répondre