Misez p'tit Optimisez n°91 : balade du cavalier

Ici, on fait dans le petit, le LCD qui déchire sa race, on y cause même calculatrices quand on est en manque !

Modérateur : Politburo

Répondre
Avatar de l’utilisateur
C.Ret
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2251
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Misez p'tit Optimisez n°91 : balade du cavalier

Message par C.Ret » 01 août 2020 18:44

steste a écrit :
01 août 2020 18:01
[...]
J'imprime un quadrillage dument noté, et j’attends
12 minutes, et environ une heure de calculs si je t'ai
bien lu ?

Je vire les lignes d'imprimante, mes CE-122 sont en panne.
[...]
Ma C122 est aussi hors service pour le moment.

Oui, c'est 12 min d'initialisation, le PC-1211 n'est pas rapide et la version publiée est un MPO qui minimise les octets et donc utilise le sous-programme principal pour l'initialisation. C'est un peu long, mais tellement plus court :)

Ensuite, il faut à peu près une heure pour remplir l'échiquier, c'est le temps qu'il me faut pour placer les jetons du loto sur l'échiquier au fur et à mesure des affichages du PC-1211. Je place le jeton sur l'échiquier aux cafes numérotées et je presse sur ENTER.
steste a écrit :
01 août 2020 18:01
[...] .125J et .125P n'est pas vraiment basic.*[...]
C'est très simple : INT .125J fait 6 octets exactement comme INT (J/8); l'idée initiale étiat de gagner quelques pas, mais c'est loupé :( mais ça évite une division qui est (peut-être) un processus un peu plus long ?? Dans le doute j'ai laissé comme cela.

Comme la 500 a la fonction modulo, c'est plus facile, plus cours et plus rapide avec des MOD.
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803 + SD2iec. | TI-57 LCD | TI-74 BasiCalc | TI-92 II | HP-28S + HP82240A | HP-41C + (2 memory + stat + IR) modules. | HP Prime Wireless Graphing Calculator | HP-15C | CASIO fx-602p + FA-1. .Sommaire des M.P.O.. . Sommaire du P.C.T.M. .

Avatar de l’utilisateur
steste
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 643
Inscription : 18 sept. 2015 18:59

Re: Misez p'tit Optimisez n°91 : balade du cavalier

Message par steste » 01 août 2020 19:29

Resalut C.Ret. :P

Je passe MOD, j'ai hélas rien compris (en trois secondes) que
je ne comprendrais rien sur MOD sous Wiki. :P

Je regarde tantôt le programme 1211 que tu
a construit et j'étudie (peut-être dans la zone du LPRINT)
pour glisser ma sortie dans mon X/Y.

Ceci fait, je fais mon module d'affichage, qui devrait être rapide,
vu que "tout les résultats sortent en même temps" ! :P

Juste une petite question, je garde le /8 pour les deux
variables J et P ?

Merci pour ta réponse, amicalement, ste

ste

Avatar de l’utilisateur
C.Ret
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2251
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Misez p'tit Optimisez n°91 : balade du cavalier

Message par C.Ret » 01 août 2020 21:10

C'est pas sur WIKIPEDIA qu'il faut chercher comment fonctionne l'instruction MOD, mais dans le manuel du SHARP E500s et essayer sur la machine.

D'ailleurs il faut que tu m'expliques pourquoi tu veux utiliser la version PC-1211 sur un SHARP-E500s qui est plus puissant et qui pourra sans problème utiliser directement la version SHARP PC-1360 ?

Ensuite, l'écran du E500s fait 240x32 pixels, c'est un peut petit pour y dessiner un échiquier ? Je ne comprends pas ce que tu veux faire, cela laisse 4x4 pixels par cafe ??
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803 + SD2iec. | TI-57 LCD | TI-74 BasiCalc | TI-92 II | HP-28S + HP82240A | HP-41C + (2 memory + stat + IR) modules. | HP Prime Wireless Graphing Calculator | HP-15C | CASIO fx-602p + FA-1. .Sommaire des M.P.O.. . Sommaire du P.C.T.M. .

Avatar de l’utilisateur
steste
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 643
Inscription : 18 sept. 2015 18:59

Re: Misez p'tit Optimisez n°91 : balade du cavalier

Message par steste » 01 août 2020 23:13

On revient d'un spectacle pour
le 1er Aout Suisse quasiment inexplicable.

Je te donne des news du mpo demain dans
la soirée au mieux, merci, et bonne nuit...

Stéphane :P

