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

Avatar de l’utilisateur
C.Ret
Fonctionne à 2400 bauds
Fonctionne à 2400 bauds
Messages : 2193
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 : 616
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 : 2193
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 : 616
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 : 2193
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é 119 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 : 616
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 : 2193
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 : 5036
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...
3 hommes, 3 demis, un 3a... Magnéto, Serge !

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

Répondre

Revenir vers « Tous les Pockets »