[Mega ST1] Un début de test en 1994 pour convertir et apprendre le polonais

Tous les ST, Falcon et compagnie (et même éventuellement les PC)

Modérateur : Politburo

Répondre
Avatar du membre
Thierry Loiseau
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 823
Enregistré le : 10 avr. 2004 22:23
Localisation : Terrasson (Périgord)
Contact :

[Mega ST1] Un début de test en 1994 pour convertir et apprendre le polonais

Message par Thierry Loiseau »

Image
Modifié en dernier par Thierry Loiseau le 08 déc. 2019 15:40, modifié 1 fois.
HP-41C, HP-12C ; Casio FX-702P, FX-850P, FX-602P, FX-3900P, FX-4000P, FX-180Pv ;
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
[***Apple //e, 7100, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs

[--- plus ---]
http://astrophoto.free.fr/
Avatar du membre
Thierry Loiseau
Fonctionne à 1200 bauds
Fonctionne à 1200 bauds
Messages : 823
Enregistré le : 10 avr. 2004 22:23
Localisation : Terrasson (Périgord)
Contact :

Re: [Mega ST1] Un début de test en 1994 pour convertir et apprendre le polonais

Message par Thierry Loiseau »

C'était en GFA-BASIC :

Code : Tout sélectionner

'
'
'  *****   ****  **     ****  **  **  ****  **  ****
'  **  ** **  ** **    **  ** **  ** **  ** ** **
'  **  ** **  ** **    **  ** ****** **  ** ** **
'  *****  **  ** **    **  ** ** *** ****** **  ***
'  **     **  ** **    **  ** **  ** **  ** **    **
'  **     **  ** **    **  ** **  ** **  ** **    **
'  **      ****  *****  ****  **  ** **  ** ** ****
'
'
' POLONAIS : 26/06/1994
'
'
' Note sur TEXT : x,y,f,t$ oó f=0(normal), f<0 lim f avec spc mot, f>0 id spc le
'
'
RESERVE 225600
jt=10
jd=10
jc=10
jjeux=10
'
initialisation
menu
'
aurevoir
'
RESERVE
~INP(2)
CLS
SETCOLOR 0,1
' EDIT
SYSTEM
END
'
' D E C L I N A I S O N ,   C O M P L E M E N T ,   T R A D U C T I O N
'
> PROCEDURE jeu_decline(ncp)
  LOCAL d,g,n
  help|=5
  DEFTEXT 1,16,0,22
  p$="DECLINAISON"
  ~VQT_EXTENT(p$)
  CLS
  coups=0
  x=PTSOUT(2)
  y=PTSOUT(5)
  TEXT (639-x)/2,y,"DECLINAISONS"
  DEFTEXT 1,0,0,11
  REPEAT
    INC coups
    ' choix declinaison
    d=INT(RND*6)+1 ! Nom,Gen,Dat,Acc,Ins,Loca
    ' choix genre
    g=INT(RND*3)+1
    ' choix nombre
    n=INT(RND*2)+1
    '
    DEFTEXT 1,0,0,13,3
    choix$=genre$(g)+" "+nombre$(n)+" "+dec$(d)+" ("+sens$(d)+")"
    ~VQT_EXTENT(choix$)
    x=PTSOUT(2)
    y=PTSOUT(5)
    BOUNDARY 1
    BOX (639-x)/2-4,100-14-4,(639-x)/2+x+2,100-14+y+2
    BOUNDARY 0
    DEFTEXT 1,0,0,13,3
    TEXT (639-x)/2,100,choix$
    px=100
    py=200
    lo=2
    @saisie_reponse(px,py,lo,2,640-px,"")
    IF @sansponct$(@upper_chaine$(rep$))<>@sansponct$(@upper_chaine$(table$(d,n,g)))
      affiche(table$(d,n,g),200,350)
    ELSE
      INC bons
    ENDIF
    PBOX px,py-11*lo,xl+px+xp,py-11*lo+yl
    PBOX (639-x)/2-4,100-14-4,(639-x)/2+x+2,100-14+y+2
  UNTIL coups=ncp
RETURN
> PROCEDURE jeu_traduct(ncp)
  LOCAL d
  help|=4
  DEFTEXT 1,16,0,22
  p$="TRADUCTION"
  DIM choix_ph(ptot)
  ~VQT_EXTENT(p$)
  CLS
  coups=0
  x=PTSOUT(2)
  y=PTSOUT(5)
  TEXT (639-x)/2,y,p$
  DEFTEXT 1,0,0,11
  REPEAT
    INC coups
    ' choix PHRASE
    REPEAT
      d=INT(RND*ptot)+1
    UNTIL choix_ph(d)=0
    choix_ph(d)=1
    l=INT(RND*2)
    IF l=1
      choix$=ph_pl$(d)
      trad$=ph_fr$(d)
    ELSE
      choix$=ph_fr$(d)
      trad$=ph_pl$(d)
    ENDIF
    DEFTEXT 1,0,0,13,3
    ~VQT_EXTENT(choix$)
    x=PTSOUT(2)
    y=PTSOUT(5)
    BOUNDARY 1
    BOX (639-x)/2-4,100-14-4,(639-x)/2+x+2,100-14+y+2
    BOUNDARY 0
    TEXT (639-x)/2,100,choix$
    px=1
    py=200
    lo=2
    @saisie_reponse(px,py,lo,2,640-px,"")
    IF @sansponct$(@upper_chaine$(rep$))<>@sansponct$(@upper_chaine$(trad$))
      affiche(trad$,200,350)
    ELSE
      INC bons
    ENDIF
    PBOX px,py-11*lo,xl+px+xp,py-11*lo+yl
    PBOX (639-x)/2-4,100-14-4,(639-x)/2+x+2,100-14+y+2
  UNTIL coups=ncp
  ERASE choix_ph()
RETURN
> PROCEDURE jeu_complete(ncp)
  LOCAL d,mot2$,mot3$
  help|=3
  DEFTEXT 1,16,0,22
  p$="COMPLETEZ LA PHRASE"
  DIM choix_ph(ptot)
  ~VQT_EXTENT(p$)
  CLS
  coups=0
  x=PTSOUT(2)
  y=PTSOUT(5)
  TEXT (639-x)/2,y,p$
  DEFTEXT 1,5,0,11,4
  p$="WypeÉniÅ brakujÄce sÉowa"
  ~VQT_EXTENT(p$)
  TEXT (639-PTSOUT(2))/2,50,p$
  REPEAT
    INC coups
    ' choix PHRASE
    REPEAT
      d=INT(RND*ptot)+1
    UNTIL choix_ph(d)=0
    '
    ' premier mot manquant
    '
    choix_ph(d)=1
    choix$=ph_pl$(d)
    trad$=ph_fr$(d)
    DEFTEXT 1,0,0,13,3
    choix$=@retmot$(choix$)
    mot$=MID$(choix$,INSTR(choix$,"|")+1)
    choix$=MID$(choix$,1,INSTR(choix$,"|")-1)
    mot2$=""
    mot3$=""
    IF RND>0.8 AND INSTR(TRIM$(choix$)," ")>0
      '
      ' Second mot
      '
      choix$=@retmot$(choix$)
      mot2$=MID$(choix$,INSTR(choix$,"|")+1)
      choix$=MID$(choix$,1,INSTR(choix$,"|")-1)
      IF INSTR(MID$(ph_pl$(d),INSTR(choix$,"...")),mot$)>INSTR(MID$(ph_pl$(d),INSTR(choix$,"...")),mot2$)
        mot3$=mot2$+","+mot$
        mot$=mot2$+" "+mot$
      ELSE
        mot3$=mot$+","+mot2$
        mot$=mot$+" "+mot2$
      ENDIF
    ENDIF
    ~VQT_EXTENT(choix$)
    x=PTSOUT(2)
    y=PTSOUT(5)
    BOUNDARY 1
    BOX (639-x)/2-4,100-14-4,(639-x)/2+x+2,100-14+y+2
    BOUNDARY 0
    TEXT (639-x)/2,100,choix$
    DEFTEXT 1,0,0,11,2
    ~VQT_EXTENT("("+trad$+")")
    x2=PTSOUT(2)
    y2=PTSOUT(5)
    TEXT (639-x2)/2,125,"("+trad$+")"
    DEFTEXT 1,0,0,13,3
    px=1
    py=200
    lo=2
    @saisie_reponse(px,py,lo,2,640-px,"")
    rep$=@sansponct$(@upper_chaine$(rep$))
    IF @sansponct$(@upper_chaine$(mot$))=rep$ OR (@sansponct$(@upper_chaine$(mot3$))=rep$ AND mot3$<>"")
      INC bons
    ELSE
      IF mot2$>""
        affiche(mot3$,200,350)
      ELSE
        affiche(mot$,200,350)
      ENDIF
    ENDIF
    PBOX px,py-11*lo,xl+px+xp,py-11*lo+yl
    PBOX (639-x)/2-4,100-14-4,(639-x)/2+x+2,100-14+y+2
    PBOX (639-x2)/2-4,125-11,(639-x2)/2+x2+2,125-9+y2+2
  UNTIL coups=ncp
  ERASE choix_ph()
RETURN
'
' C L A V I E R   E T   C A R A C T E R E S
'
> PROCEDURE saisie_reponse(xr,yr,l,f,ml,r$)
  LOCAL g
  ' ml=maxlong
  SELECT f
  CASE 1
    g=16
  CASE 2
    g=11
  CASE 3
    g=13
  CASE 4
    g=11
  CASE 5
    g=7
  ENDSELECT
  DEFTEXT 1,0,0,g*l,f
  rep$=r$
  BOUNDARY 0
  ~VQT_EXTENT("_")
  xl=0
  yl=0
  xp=PTSOUT(2)-1
  yp=PTSOUT(5)
  ~VQT_EXTENT(rep$)
  xl=PTSOUT(2)
  yl=PTSOUT(5)
  TEXT xr,yr,rep$
  TEXT xr+xl,yr,"_"
  REPEAT
    REPEAT
      k$=INKEY$
      IF k$=CHR$(0)+CHR$(98)
        help(help|)
        k$=""
      ENDIF
    UNTIL k$<>""
    IF k$="^" OR k$="π"
      IF k$="^"
        acc$="^"
      ENDIF
      IF k$="π"
        acc$="π"
      ENDIF
      k$=""
    ELSE
      IF k$<>"^" AND k$<>"π" AND acc$<>""
        IF k$="a" AND acc$="^"
          k$="Ä"
        ENDIF
        IF k$="A" AND acc$="^"
          k$="í"
        ENDIF
        IF k$="c" AND acc$="^"
          k$="Å"
        ENDIF
        IF k$="C" AND acc$="^"
          k$="â"
        ENDIF
        IF k$="e" AND acc$="^"
          k$="à"
        ENDIF
        IF k$="e" AND acc$="π"
          k$="ê"
        ENDIF
        IF k$="E" AND acc$="π"
          k$="ù"
        ENDIF
        IF k$="l" AND acc$="^"
          k$="É"
        ENDIF
        IF k$="L" AND acc$="^"
          k$="è" !143
        ENDIF
        IF k$="n" AND acc$="^"
          k$="Ñ"
        ENDIF
        IF k$="N" AND acc$="^"
          k$="ë"
        ENDIF
        IF k$="o" AND acc$="π"
          k$="¢"
        ENDIF
        IF k$="O" AND acc$="π"
          k$="õ"
        ENDIF
        IF k$="o" AND acc$="^"
          k$="ì"
        ENDIF
        IF k$="s" AND acc$="^"
          k$="Ü"
        ENDIF
        IF k$="S" AND acc$="^"
          k$="ã"
        ENDIF
        IF k$="z" AND acc$="π"
          k$="î" !148
        ENDIF
        IF k$="Z" AND acc$="π"
          k$="é"
        ENDIF
        IF k$="z" AND acc$="^"
          k$="•"
        ENDIF
        IF k$="Z" AND acc$="^"
          k$="†" !160 contre å 140
        ENDIF
        IF k$="i" AND acc$="^"
          k$="å"
        ENDIF
        acc$=""
      ENDIF
    ENDIF
    IF k$=CHR$(8) AND LEN(rep$)>0
      ~VQT_EXTENT(RIGHT$(rep$,1)+"_")
      rep$=MID$(rep$,1,LEN(rep$)-1)
      PBOX xr+xl-PTSOUT(2)+1+xp,yr-g*l,xr+xl+xp+1,yr-g*l+yl
      ~VQT_EXTENT(rep$)
      xl=PTSOUT(2)
      TEXT xr+xl+1,yr,"_"
      ' ~INP(2)
    ELSE
      IF k$>=" " AND k$<CHR$(183)
        ~VQT_EXTENT(k$)
        IF xr+xl+PTSOUT(2)<ml-g*l
          rep$=rep$+k$
        ELSE
          k$=""
        ENDIF
      ENDIF
    ENDIF
    IF k$<>"" AND k$<>CHR$(13) AND k$<>CHR$(8)
      TEXT xr+xl,yr,RIGHT$(rep$,1)+"_"
    ENDIF
    ~VQT_EXTENT(rep$)
    xl=PTSOUT(2)
    yl=PTSOUT(5)
  UNTIL k$=CHR$(13)
  DEFTEXT 1,0,0,11
  PBOX xr+xl,yr,xr+xl+xp+1,yr+yl
RETURN
> PROCEDURE affiche(texte$,xa,ya)
  DEFTEXT 1,,,22
  ~VQT_EXTENT(texte$)
  TEXT (640-PTSOUT(2))/2,ya,texte$
  BOUNDARY 1
  BOX (640-PTSOUT(2))/2-4,ya-22-4,(640-PTSOUT(2))/2+PTSOUT(2)+4,ya-22+PTSOUT(5)+4
  BOUNDARY 0
  ~INP(2)
  PBOX (640-PTSOUT(2))/2-4,ya-22-4,(640-PTSOUT(2))/2+PTSOUT(2)+4,ya-22+PTSOUT(5)+4
  DEFTEXT 1,,,11
RETURN
PROCEDURE initialisation
  DIM dec$(6),sens$(6),genre$(3),nombre$(2),b|(256),index%(1000)
  DIM ph_pl$(1000),ph_fr$(1000),ph$(1000)
  '
  ' Tri|=1 aucun ou Pol ; 2 = Fr
  '
  alpha2$="å†ÄíêùÅâÉèÑë¢õÜãàé•îÇÖäáABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
  tri|=1
  RESTORE alpha
  READ c$
  FOR i=0 TO 255
    b|(i)=i
  NEXT i
  WHILE c$<>"*"
    c=VAL("&"+c$)
    alpha$=alpha$+CHR$(c)
    READ c$
    b|(c)=LEN(alpha$)
  WEND
  ajout!=FALSE ! A-t-on ajouter des phrases dans la base ?
  '
  SETCOLOR 0,0,0,0
  '
  dec$(1)="Nominatif"
  dec$(2)="Genitif"
  dec$(3)="Datif"
  dec$(4)="Accusatif"
  dec$(5)="Instrumental"
  dec$(6)="Locatif"
  '
  sens$(1)="Le sujet"
  sens$(2)="de ..."
  sens$(3)="Ö ..."
  sens$(4)="C.o.d"
  sens$(5)="Prof, avec ..."
  sens$(6)="Au sujet de"
  '
  genre$(1)="ADAPTER : Masculin "
  genre$(2)="BIURKO : Neutre"
  genre$(3)="KSIAéKA : FÇminin"
  '
  nombre$(1)="Singulier"
  nombre$(2)="Pluriel"
  DEFFILL 1,0
  BOUNDARY 0
  ' a=128 c=129 e=130 l=131 n=132 o=133 s=134 z=135 z=136
  '       C=137                   O=138 S=139 Z=140 Z=142
declinaisons:
  DATA adapter,adaptera,adapterowi,adapter,adapterem,adapterze
  DATA adaptery,adapter¢w,adapterom,adaptery,adapterami,adapterach
  DATA biurko,biurka,biurku,biurko,biurkiem,biurku
  DATA biurka,biurek,biurkom,biurka,biurkami,biurkach
  DATA ksiÄîka,ksiÄîki,ksiÄîce,ksiÄîkê,ksiÄîkÄ,ksiÄîce
  DATA ksiÄîki,ksiÄîek,ksiÄîkom,ksiÄîki,ksiÄîkami,ksiÄîkach
  RESTORE declinaisons
  DIM table$(6,2,3)
  FOR i=1 TO 3
    FOR j=1 TO 2
      FOR k=1 TO 6
        READ table$(k,j,i)
        '      TEXT 213*(i-1),150+(k+(j-1)*6)*14+(j-1)*6,table$(k,j,i)
      NEXT k
    NEXT j
  NEXT i
  n%=VST_LOAD_FONTS(0)
  DEFTEXT 1,0,0,11,2
  DEFTEXT 1,16,0,44,2
  ~VQT_EXTENT("Francusko-polski")
  BOX 0,0,639,399
  DEFFILL 1,2,4
  PBOX 50,50,590,350
  GRAPHMODE 2
  TEXT (640-PTSOUT(2))/2+2,152,"Francusko-polski"
  DEFTEXT 0
  TEXT (640-PTSOUT(2))/2,150,"Francusko-polski"
  DEFTEXT 1,16,0,44,2
  ~VQT_EXTENT("Polsko-francuski")
  TEXT (640-PTSOUT(2))/2+5,255,"Polsko-francuski"
  DEFTEXT 0
  TEXT (640-PTSOUT(2))/2+3,253,"Polsko-francuski"
  GRAPHMODE 0
  BOX 48,48,592,352
  BOX 44,44,596,356
  DEFTEXT 1,0,0,11,4
  i=1
  REPEAT
    INC i
    ~VQT_NAME(i,f$)
  UNTIL f$="6x6 system font"
  p$="Fonts : "+STR$(i-2)
  p$=p$+"   Phrases : "
  '  p$=p$+"  RAM : "+STR$(FRE(0)\1024)+" Ko"
  '  p$=p$+"   Disk : "+STR$(DFREE(0)\1024)+" Ko"
  p2$="Thierry LOISEAU Ω 1994"
  ~VQT_EXTENT(p2$) ! Ω=189
  TEXT 632-PTSOUT(2),405-PTSOUT(5),p2$
  ~VQT_EXTENT(p$)
  charge_phrases
  DEFTEXT 1,0,0,7,5
  ~VQT_EXTENT("Gestion de la langue Polonaise")
  TEXT (640-PTSOUT(2))/2,400-PTSOUT(5),"Gestion de la langue Polonaise"
  DEFTEXT 1,0,0,11,2
  ~INP(2)
RETURN
> FUNCTION upper_chaine$(c$)
LOCAL e$,i|
FOR i|=1 TO LEN(c$)
  e$=MID$(c$,i|,1)
  IF e$>="a" AND e$<="z"
    e$=UPPER$(e$)
  ELSE
    SELECT ASC(e$)
    CASE 128
      e$=CHR$(146)
    CASE 144
      e$=CHR$(157)
    CASE 129
      e$=CHR$(137)
    CASE 131
      e$=CHR$(143)
    CASE 132
      e$=CHR$(145)
    CASE 133 ! Ö
      e$="A"
    CASE 138 ! ä
      e$="E"
    CASE 135 ! á
      e$="C"
    CASE 162
      e$=CHR$(155)
    CASE 134
      e$=CHR$(139)
    CASE 148
      e$=CHR$(142)
    CASE 165
      e$=CHR$(140)
    ENDSELECT
  ENDIF
  MID$(c$,i|,1)=e$
NEXT i|
RETURN c$
ENDFUNC
> FUNCTION lower_chaine$(c$)
LOCAL e$,i|
FOR i|=1 TO LEN(c$)
e$=MID$(c$,i|,1)
IF e$>="A" AND e$<="Z"
  e$=CHR$(ASC(e$)+32)
ENDIF
SELECT ASC(e$)
CASE 146
  e$=CHR$(128)
CASE 157
  e$=CHR$(144)
CASE 137
  e$=CHR$(129)
CASE 143
  e$=CHR$(131)
CASE 145
  e$=CHR$(132)
CASE 155
  e$=CHR$(162)
CASE 139
  e$=CHR$(134)
CASE 142
  e$=CHR$(148)
CASE 140
  e$=CHR$(165)
ENDSELECT
MID$(c$,i|,1)=e$
NEXT i|
RETURN c$
ENDFUNC
> FUNCTION sansponct$(c$)
LOCAL e$,i|
FOR i|=1 TO LEN(c$)
IF INSTR(alpha2$,MID$(c$,i|,1))>0
e$=e$+MID$(c$,i|,1)
ENDIF
NEXT i|
RETURN TRIM$(e$)
ENDFUNC
'
' M E N U ,   A U   R E V O I R ,   . . .
'
> PROCEDURE menu
choix=1
REPEAT
DEFTEXT 1,16,0,22,2
help|=7
CLS
p$="Menu"
~VQT_EXTENT(p$)
x=PTSOUT(2)
y=PTSOUT(5)
TEXT (639-x)/2,y,p$
DEFTEXT 1,5,0,11,4
p$="Spis rzeczy"
~VQT_EXTENT(p$)
TEXT (639-PTSOUT(2))/2,50,p$
DEFTEXT 1,0,0,13,3
BOUNDARY 1
DEFFILL 1,2,3
PBOX 110,60,525,381
DEFFILL 1,0
PBOX 120,70,515,371
'
TEXT 130,100,"JEU"
TEXT 130,150,"ComplÇment"
TEXT 130,200,"Traduction"
TEXT 130,250,"DÇclinaison"
TEXT 130,300,"DICTIONNAIRE"
TEXT 130,350,"Fin"
DEFTEXT 1,2
TEXT 370,100,"GRA"
TEXT 370,150,"UzupeÉnienie"
TEXT 370,200,"PrzekÉadaÅ"
TEXT 370,250,"Deklinacja"
TEXT 370,300,"SèOWNIK"
TEXT 370,350,"Koniec"
DEFTEXT 1,0,0,11,2
'
SELECT choix
CASE 1
BOX 123,73,512,118
BOX 127,77,508,114
GET 129,79,506,112,curseur$
PUT 129,79,curseur$,8
CASE 2
BOX 123,123,512,168
BOX 127,127,508,164
GET 129,129,506,162,curseur$
PUT 129,129,curseur$,8
CASE 3
BOX 123,173,512,218
BOX 127,177,508,214
GET 129,179,506,212,curseur$
PUT 129,179,curseur$,8
CASE 4
BOX 123,223,512,268
BOX 127,227,508,264
GET 129,229,506,262,curseur$
PUT 129,229,curseur$,8
CASE 5
BOX 123,273,512,318
BOX 127,277,508,314
GET 129,279,506,312,curseur$
PUT 129,279,curseur$,8
CASE 6
BOX 123,323,512,368
BOX 127,327,508,364
GET 129,329,506,362,curseur$
PUT 129,329,curseur$,8
ENDSELECT
'
REPEAT
REPEAT
  k$=INKEY$
  IF k$=CHR$(0)+CHR$(98)
    help(help|)
  ENDIF
UNTIL k$=CHR$(0)+"H" OR k$=CHR$(0)+"P" OR k$=CHR$(13)
COLOR 0
SELECT choix
CASE 1
  BOX 123,73,512,118
  BOX 127,77,508,114
  PUT 129,79,curseur$,3
CASE 2
  BOX 123,123,512,168
  BOX 127,127,508,164
  PUT 129,129,curseur$,3
CASE 3
  BOX 123,173,512,218
  BOX 127,177,508,214
  PUT 129,179,curseur$,3
CASE 4
  BOX 123,223,512,268
  BOX 127,227,508,264
  PUT 129,229,curseur$,3
CASE 5
  BOX 123,273,512,318
  BOX 127,277,508,314
  PUT 129,279,curseur$,3
CASE 6
  BOX 123,323,512,368
  BOX 127,327,508,364
  PUT 129,329,curseur$,3
ENDSELECT
IF k$=CHR$(0)+"H"
  DEC choix
  IF choix=0
    choix=6
  ENDIF
ENDIF
IF k$=CHR$(0)+"P"
  INC choix
  IF choix=7
    choix=1
  ENDIF
ENDIF
IF k$<>CHR$(13)
  COLOR 1
  SELECT choix
  CASE 1
    BOX 123,73,512,118
    BOX 127,77,508,114
    GET 129,79,506,112,curseur$
    PUT 129,79,curseur$,8
  CASE 2
    BOX 123,123,512,168
    BOX 127,127,508,164
    GET 129,129,506,162,curseur$
    PUT 129,129,curseur$,8
  CASE 3
    BOX 123,173,512,218
    BOX 127,177,508,214
    GET 129,179,506,212,curseur$
    PUT 129,179,curseur$,8
  CASE 4
    BOX 123,223,512,268
    BOX 127,227,508,264
    GET 129,229,506,262,curseur$
    PUT 129,229,curseur$,8
  CASE 5
    BOX 123,273,512,318
    BOX 127,277,508,314
    GET 129,279,506,312,curseur$
    PUT 129,279,curseur$,8
  CASE 6
    BOX 123,323,512,368
    BOX 127,327,508,364
    GET 129,329,506,362,curseur$
    PUT 129,329,curseur$,8
  ENDSELECT
ENDIF
UNTIL k$=CHR$(13)
IF k$=CHR$(13) AND choix<6
totncp=0
COLOR 1
bons=0
SELECT choix
CASE 1
  totbons=0
  lim_coups=jjeux
  totncp=0
  ncp=1
  REPEAT
    INC totncp
    r=INT(RND*100)
    IF r<23
      jeu_traduct(1)
    ELSE
      IF r>86
        jeu_decline(1)
      ELSE
        jeu_complete(1)
      ENDIF
    ENDIF
    totbons=totbons+bons
  UNTIL totncp=lim_coups
  affiche_result(bons*20/lim_coups)
CASE 2 ! ComplÇment
  lim_coups=jc
  jeu_complete(lim_coups)
  affiche_result(bons*20/lim_coups)
CASE 3 ! Traduction
  lim_coups=jt
  jeu_traduct(lim_coups)
  affiche_result(bons*20/lim_coups)
CASE 4 ! Declinaison
  lim_coups=jd
  jeu_decline(lim_coups)
  affiche_result(bons*20/lim_coups)
CASE 5 ! GESTION DICTIONNAIRE
  dico
ENDSELECT
ENDIF
UNTIL choix=6
RETURN
> PROCEDURE aurevoir
CLS
COLOR 1
DEFTEXT 1,0,0,22,2
BOX 50,50,590,350
BOX 48,48,592,352
BOX 44,44,596,356
DEFFILL 1,1
BOX 88,148,542,202
PBOX 90,150,540,200
GRAPHMODE 3
TEXT 100,183,"Do widzenia paÑstwu, do usÉyszenia !"
GRAPHMODE 0
IF ajout!
phrases.lst
sauve_phrases
ENDIF
FOR i=2 TO 33
DEFTEXT 1,2,0,i,2
~VQT_EXTENT("KONIEC")
TEXT (640-PTSOUT(2))/2,300,"KONIEC"
NEXT i
~VST_UNLOAD_FONTS(0)
RETURN
> PROCEDURE affiche_result(n)
LOCAL r$,n$
CLS
GRAPHMODE 2
DEFTEXT 1,16,0,22,2
n$=STR$(INT(n))+"/20"
IF n=0
r$="RÇsultat NUL"
ENDIF
IF n>0 AND n<5
r$="Träs mauvais rÇsultat"
ENDIF
IF n>4 AND n<7
r$="MÇdiocre rÇsultat"
ENDIF
IF n>6 AND n<10
r$="RÇsultat moyen"
ENDIF
IF n>9 AND n<12
r$="Assez bien"
ENDIF
IF n>11 AND n<16
r$="Bon rÇsultat !"
ENDIF
IF n>15 AND n<20
r$="Excellent rÇsultat !"
ENDIF
IF n=20
r$="BRAVO ! Bardzo dobrze !"
ENDIF
DEFTEXT 0,1,0,22,2
DEFFILL 1,2,4
PRBOX 106,106,534,294
~VQT_EXTENT(r$)
TEXT (640-PTSOUT(2))/2,180,r$
DEFTEXT 1
TEXT (640-PTSOUT(2))/2+4,182,r$
RBOX 104,104,536,296
RBOX 100,100,540,300
DEFTEXT 0,0,0,22,2
DEFFILL 1,0
~VQT_EXTENT(n$)
TEXT (640-PTSOUT(2))/2-1,250,n$
TEXT (640-PTSOUT(2))/2+1,250,n$
TEXT (640-PTSOUT(2))/2,250-1,n$
TEXT (640-PTSOUT(2))/2,250+1,n$
DEFTEXT 1
TEXT (640-PTSOUT(2))/2,250,n$
GRAPHMODE 0
DEFTEXT 1,0,0,11,4
~INP(2)
RETURN
'
> FUNCTION nombre_mot(c$)
'  DIM mot$(100),mot(100)
LOCAL debut,e$,fin,i
mot=0
FOR i=1 TO LEN(c$)
e$=MID$(c$,i,1)
IF debut=0 AND INSTR(alpha$+"-",e$)>0
debut=i
ENDIF
IF debut>0 AND fin=0 AND (INSTR(alpha$+"-",e$)=0 OR (INSTR(alpha$+"-",e$)>0 AND i=LEN(c$)))
fin=i
INC mot
' mot$(mot)=MID$(c$,debut,fin-debut-(i=LEN(c$)))
' mot(mot)=debut
debut=0
fin=0
ENDIF
NEXT i
RETURN mot
ENDFUNC
> FUNCTION retmot$(c$)
DIM mot$(100),mot(100)
LOCAL debut,e$,fin,i,mot
mot=0
FOR i=1 TO LEN(c$)
e$=MID$(c$,i,1)
IF debut=0 AND INSTR(alpha2$+"-",e$)>0
debut=i
ENDIF
IF debut>0 AND fin=0 AND (INSTR(alpha2$+"-",e$)=0 OR (INSTR(alpha2$+"-",e$)>0 AND i=LEN(c$)))
fin=i
INC mot
mot$(mot)=MID$(c$,debut,fin-debut-(i=LEN(c$)))
mot(mot)=debut
debut=0
fin=0
ENDIF
NEXT i
i=INT(RND*mot)+1
IF mot(i)>1
c$=LEFT$(c$,mot(i)-1)+"..."+MID$(c$,mot(i)+LEN(mot$(i)))
ELSE
c$="..."+MID$(c$,mot(i)+LEN(mot$(i)))
ENDIF
c$=c$+"|"+mot$(i)
ERASE mot$(),mot()
RETURN c$
ENDFUNC
'
' D I C T I O N N A I R E
'
> PROCEDURE dico
LOCAL k!,m!,rec$,rs$,it,tri,trouve!
rec$=SPACE$(1000)
help|=6
CLS
tri=0
DEFTEXT 1,0,0,11,4
BOX 0,345,639,399
BOX 2,347,637,397
LINE 105,347,105,397
LINE 205,347,205,397
LINE 305,347,305,397
LINE 405,347,405,397
LINE 505,347,505,397
TEXT 10,360,"F 1"
TEXT 10,375,"Corriger"
TEXT 10,390,"KorygowaÅ"
TEXT 110,360,"F 2"
TEXT 110,375,"Ajouter"
TEXT 110,390,"DodawaÅ"
TEXT 210,360,"F 3"
TEXT 210,375,"Supprimer"
TEXT 210,390,"UsuwaÅ"
TEXT 310,360,"F 4"
TEXT 310,375,"Rechercher"
TEXT 310,390,"PoszukiwaÅ"
TEXT 410,360,"F 5"
TEXT 410,375,"Trier"
TEXT 410,390,"PrzebieraÅ"
TEXT 550,375,"Return"
DEFTEXT 1,1,0,7,5
TEXT 90,330,"ORDRE DE TRI :"
TEXT 390,330,"RECHERCHE :"
DEFTEXT 1,0,0,22,2
DEFTEXT 1,16,0,22,2
p$="DICTIONNAIRE"
rep$=""
~VQT_EXTENT(p$)
x=PTSOUT(2)
y=PTSOUT(5)
TEXT (639-x)/2,y,p$
p$="Kieszonkowy sÉownik !"
DEFTEXT 1,5,0,11,4
~VQT_EXTENT(p$)
TEXT (639-PTSOUT(2))/2,50,p$
DEFFILL 1,0
BOUNDARY 0
'
l1=0
l2=1
l3=2
DEFTEXT 1,0,0,13,3
TEXT 50,190,ph_pl$(index%(l2))
TEXT 50,210,ph_fr$(index%(l2))
DEFTEXT 1,2
TEXT 50,250,ph_pl$(index%(l3))
TEXT 50,270,ph_fr$(index%(l3))
BOX 10,100,630,288
BOX 14,104,626,284
BOX 16,106,624,282
REPEAT
c!=FALSE
DEFTEXT 1,0,0,7,5
SELECT tri
CASE 0
TEXT 200,330,"SÇquentiel"
CASE 1
TEXT 200,330,"Polonais     "
CASE 2
TEXT 200,330,"Franáais     "
ENDSELECT
DEFTEXT 1,1,,11,4
TEXT 280,305,RIGHT$("000"+STR$(l2),4)+"/"+RIGHT$("000"+STR$(ptot),4)
DEFTEXT 1,2
REPEAT
k$=INKEY$
UNTIL INKEY$=""
REPEAT
k$=INKEY$
IF k$=CHR$(0)+"b"
help(help|)
DEFTEXT 1,2,,11,4
k$=""
ENDIF
xm=MOUSEX
ym=MOUSEY
k!=(k$=CHR$(0)+"H" AND l2>1) OR (k$=CHR$(0)+"P" AND l2<ptot) OR k$=CHR$(13)
k!=k! OR (k$>CHR$(0)+CHR$(58) AND k$<CHR$(0)+CHR$(64))
k!=k! OR k$="2" OR k$="8" OR k$="7" OR k$=CHR$(0)+"G"
k!=k! OR (k$=CHR$(3) AND rep$<>"")
m!=(MOUSEK=1 AND xm>16 AND xm<624 AND ym>347 AND ym<397)
UNTIL k! OR m!
IF k$=CHR$(0)+"H"
DEC l2
DEC l1
DEC l3
ENDIF
IF k$=CHR$(0)+"P"
INC l2
INC l1
INC l3
ENDIF
IF k$="8" ! shift Haut par trois
l2=MAX(1,l2-3)
l1=l2-1
l3=l2+1
k$=CHR$(0)+"H"
ENDIF
IF k$="2" ! shift Bas par trois
l2=MIN(ptot,l2+3)
l1=l2-1
l3=l2+1
k$=CHR$(0)+"H"
ENDIF
IF k$=CHR$(0)+"G" !       clr home
l2=1
l1=l2-1
l3=l2+1
k$=CHR$(0)+"H"
ENDIF
IF k$="7" ! shift clr home
l2=ptot
l1=l2-1
l3=l2+1
k$=CHR$(0)+"H"
ENDIF
IF k$=CHR$(3) OR k$=CHR$(0)+CHR$(62) OR (m! AND xm>305 AND xm<405) ! f4 : Rechercher
'
' Fenàtre de saisie RECHERCHE
'
GET 305,347,405,397,res$
PUT 305,347,res$,8
IF k$<>CHR$(3)
BOUNDARY 1
PBOX 38,168,602,220
'
DEFTEXT 1,0,0,11,4
GRAPHMODE 4
TEXT 280,179,"Rechercher"
GRAPHMODE 0
'
saisie_reponse(50,200,1,3,595,rep$)
BOUNDARY 0
ENDIF
IF rep$<>""
r$=@upper_chaine$(TRIM$(rep$))
k$=CHR$(0)+"H"
ci=l2
DEFTEXT 1,0,0,7,5
REPEAT
INC ci
c!=INSTR(@upper_chaine$(ph_fr$(index%(ci))),r$)>0
c!=c! OR INSTR(@upper_chaine$(ph_pl$(index%(ci))),r$)>0
IF ci<=ptot
  TEXT 490,330,RIGHT$("000"+STR$(ci),4)+"/"+RIGHT$("000"+STR$(ptot),4)
ENDIF
UNTIL ci>ptot OR c!
IF (NOT c!) AND l2-1<>0
ci=0
REPEAT
  INC ci
  c!=INSTR(@upper_chaine$(ph_fr$(index%(ci))),r$)>0
  c!=c! OR INSTR(@upper_chaine$(ph_pl$(index%(ci))),r$)>0
  TEXT 490,330,RIGHT$("000"+STR$(ci),4)+"/"+RIGHT$("000"+STR$(ptot),4)
UNTIL c! OR ci=l2-1
ENDIF
DEFTEXT 1,0,0,11,4
IF c!
l2=ci
l1=ci-1
l3=l2+1
ENDIF
ELSE
k$=""
ENDIF
PBOX 38,168,602,220
DEFTEXT 1,0,0,13,3
IF tri<2
TEXT 50,190,ph_pl$(index%(l2))
TEXT 50,210,ph_fr$(index%(l2))
ELSE
TEXT 50,190,ph_fr$(index%(l2))
TEXT 50,210,ph_pl$(index%(l2))
ENDIF
DEFTEXT 1,2
PUT 305,347,res$,3
ENDIF
IF k$=CHR$(0)+CHR$(60) OR (m! AND xm>105 AND xm<205) ! f2 : Ajouter
'
' Fenàtre de saisie AJOUTER
'
GET 105,347,205,397,res$
PUT 105,347,res$,8
BOUNDARY 1
PBOX 38,168,602,220
'
DEFTEXT 1,0,0,11,4
GRAPHMODE 4
IF tri<2
TEXT 265,179," Ajouter : Polonais "
ELSE
TEXT 265,179," Ajouter : Franáais "
ENDIF
GRAPHMODE 0
'
saisie_reponse(50,200,1,3,595,"")
k$=""
IF rep$<>""
rs$=rep$
BOUNDARY 1
PBOX 38,168,602,220
DEFTEXT 1,0,0,11,4
GRAPHMODE 4
IF tri<2
TEXT 265,179," Ajouter : Franáais "
ELSE
TEXT 265,179," Ajouter : Polonais "
ENDIF
GRAPHMODE 0
saisie_reponse(50,200,1,3,595,"")
'
IF rep$<>""
INC ptot
IF tri<2
  ph_fr$(ptot)=rep$
  ph_pl$(ptot)=rs$
ELSE
  ph_pl$(ptot)=rep$
  ph_fr$(ptot)=rs$
ENDIF
index%(ptot)=ptot
l2=ptot
l1=l2-1
l3=l2+1
ajout!=TRUE
IF tri>0
  DEC tri
  k$=CHR$(0)+CHR$(63)
ELSE
  k$=CHR$(0)+"H"
ENDIF
ELSE
k$=""
ENDIF
ENDIF
BOUNDARY 0
'
PBOX 38,168,602,220
IF k$<>CHR$(0)+CHR$(63)
DEFTEXT 1,0,0,13,3
IF tri<2
TEXT 50,190,ph_pl$(index%(l2))
TEXT 50,210,ph_fr$(index%(l2))
ELSE
TEXT 50,190,ph_fr$(index%(l2))
TEXT 50,210,ph_pl$(index%(l2))
ENDIF
ENDIF
DEFTEXT 1,2
PUT 105,347,res$,3
ENDIF
'
IF k$=CHR$(0)+CHR$(59) OR (m! AND xm>10 AND xm<105) ! f1 : Corriger
'
' Fenàtre de saisie CORRIGER
'
GET 2,347,105,397,res$
PUT 2,347,res$,8
BOUNDARY 1
PBOX 38,168,602,220
'
DEFTEXT 1,0,0,11,4
GRAPHMODE 4
IF tri<2
TEXT 260,179," Modifier : Polonais "
ELSE
TEXT 260,179," Modifier : Franáais "
ENDIF
GRAPHMODE 0
'
IF tri<2
saisie_reponse(50,200,1,3,595,ph_pl$(index%(l2)))
ELSE
saisie_reponse(50,200,1,3,595,ph_fr$(index%(l2)))
ENDIF
k$=""
IF rep$<>""
rs$=rep$
BOUNDARY 1
PBOX 38,168,602,220
DEFTEXT 1,0,0,11,4
GRAPHMODE 4
IF tri<2
TEXT 260,179," Modifier : Franáais "
ELSE
TEXT 260,179," Modifier : Polonais "
ENDIF
GRAPHMODE 0
IF tri<2
saisie_reponse(50,200,1,3,595,ph_fr$(index%(l2)))
ELSE
saisie_reponse(50,200,1,3,595,ph_pl$(index%(l2)))
ENDIF
'
IF rep$<>""
IF tri<2
  ph_fr$(index%(l2))=rep$
  ph_pl$(index%(l2))=rs$
ELSE
  ph_pl$(index%(l2))=rep$
  ph_fr$(index%(l2))=rs$
ENDIF
k$=CHR$(0)+"H"
ajout!=TRUE
IF tri>0
  DEC tri
  k$=CHR$(0)+CHR$(63)
ENDIF
ELSE
k$=""
ENDIF
ENDIF
BOUNDARY 0
'
PBOX 38,168,602,220
DEFTEXT 1,0,0,13,3
IF tri<2
TEXT 50,190,ph_pl$(index%(l2))
TEXT 50,210,ph_fr$(index%(l2))
ELSE
TEXT 50,190,ph_fr$(index%(l2))
TEXT 50,210,ph_pl$(index%(l2))
ENDIF
DEFTEXT 1,2
PUT 2,347,res$,3
ENDIF
'
IF k$=CHR$(0)+CHR$(61) OR (m! AND xm>205 AND xm<305) ! f3 : Supprimer
'
' Fenàtre de SUPPRESSION
'
GET 205,347,305,397,res$
PUT 205,347,res$,8
BOUNDARY 1
PBOX 38,168,602,220
'
DEFTEXT 1,0,0,11,4
GRAPHMODE 4
TEXT 260,179," Supprimer ? (o/n) "
GRAPHMODE 0
'
IF tri<2
TEXT 50,195,ph_pl$(index%(l2))
TEXT 50,210,ph_fr$(index%(l2))
ELSE
TEXT 50,195,ph_fr$(index%(l2))
TEXT 50,210,ph_pl$(index%(l2))
ENDIF
REPEAT
k$=UPPER$(INKEY$)
UNTIL k$<>""
IF k$="O"
DELETE ph_fr$(index%(l2))
DELETE ph_pl$(index%(l2))
IF index%(l3)>index%(l2)
index%(l2)=index%(l3)-1
ENDIF
DEC ptot
IF l2>ptot
l2=ptot
ENDIF
ajout!=TRUE
ENDIF
k$=CHR$(0)+"H"
IF k$="O" AND ajout!
k$=CHR$(0)+CHR$(63)
DEC tri
ENDIF
BOUNDARY 0
'
PBOX 38,168,602,220
DEFTEXT 1,0,0,13,3
IF (k$=CHR$(0)+CHR$(63) AND tri=1) OR (k$=CHR$(0)+"H" AND tri=2)
TEXT 50,190,ph_fr$(index%(l2))
TEXT 50,210,ph_pl$(index%(l2))
ELSE
TEXT 50,190,ph_pl$(index%(l2))
TEXT 50,210,ph_fr$(index%(l2))
ENDIF
DEFTEXT 1,2
PUT 205,347,res$,3
ENDIF
'
IF k$=CHR$(0)+CHR$(63) OR (m! AND xm>405 AND xm<505)        ! Trier
'
' Trier
'
GET 405,347,505,397,res$
PUT 405,347,res$,8
'      BOUNDARY 1
' PBOX 38,168,602,220
'
DEFTEXT 1,0,0,11,4
'
k$=CHR$(0)+"H"
INC tri
IF tri=3
tri=0
ENDIF
l2=index%(l2)
FOR it=1 TO ptot
SELECT tri
CASE 1
ph$(it)=ph_pl$(it) !@sansponct$(ph_pl$(it))
CASE 2
ph$(it)=ph_fr$(it) !@sansponct$(ph_fr$(it))
ENDSELECT
index%(it)=it
NEXT it
IF tri>0
QSORT ph$() WITH b|(),ptot+1,index%()
trouve!=FALSE
it=0
REPEAT
INC it
UNTIL index%(it)=l2
l2=it
ENDIF
l1=l2-1
l3=l2+1
'
' PBOX 38,168,602,220
DEFTEXT 1,0,0,13,3
IF tri<2
TEXT 50,190,ph_pl$(index%(l2))
TEXT 50,210,ph_fr$(index%(l2))
ELSE
TEXT 50,190,ph_fr$(index%(l2))
TEXT 50,210,ph_pl$(index%(l2))
ENDIF
DEFTEXT 1,2
PUT 405,347,res$,3
'
ENDIF
IF k$=CHR$(0)+"H" OR k$=CHR$(0)+"P"
PBOX 48,108,592,160
PBOX 48,168,592,220
PBOX 48,228,592,280
DEFTEXT 1,0,0,13,3
IF tri<2
TEXT 50,190,ph_pl$(index%(l2))
TEXT 50,210,ph_fr$(index%(l2))
ELSE
TEXT 50,190,ph_fr$(index%(l2))
TEXT 50,210,ph_pl$(index%(l2))
ENDIF
IF c!
GRAPHMODE 3
' DEFTEXT 1,8
IF tri<2
p1=190
p2=210
ELSE
p1=210
p2=190
ENDIF
IF tri=2
IF INSTR(@upper_chaine$(ph_fr$(index%(l2))),r$)>0
  ~VQT_EXTENT(LEFT$(ph_fr$(index%(l2)),INSTR(@upper_chaine$(ph_fr$(index%(l2))),r$)-1))
  TEXT 50+PTSOUT(2),p2,MID$(ph_fr$(index%(l2)),INSTR(@upper_chaine$(ph_fr$(index%(l2))),r$),LEN(r$))
  GRAPHMODE 4
  TEXT 50+PTSOUT(2),p2,MID$(ph_fr$(index%(l2)),INSTR(@upper_chaine$(ph_fr$(index%(l2))),r$),LEN(r$))
ELSE
  ~VQT_EXTENT(LEFT$(ph_pl$(index%(l2)),INSTR(@upper_chaine$(ph_pl$(index%(l2))),r$)-1))
  TEXT 50+PTSOUT(2),p1,MID$(ph_pl$(index%(l2)),INSTR(@upper_chaine$(ph_pl$(index%(l2))),r$),LEN(r$))
  GRAPHMODE 4
  TEXT 50+PTSOUT(2),p1,MID$(ph_pl$(index%(l2)),INSTR(@upper_chaine$(ph_pl$(index%(l2))),r$),LEN(r$))
ENDIF
ELSE
IF INSTR(@upper_chaine$(ph_pl$(index%(l2))),r$)>0
  ~VQT_EXTENT(LEFT$(ph_pl$(index%(l2)),INSTR(@upper_chaine$(ph_pl$(index%(l2))),r$)-1))
  TEXT 50+PTSOUT(2),p1,MID$(ph_pl$(index%(l2)),INSTR(@upper_chaine$(ph_pl$(index%(l2))),r$),LEN(r$))
  GRAPHMODE 4
  TEXT 50+PTSOUT(2),p1,MID$(ph_pl$(index%(l2)),INSTR(@upper_chaine$(ph_pl$(index%(l2))),r$),LEN(r$))
ELSE
  ~VQT_EXTENT(LEFT$(ph_fr$(index%(l2)),INSTR(@upper_chaine$(ph_fr$(index%(l2))),r$)-1))
  TEXT 50+PTSOUT(2),p2,MID$(ph_fr$(index%(l2)),INSTR(@upper_chaine$(ph_fr$(index%(l2))),r$),LEN(r$))
  GRAPHMODE 4
  TEXT 50+PTSOUT(2),p2,MID$(ph_fr$(index%(l2)),INSTR(@upper_chaine$(ph_fr$(index%(l2))),r$),LEN(r$))
ENDIF
ENDIF
GRAPHMODE 0
ENDIF
DEFTEXT 1,2
l1=l2-1
l3=l2+1
IF l1>0
IF tri<2
TEXT 50,130,ph_pl$(index%(l1))
TEXT 50,150,ph_fr$(index%(l1))
ELSE
TEXT 50,130,ph_fr$(index%(l1))
TEXT 50,150,ph_pl$(index%(l1))
ENDIF
ENDIF
IF l3<=ptot
IF tri<2
TEXT 50,250,ph_pl$(index%(l3))
TEXT 50,270,ph_fr$(index%(l3))
ELSE
TEXT 50,250,ph_fr$(index%(l3))
TEXT 50,270,ph_pl$(index%(l3))
ENDIF
ENDIF
ENDIF
UNTIL k$=CHR$(13) OR (m! AND xm>505)
'
FOR it=1 TO ptot
index%(it)=it
NEXT it
DEFTEXT 1,0,0,11,2
RETURN
'
' G E S T I O N   F I C H I E R
'
> PROCEDURE charge_phrases
OPEN "i",#1,"polski.dat"
WHILE NOT EOF(#1)
INC ptot
LINE INPUT #1,ph_fr$(ptot)
LINE INPUT #1,ph_pl$(ptot)
TEXT 8,405-PTSOUT(5),p$+STR$(ptot)
index%(ptot)=ptot
WEND
CLOSE
RETURN
> PROCEDURE sauve_phrases
OPEN "o",#1,"polski.dat"
FOR i=1 TO ptot
PRINT #1,ph_fr$(i)
PRINT #1,ph_pl$(i)
NEXT i
CLOSE
RETURN
'
> PROCEDURE clavier
REPEAT
k$=INKEY$
UNTIL k$<>""
PRINT ASC(RIGHT$(k$,1)),RIGHT$(k$,1),LEN(k$)
RETURN
> PROCEDURE help(p)
LOCAL sauve_ec$
GET 100,70,540,310,sauve_ec$
BOUNDARY 1
PBOX 100,70,540,310
BOUNDARY 0
DEFFILL 1,1
PBOX 102,72,538,308
DEFFILL 1,0
GRAPHMODE 3
DEFTEXT 1,16,0,13,3
TEXT 270,95,"H E L P"
DEFTEXT 1,0,0,11,4
IF p>2 AND p<6
TEXT 110,120,-420,"Pour obtenir les caractäres spÇciaux polonais Ö partir du clavier,"
TEXT 110,135,-420,"il suffit de frapper la touche "+CHR$(34)+"^"+CHR$(34)+" (accent circonflexe) ou bien le trÇma"
TEXT 110,150,"puis le caractäre voulu :"
DEFTEXT ,9
TEXT 110,180,"Exemple"
DEFTEXT ,0
TEXT 160,200,"PaÑstwo est frappÇ"
TEXT 330,200,"P a ^ n s t w o"
TEXT 160,215,"MaÉe"
TEXT 330,215,"M a ^ l e"
TEXT 160,230,"M¢wiÅ"
TEXT 330,230,"M (trÇma) o w i ^ c"
TEXT 160,245,"UczÄ siê"
TEXT 330,245,"U c z ^ a   s i (trÇma) e"
TEXT 110,270,-420,"Les caractäres franáais à, å et ì s'obtiennent de la màme faáon, mais"
TEXT 110,285,"les caractäres polonais ê , ¢ et î s'obtiennent par le trÇma."
DEFTEXT 1,4
TEXT 500,300,"suite"
DEFTEXT 1,0
~INP(2)
GRAPHMODE 0
DEFFILL 1,1
PBOX 102,102,538,308
GRAPHMODE 3
DEFFILL 1,0
ENDIF
SELECT p
CASE 1 ! Menu
CASE 2 ! Jeu
CASE 3 ! ComplÇment
DEFTEXT 1,9
TEXT 110,120,"COMPLETEZ LA PHRASE"
DEFTEXT 1,4
TEXT 110,135,"WypeÉniÅ brakujÄce sÉowa"
DEFTEXT 1,0
TEXT 280,135,": mettez les mots qui manquent"
TEXT 110,155,-420,"Il vous faut retrouver le ou les mot(s) manquant(s) de la phrase"
TEXT 110,170,"symbolisÇ(s) par une suite de trois points."
TEXT 110,200,"Deux mots au maximum sont Ö rechercher."
TEXT 110,228,-420,"Dans ce cas, saisir le premier suivi d'un espace ou d'une virgule,"
TEXT 110,243,"puis le second."
TEXT 110,270,"Vous pouvez le(s) saisir au choix en majuscule ou en minuscule."
CASE 4 ! Traduction
DEFTEXT 1,9
TEXT 110,120,"TRADUCTION"
DEFTEXT 1,4
TEXT 110,135,"PrzekÉadaÅ"
DEFTEXT 1,0
TEXT 110,155,-420,"Il est bien Çvident qu'une traduction en vaut toujours une autre et"
TEXT 110,170,-420,"qu'il serait difficile pour l'ordinateur de juger la qualitÇ de"
TEXT 110,185,"celle-ci !"
TEXT 110,205,"Le but de la manoeuvre est donc de restituer la traduction apprise."
TEXT 110,225,-420,"Conseil : lors de la prÇsentation d'une personne, il est plus correcte"
TEXT 110,240,"d'Çcrire "+CHR$(34)+"Voici mon fils"+CHR$(34)+" plutìt que "+CHR$(34)+"C'est mon fils"+CHR$(34)+" !"
TEXT 110,260,"Vous pouvez saisir la phrase en majuscule ou en minuscule."
TEXT 110,275,"L'ordinateur ne tient pas compte de la ponctuation."
CASE 5 ! DÇclinaison
DEFTEXT 1,9
TEXT 110,120,"DECLINAISON"
DEFTEXT 1,4
TEXT 110,135,"Deklinacja"
TEXT 190,155,"= le sujet du verbe"
TEXT 190,170,"= de qui, de quoi ? APPARTENANCE, POSSESSION"
TEXT 190,185,"= Ö qui, Ö quoi ? ATTRIBUTION, DESTINATION"
TEXT 190,200,"= complÇment d'objet direct"
TEXT 190,215,"= avec ..., traduit aussi la profession, nationalitÇ, qualitÇ"
TEXT 190,230,"= au sujet de... LIEU OU SE PASSE L'ACTION"
DEFTEXT 1,0
TEXT 110,155,"Nominatif"
TEXT 110,170,"GÇnitif"
TEXT 110,185,"Datif"
TEXT 110,200,"Accusatif"
TEXT 110,215,"Instrumental"
TEXT 110,230,"Locatif"
TEXT 110,260,"... et je passe le vocatif !"
TEXT 110,285,"Bref, dÇclinez bien, et faites attention au genre et au nombre !"
CASE 6 ! Dictionnaire
DEFTEXT 1,9
TEXT 110,120,"DICTIONNAIRE"
DEFTEXT 1,4
TEXT 110,135,"SÉownik"
DEFTEXT 1,1
TEXT 110,155,"Correction/Suppression/Trie : Positionnez la phrase"
DEFTEXT 1,0
TEXT 110,175,"F 1 Corriger = modification du polonais et/ou franáais"
TEXT 110,190,"F 3 Supprimer = suppression de la phrase pointÇe"
TEXT 110,205,"F 5 Trier = trie Polonais/Franáais/Ordre du fichier"
TEXT 138,220,"Lors du trie franáais, la phrase en franáais est placÇe en tàte"
TEXT 138,235,"Par dÇfaut, c'est l'ordre sÇquentiel du fichier qui est adoptÇ"
TEXT 110,260,"F 2 Ajouter = ajout d'une phrase en fin de fichier"
TEXT 110,280,"F 4 Rechercher = permet de rechercher la phrase la plus proche"
TEXT 138,295,"d'apräs une chaåne de caractäres (mot, portion de phrase)"
DEFAULT
TEXT 250,200,"Pas d'aide Ö ce niveau"
TEXT 290,230,"DÇsolÇ !"
ENDSELECT
DEFTEXT 1,0,0,22,2
GRAPHMODE 0
~INP(2)
PUT 100,70,sauve_ec$
RETURN
> PROCEDURE phrases.lst
OPEN "o",#1,"phrases.lst"
FOR i=1 TO ptot
PRINT #1,"DATA "+CHR$(34)+ph_pl$(i)+CHR$(34)
PRINT #1,"DATA "+CHR$(34)+ph_fr$(i)+CHR$(34)
NEXT i
CLOSE
RETURN
alpha:
DATA 21,22,23,24,25,26,27,28,29,2A,2B,2C,2D,2E,2F
DATA 30,31,32,33,34,35,36,37,38,39,3A,3B,3C,3D,3E,3F
DATA 40,41,B6,92,42,43,89,44,45,9D,46,47,48,49,4A,4B
DATA 4C,8F,4D,4E,91,4F,9B,50,51,52,53,8B,54,55,56,57
DATA 58,59,5A,8E,A0,61,85,80,62,63,87,81,64,65,82,88
DATA 8A,90,66,67,68,69,6A,6B,6C,83,6D,6E,84,6F,A2,93
DATA 70,71,72,73,86,74,75,97,76,77,78,79,7A,94,A5,7B
DATA 7C,7D,*
J'avais pris soin de demander à imprimer avec les caractères spéciaux polonais !

Thierry
HP-41C, HP-12C ; Casio FX-702P, FX-850P, FX-602P, FX-3900P, FX-4000P, FX-180Pv ;
TI 57 avec adaptation d'une pile LR9 et une originale, accus HS; Newton MP 120FR, MP 2100US, MP 130US...
[***Apple //e, 7100, 8500, Atari Mega ST1 ***], PB-540c, PISMO, [***CPC-6128, MO5***]... et bien d'autres trucs

[--- plus ---]
http://astrophoto.free.fr/
Répondre

Retourner vers « Atari ST et compagnie »