Avatar de l’utilisateur
C.Ret
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2251
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Misez p'tit Optimisez n°91 : balade du cavalier

Message par C.Ret » 09 août 2020 20:56

steste a écrit :
01 août 2020 19:29
[...]Ceci fait, je fais mon module d'affichage, qui devrait être rapide, vu que "tout les résultats sortent en même temps" ! :P [..]
Je n'ai pas bien compris de quel module d'affichage steste parlait, mais cela m'a donné l'idée de faire une version un peu moins MPO qui décortique le fonctionnement de l'algorithme de Wansdorf par une animation graphique sur l'écran du PC-1360.
MPO 91 Graphic Wansdorf on SHARP PC-1350.gif
MPO 91 Graphic Wansdorf on SHARP PC-1350.gif (210.92 Kio) Consulté 919 fois
Bon, le seul réel ennuis est que l'écran est petit et que donc chaque cafe fait exactement 4x4 pixels.

Les cafes claires et sombres dessinées correspondent aux cases non encore explorées ; en effet, cette nouvelle version n'a pas d'initialisation de l'échiquier autre que la mise à zéro de l'instruction DIM. Ceci évite d'avoir à attendre la fin de l'initialisation au début de programme, on saisi donc la positon initiale immédiatement. Juste le temps que l'échiquier vide se dessine.
(J'attends que ledudu poste sa version pour TI-57 avant de donner mon code pour CASIO fx-602p qui lui aussi n'utilise pas d'autre initialisation qu'une remise à zéro des registre VAC).

Ensuite, les jetons sont représentés par un petit carré (de 2x2 pixels) au centre des cafes déjà parcourues par le cavalier.

La position du cavalier est donnée à chaque saut par un grand carré (faisant toute la cafe soit 4x4 pixels) et les positions sont données en clair sur la droite de l'écran. les touches curseur < et > permettent de naviguer dans la liste, on voit alors les sauts à rebrousse poil du cavalier.

La touche ENTER permet de déterminer le saut suivant et de sortir du programme après avoir parcouru tout l'échiquier.

Les cases explorées sont notées à l'aide de lentilles vertes biens sèches (des pixels bien collés) qui repèrent les degrés de liberté comme les faces d'un dé ( . / : / :. / :: / :.: / ::: / H ) avec le nombre 7 formant un petit H.

Les détermination du saut suivant sont animés, on voit les cases scrutées par la machine scintiller et afficher leur nouvel état. Le choix de saut suivant indiqué par un vidéo-inverse évolue "en direct".

Evidemment ces animations ralentissent un peu le calcul, mais on peut se passer placer les jetons et le s lentilles vertes bien sèches sur un échiquier.


Code : Tout sélectionner

1:CLEAR : WAIT .2: DIM S(64),E(63),D(7): FOR A=0 TO 3: READ D(A):D(4+A)=-D(A): NEXT A: CLS : GOSUB 39
2:CURSOR 6: INPUT "Initial POS ";P$: Q=8* VAL RIGHT$ (P$,1)- (ASC P$ AND 15): IF Q<0 OR Q>63 GOTO 2
3:FOR N=1 TO 64:P=Q,E(P)=N,S(N)=P,X=P AND 7,M=-9: GOSUB 40 
4:FOR A=0 TO 7:I=P+D(A),Y=I AND 7,W=19: IF I>=0 IF I<64 IF ABS (Y-X)<3 GOTO 7-2* SGN E(I)
5:NEXT A: NEXT N: END
6:DATA 10,17,15,6
7:FOR B=0 TO 7: J=I+D(B),Z=J AND 7: IF J>=0 IF J<63 IF ABS (Y-Z)<3 IF E(J)<1 GOSUB 20:E(I)=E(I)-1: GOSUB W
8:NEXT B:E(I)=E(I)-1
9:E(I)=E(I)+1: GOSUB W: IF E(I)>M GSOUB 31:M=E(I),J=Q,Q=I: GOSUB 20
10:GOTO 5
19:J=I

20:U=28-4*(J AND 7),V=31-4* INT (J/8): GOSUB 30
21:IF E(J)<0 GOTO 39+E(J)
22:IF E(J)>0 LINE (1+U,V-1)-(2+U,V-2),S,BF : RETURN
23:IF U+V AND 4 LINE (U,V)-(U+3,V-3),&A5A5,BF 
24:RETURN

30:LINE (U,V)-(U+3,V-3),R,BF:RETURN
31:LINE (U,V)-(U+3,V-3),X,BF: BEEP 1,98,2: RETURN
32:GOSUB 38
33:PSET (U,V-2): PSET (2+U,V-2):GOTO 35
34:PSET (1+U,V-2)
35:PSET (U,V-1): PSET (2+U,V-3):GOTO 37
36:PSET (2+U,V-3)
37:PSET (U,V-3): PSET (2+U,V-1): RETURN
38:PSET (1+U,V-2): RETURN
39:FOR J=0 TO 31 STEP 8: FOR I=7 TO 31 STEP 8: GCURSOR (J,I): GPRINT "A050A05000A050A05";: NEXT I:NEXT J: RETURN

40:A=N-8,B=N: CURSOR 92: PRINT N: BEEP 1: IF A<1 LET A=1
41:CURSOR 54: FOR I=A TO B:J=S(I): PRINT CHR$ (72-(J AND 7)); CHR$ (49+J/8);: NEXT I: GOSUB 20:W=0 	
42:GCURSOR (42,15): GPRINT "0000000000": IF A>1 GCURSOR (42,15): GPRINT "1038387C7C"
43:GCURSOR (143,15): GPRINT "0000000000": IF B<N GCURSOR (143,15): GPRINT "7C7C383810"
44:K= ASC INKEY$ :W=W+1: IF W GOSUB 20: GOSUB 31:W=-11
45:IF K<13 GOTO 14
46:GOSUB 31: IF K=15 IF A>1 LET A=A-1,B=B-1: GOTO 41
47:IF K=14 IF B<N LET A=A+1,B=B+1: GOTO 41
48:RETURN

Bon, c'est long à taper, heureusement je peux fournir à la demande une copie de ma session sous l'excellent PokEmul de remy.
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803 + SD2iec. | TI-57 LCD | TI-74 BasiCalc | TI-92 II | HP-28S + HP82240A | HP-41C + (2 memory + stat + IR) modules. | HP Prime Wireless Graphing Calculator | HP-15C | CASIO fx-602p + FA-1. .Sommaire des M.P.O.. . Sommaire du P.C.T.M. .

Avatar de l’utilisateur
steste
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 643
Inscription : 18 sept. 2015 18:59

Re: Misez p'tit Optimisez n°91 : balade du cavalier

Message par steste » 09 août 2020 21:44

Salut C.Ret.

Super génial, un bémol grave
a ces Sharp (boite qui a disparu entre autre),
c'est la gestion catastrophique du Gcursor, comme
on remarque hélas le "B?Z?R?" comportement sur
le graphique des (cases (sans vieux français)) et, o comment
dommage, l'illustration de la 3e photo d'écran.

Je comprend presque que tu a continué quand
même, avec courage, la gestion 5X7 écrasant tout sur son passage
et hélas au grand hélas,
le résultat.

Donc, bravo pour ton courage ! :P

Et merci pour les excellentes illustrations qui
prennent un temps disproportionnellement inverse
a leur temps proportionnellement inverse. :!:

Ouaffff.... a+, Sté :P

Avatar de l’utilisateur
C.Ret
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2251
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Misez p'tit Optimisez n°91 : balade du cavalier

Message par C.Ret » 10 août 2020 10:24

Oh! Non, je trouve au contraire que , même s'ils ont leurs petits défauts, les instructions CURSOR/PRINT, GCURSOR/GPRINT et les autres LINE/PSET/RPSET ou POINT ont l'énorme avantage d'exister et de fonctionner assez bien (même s'il y a des petits détails).

Je connais un ordinateur BASIC 8bits très très très populaire qui a une puce graphique dédiée (HR, 16 colors/sprites/scrolling hardware/ etc..) et dont le BASIC ne sert absolument à rien, il faut des dizaines et dizaines de lignes de PEEK et POKE pour réaliser le moindre pixel art ou simplement afficher le mode graphique. C'est pour cela que je n'utilise qu'un C128D ses commandes GRAPHIC 1,1 et CIRCLE 1,80,100,80 évitent de centaines de lignes d'instructions POKE/PEEK et autre WAIT ou SYS.

En plus des cafes de 4x4 c'est deux cafes par matrice GPRINT; voit la ligne 39 qui dessine rapidement l'échiquier deux lignes par deux lignes)

Je vais rechercher un SHARP PC-G850V qui a six lignes, les cafes de 6x6 pixels seront plus lisibles.
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803 + SD2iec. | TI-57 LCD | TI-74 BasiCalc | TI-92 II | HP-28S + HP82240A | HP-41C + (2 memory + stat + IR) modules. | HP Prime Wireless Graphing Calculator | HP-15C | CASIO fx-602p + FA-1. .Sommaire des M.P.O.. . Sommaire du P.C.T.M. .

Avatar de l’utilisateur
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5140
Inscription : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: Misez p'tit Optimisez n°91 : balade du cavalier

Message par Marge » 11 août 2020 22:03

Eh bien, ça dépote ici, bravo !
Je n'ai pas lu les détails mais ça m'a l'air passionnant, cette phase de représentation graphique - je suis toujours impressionné par la somme de travail abattue par C.ret...

Quant à mes affaires, ça avance bien, je suis fier d'annoncer que les routines 9 et 8 ont parfaitement été placées en orbite ! On devrait amorcer la phase d'alunissage ce dimanche(*) :D

C'est une vraie fusée 🚀, la 15c LE...

(*): juste amorcer, hein, il y a eu un cafard grillé dans le test à zéro... plus de nouvelles à ce sujet dans la semaine, quel suspense !
3 hommes, 3 demis, un 3a... Magnéto, Serge !

« Boris », c'est juste Maurice enrhumé.

Avatar de l’utilisateur
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5140
Inscription : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: Misez p'tit Optimisez n°91 : balade du cavalier

Message par Marge » 17 août 2020 16:10

Bonjour, je confirme que la HP-15c Limited Edition possède un bogue des plus gênants : le test x=0 ne semble pas toujours fonctionner (la réponse est toujours OUI dans une circonstance qu'il me reste à préciser), ce qui est pour mon programme très handicapant... le même programme sur la 15c old school se comporte déjà plus normalement, même s'il ne fonctionne pas encore tout à fait... mais ça ne saurait tarder !

Une fois que je l'aurai testé correctement sur la 15, je tenterai une version pour la 35s.
3 hommes, 3 demis, un 3a... Magnéto, Serge !

« Boris », c'est juste Maurice enrhumé.

Avatar de l’utilisateur
C.Ret
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2251
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Misez p'tit Optimisez n°91 : balade du cavalier

Message par C.Ret » 17 août 2020 18:05

Ah! Ah! J'en déduit que l'on en est à régler les derniers petits (mais parfois affreux) détails de l'exécution.

J'ai eut en dernière instance un soucis un peu similaire avec mon code HP-15C. En insérant un R/S juste avant et en utilisant f-PREFIX j'ai pu voir ce qui, de temps en temps, créait un petit incident qui me rendait fou et me mettait à douter du bon fonctionnement de l'engin.

J'ai alors ajouté un patch qui a immédiatement corrigé le problème (cf. ligne 014- 43 34) en toutes circonstances. Peut-être le souci que rencontre notre ami Marge est du même acabit ?
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803 + SD2iec. | TI-57 LCD | TI-74 BasiCalc | TI-92 II | HP-28S + HP82240A | HP-41C + (2 memory + stat + IR) modules. | HP Prime Wireless Graphing Calculator | HP-15C | CASIO fx-602p + FA-1. .Sommaire des M.P.O.. . Sommaire du P.C.T.M. .

remy
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 1917
Inscription : 13 mars 2006 16:39
Contact :

Re: Misez p'tit Optimisez n°91 : balade du cavalier

Message par remy » 17 août 2020 19:30

Pourquoi n'active tu pas la haute résolution pour l'écran. Les screenshots seraient beaucoup plus beaux.
PockEmul, Emulateur de pocket Sharp, Canon, Casio, HP, TI, NEC, Panasonic, Sanco, Seiko, General, National, ....
sur Windows, Linux, OS X et Android
Available now on the Google Play Store

Avatar de l’utilisateur
C.Ret
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2251
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Misez p'tit Optimisez n°91 : balade du cavalier

Message par C.Ret » 18 août 2020 18:56

remy a écrit :
17 août 2020 19:30
Pourquoi n'active tu pas la haute résolution pour l'écran ? Les screenshots seraient beaucoup plus beaux !
Ah! Oui, j'avais donc pas activé ça. C'est vrai c'est un peu beaucoup plus mieux bien plus lisible.
PC-1350 Ini A3 Jet 35.png
PC-1350 Ini A3 Jet 35.png (70.26 Kio) Consulté 600 fois
+++
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803 + SD2iec. | TI-57 LCD | TI-74 BasiCalc | TI-92 II | HP-28S + HP82240A | HP-41C + (2 memory + stat + IR) modules. | HP Prime Wireless Graphing Calculator | HP-15C | CASIO fx-602p + FA-1. .Sommaire des M.P.O.. . Sommaire du P.C.T.M. .

Avatar de l’utilisateur
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5140
Inscription : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: Misez p'tit Optimisez n°91 : balade du cavalier

Message par Marge » 18 août 2020 23:16

Cb3d4 ?
Cb5 ?
Cd6 ?
Cf7 ?
Ch8 !!
Ch8 ++ ?? :pirat:

Cherchez l'erreur :




Image

C.Ret, la 15c Limited Edition possède vraiment une grave erreur incrustée dans son logiciel interne, non une erreur de programmation de l'utilisateur ; j'y reviendrai lorsque j'aurai trouvé ce qui ne fonctionne pas dans les choix de parcours du canasson - pour le coup, vraiment un cheval sans cavalier.

Personne n'aurait un cachet d'aspirine ?
3 hommes, 3 demis, un 3a... Magnéto, Serge !

« Boris », c'est juste Maurice enrhumé.

Avatar de l’utilisateur
C.Ret
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2251
Inscription : 31 mai 2008 23:43
Localisation : N 49°22 E 6°10

Re: Misez p'tit Optimisez n°91 : balade du cavalier

Message par C.Ret » 19 août 2020 07:06

Ça c'est vraiment embêtant !

Je connaissez le souci de l'instruction PSE, mais un problème de test c'est très grave. Surtout si ce n'est pas simplement un petit souci d'arrondi. J'imaginais naïvement qu'un arrondi différent pouvait expliquer la différence.

Encore une implémentation moderne d'une vieillerie qui ne fonctionne pas bien mais que personne ne remarque par faute d'utilisateur consciencieu et appliqué ! Plus personne ne semble programmer ?

En tout cas voilà, comme pour Alien, encore un défaut qui met à mal un travail considérable (281 pas c'est pas rien).
Concernant le comportement du cheval qui va de F7 à H8, ce doit être un test mis à mal par la proximité du bord de l'échiquier. C'est un peu comme les chevaux qui viennent au coin de leur pâturage pour glaner quelques friandises.

Bon avec des tests qui vont pas bien, pas facile de débogg et 😟
SHARP PC-1211 + CE-121 + CE-122. | VIC 20 Commodore 128D + Printer P-803 + SD2iec. | TI-57 LCD | TI-74 BasiCalc | TI-92 II | HP-28S + HP82240A | HP-41C + (2 memory + stat + IR) modules. | HP Prime Wireless Graphing Calculator | HP-15C | CASIO fx-602p + FA-1. .Sommaire des M.P.O.. . Sommaire du P.C.T.M. .

Avatar de l’utilisateur
Marge
Fonctionne à 14400 bauds
Fonctionne à 14400 bauds
Messages : 5140
Inscription : 01 oct. 2008 14:39
Localisation : En bas, tout au fond à gauche.

Re: Misez p'tit Optimisez n°91 : balade du cavalier

Message par Marge » 19 août 2020 13:50

Je vois deux explications au fait que personne n'ait vu ce bogue :

- Personne n'utilise réellement la 15c LE pour programmer ; aux dires des habitués du HP Museum, il s'agirait plutôt d'une machine achetée pour voir ce qu'elle avait dans le ventre en termes de capacités générales, éventuellement pour servir sur un coin de bureau à quelques opérations de base, mais qui n'a jamais suscité l'engouement des engins antérieurs, en particulier parce que le clavier n'est pas de la qualité légendaire du matériel HP - il est peu fiable à cause des rebonds - et surtout depuis la révélation de l'absence de pause ; on peut ajouter que le service après-vente HP inexistant à ce sujet et la déception accompagnant cette politique n'ont pas poussé les fanatiques de la marque à placer ce modèle au centre de leurs préoccupations.

- le bogue en question (l'ignorance du test x=0, considéré comme positif quel que soit le contenu de x) n'apparaît pas en permanence : le phénomène serait peut-être lié au partitionnement de la mémoire (c'est mon hypothèse de néophyte) ; il fonctionne en apparence correctement en-dessous des cent pas, mais non dans la partie modifiable ; je dois encore le vérifier pour en être certain, ainsi que sur mon deuxième modèle de 15c LE.

P.-S. : pour mon programme, le problème semble venir du fait que j'aie mal utilisé les drapeaux (un drapeau armé fait exécuter les deux instructions qui suivent, pas seulement la première) ; ça va un peu alourdir, mais on avance.
3 hommes, 3 demis, un 3a... Magnéto, Serge !

« Boris », c'est juste Maurice enrhumé.

Répondre

Revenir vers « Tous les Pockets »