Mots Croisés, Sudoku, Mots fléchés,Scrabble.

Transcription

Mots Croisés, Sudoku, Mots fléchés,Scrabble.
MOTS CROISES, SUDOKU, MOTS FLECHES, SCRABBLE.
Objectif:
Tout éditer depuis son éditeur de programmes préféré!..
Mots croisés:
La dernière version consistait à considérer la grille comme un tableau (n,p) de type string[][]
Il suffisait de colorer en noir certaines cases et de remplir (ou pas!)les autres avec des lettres.
Dans cette version où la saisie des données est simplifiée, chaque case est une frame et la grille
un tableau de frames de type: frame[]. Aussi simplement que pour un tableau on peut colorer et écrire
dans les frames.
L’édition de ce tableau s’effectue à l’aide de la fonction: edittabfr(...)
Pour plus de renseignements sur la création et l’utilisation des frames:
Galerie G. Marris (Frames et pictures)
La documentation officielle. page46.. pour tester les fonctions associées.
Sudoku:
Tableau dans une frame.
Mots fléchés:
Tableau de frames.
Scrabble:
Tableau de frames.
Concernant les programmes:
Le listing produisant le .PDF contient du code pour saisir les données, tracer les grilles.. et du code
pour éditer en détail les résultats.
Pour s’y retrouver plus facilement si vous débutez en programmation Asymptote.. ci-joint des listings simplifiés.
Le chargement du module est alors inutile et les lignes concernant les éditions détaillées sont supprimées.
Pour tester il suffira de charger les listings, de rentrer vos données aux lignes indiquées et de compiler..
Version simplifiée (en .pdf): MOTS CROISES.
Version simplifiée (en .asy) de Mots Croises à tester..
Version simplifiée (en .pdf) du SUDOKU
Version simplifiée (en .asy) du Sudoku à tester..
Version simplifiée (en .pdf) de MOTS FLECHES.
Version simplifiée (en .asy) de Mots Fléchés à tester..
SCRABBLE en .pdf
SCRABBLE en .asy
Les frames permettent d’éditer rapidement textes, tableaux, graphiques.. depuis son éditeur de programmes.
Ci-joint quelques rappels si intéressé..
.PDF Un complément sur les frames.(Une version sans module à charger.)
Version .asy: frametableauframe.asy
MOTS CROISES.
Extrait de Marianne (7-13 Septembre 2013) Auteur: B. Hannuna.
(Définitions et grille.)
HORIZONTALEMENT
1) Comme quoi 312 plus 320 peuvent faire 41
2) Ne semble pas devoir perturber l’écervelé
3) Demande une identité • Ne fit aucun bruit si ce n’est un bruit de klaxon • Matières appliquées
4) Son château se mire dans l’Indre • Circule au Nigéria
5) Aimer le piano
6) Graces à Dieu • Terme de propriétaire
7) Mal logé
8) Haut de l’Angleterre • Doublé au cinéma dans un film réaliste • Introduit une certaine discipline
9) Qui a l’air particulièrement grave
10) Peut-on y vivre sans y être? Voilà la question.
VERTICALEMENT
I) Fait vraiment mauvais effet
II) Provisions de bouche • C’est parfois la foire
III) Femme protectrice • Element de portée • Bande qui se taille
IV) En mer ou en l’air • Sans queue ni tête
V) A la même origine que certains fûts • Verts pour le poireau
VI) Balayeur asiatique • Mis au pas
VII) Montrai en exemple • Terme de propriétaire
VIII) Transpire à l’oreille • Est dans la nature • Article courant
IX) Il n’y a pas de quoi en faire tout un plat • Bénéficiaire d’un certain crédit
X) On peut se le voir reprocher alors qu’on ne fait rien.
I
1
2
3
4
5
6
7
8
9
10
II
III
IV
V
VI
VII
VIII
IX
X
La Dépêche du Midi.(21/08/13)
Saisie pour l’édition des grilles et grille des solutions.
Colonne des saisies:
s=Saisie des données:
string nomMC="";
int nbligne=12, nbcolonne=12;
string grilleMC=
"1,3,5,7,9,11
0
1,10
6
1,4,9
6,8,12
1,4
5,11
1,3,7
10
1,5
5,10";
I
II
III
IV
V
VI
VII
VIII
IX
X
XI
XII
I
II
III
IV
V
VI
VII
VIII
IX
X
XI
XII
1
2
3
4
5
6
7
8
9
10
11
12
string numcolonne="I,II,III,IV,V,VI,VII,VIII,IX,X,XI,XII";
string numligne="1,2,3,4,5,6,7,8,9,10,11,12";
Saisie des solutions:
string solutionMC=
"CDVSGO
VATICINATION
TROUPEAUBD
MAIRECLASSE
SPSITECES
STOUTALAD
RUAGRAIRES
BOXEUSITEE
PCLEDESIR
CHALUTIERRI
EGOTONIFIE
ISISESTESS";
1
2
V
3
4
M
5
6
S
7
8
B
9
10
Rq. les éditions des grilles et
grilles des solutions ne sont que
des successions de "copier/coller"..
Cf. listing.
C
C
I
V
S
G
A
T
I
C
I
N
A
T
T
R
O
U
P
E
A
U
A
I
R
E
C
L
A
S
P
T
E
T
O
R
U
O
X
P
11
12
D
S
U
I
T
A
E
A
I
O
N
B
D
S
S
E
C
E
S
L
A
D
E
G
R
A
I
R
U
S
I
T
E
D
E
S
C
L
E
U
T
I
E
R
H
A
L
E
G
O
T
O
N
I
S
I
S
E
S
T
E
Codes d’édition (La fonction d’édition est la même pour les deux grilles. Cf. listing.)
Grille: fr=grillesolutionMC(12,12,grilleMC,"",numligne,numcolonne);fr=scale(0.8)*fr;
Solution: fr=grillesolutionMC(12,12,grilleMC,solutionMC,numligne,numcolonne);
O
F
S
E
I
R
R
I
I
E
S
S
AGRANDISSEMENT.
Rq.: En cas de problèmes visuels.
Les tableaux sortant dans des frames il devient facile de les agrandir en utilisant les transformations.
La grille.
I
1
2
3
4
5
6
7
8
9
10
11
12
II
III
IV
V
VI
VII
VIII
IX
X
XI
XII
La grille des solutions.
I
1
2
V
M
5
6
S
7
8
B
9
10
C
I
IV
V
D
VI
VII
V
VIII
IX
S
T
I
C
I
N
A
T
T
R
O
U
P
E
A
U
A
I
R
E
C
L
A
S
P
T
E
T
O
R
U
O
X
S
U
I
T
A
E
A
X
XI
G
A
P
11
12
III
C
3
4
II
I
XII
O
O
N
B
D
S
S
E
C
E
S
L
A
D
E
G
R
A
I
R
U
S
I
T
E
D
E
S
C
L
E
U
T
I
E
R
H
A
L
E
G
O
T
O
N
I
S
I
S
E
S
T
E
F
S
E
I
R
R
I
I
E
S
S
La grille des solutions des Mots Fléchés (Le Populaire du centre. Sept.2012)
se programme comme une grille solution de Mots Croisés.
Saisie des solutions:
string solutionMF=
"IUVTAA
OMOISSIONREPOS
PLAISIRENTES
TAINENIGMETA
TETARDOPERA
MINETROUEIS
ESTRESSPARI
TNTEHASIEAH
TERNESERRES
RESIDAITASTER
TORLAPSITE
ARENICOLEPOTE
HESSEORGANE
FESSPENCERSC
TCAENENAPO
RENANCARESSE
UNITANARTUE
PRENEUSEADORE";
La saisie clavier des numéros
des cases de définition et la saisie
des solutions permettent d’éditer
facilement cette grille.
(cf. listing.)
1
1.
2.
O
T
5.
6.
M
7.
8.
T
R
A
13.
14.
F
15.
16.
17.
18.
P
6
7
V
8
9
10
I
T
11
12
13
A
14
A
I
S
S
I
O
N
R
E
P
O
S
P
L
A
I
S
I
R
E
N
T
E
S
A
I
N
E
N
I
G
M
E
T
A
T
E
T
A
R
D
O
P
E
A
S
I
N
E
T
E
S
T
R
E
H
R
R
O
U
E
S
S
A
S
I
E
E
R
R
E
S
A
S
T
E
R
I
T
E
P
O
T
E
E
I
P
A
N
T
T
E
R
N
E
S
E
S
I
D
A
I
T
T
O
R
L
A
P
R
E
N
I
C
O
L
E
H
E
S
S
E
O
R
G
A
N
E
S
S
P
E
N
C
E
R
S
C
A
E
N
E
N
A
S
T
R
5
M
11.
12.
4
U
E
9.
10.
3
I
3.
4.
2
S
E
N
A
N
C
A
R
E
U
N
I
T
A
N
A
R
R
E
N
E
S
E
U
A
D
S
R
I
A
H
C
P
O
S
E
R
T
U
E
O
R
E
nbligne=18;nbcolonne=14;
string numligne="1.,2.,3.,4.,5.,6.,7.,8.,9.,10.,11.,12.,13.,14.,15.,16.,17.,18.";
string numcolonne="1,2,3,4,5,6,7,8,9,10,11,12,13,14";
Codes d’édition
fr=scale(0.8)*fr;
Solution: fr=grillesolutionMC(nbligne,nbcolonne,grilleMC,solutionMF,numligne,numcolonne);
SUDOKU.
Saisie des données.
string snumcase="2-4,6-6,8-8
2-3,4-7,8-9
3-5,4-1,9-2
7-3
4-6,6-9
2-6,6-2
1-3,7-4
1-1,4-5,7-7
2-2,6-8,9-6";
Code d’édition:
frame fr0=sudoku0(snumcase);add(fr0,position);
Grille de SUDOKU.
6
4
3
8
7
9
5 1
2
3
6
6
9
2
3
4
1
5
2
7
8
6
AGRANDISSEMENT.
Grille de SUDOKU.
6
4
3
8
7
9
5 1
2
3
6
6
9
2
3
4
5
1
2
7
8
6
MOTS FLECHES.
Saisie des données.
string sdonnees="1, Voyait*En ville,flbfld;3,Allai à l’Eau*Gardas,fldptb; 5,Attachai*Mark en Sigle,fldptb;7,Tourne Mal,fld
0
1, Grec*Tête, flbptd ; 7, Dépense,ptb
5, Poisson*Enchanté,ptbptd
1, Chef russe*Ici,flbfld ; 6,Dans*Ile en GB, ptbptd
3, Pied*En pente,ptbptd
1,Dans*Rejointe,flbptd ; 4,Pour une/pantoufle,ptd
0";
Codage:
Huit lignes et sur chaque ligne les définitions des colonnes:
séparateur de colonne : ";" (on peut modifier: cf.listing.)
numéro de colonne , définition(s), type de case
Séparateur des valeurs dans une colonne: "," (modifiable.)
Si ligne vide, numéro de colonne : 0
Code d’édition du tableau:
frame fr=editionmotfleche(sdonnees,penfondcase=rgb(1,0.84,0)); fr=scale(0.7)*fr;
add(fr,position);
//Si on veut en palegrey:frame fr=editionmotfleche(sdonnees);
Mots Fléchés. 96/Marianne/7-13 sept. 2013
Voyait
Allai à l’Eau
En ville
Gardas
Attachai
Mark en Sigle
Tourne Mal
Grec
Dépense
Tête
Poisson
Enchanté
Chef russe
Dans
Ici
Ile en GB
Pied
En pente
Dans
Rejointe
Pour une
pantoufle
AGRANDISSEMENT.
Voyait
Allai à l’Eau
En ville
Gardas
Attachai
Mark en Sigle
Tourne Mal
Grec
Dépense
Tête
Poisson
Enchanté
Chef russe
Dans
Ici
Ile en GB
Pied
En pente
Dans
Rejointe
Pour une
pantoufle
CREATION d’une Gille Colorée.
(Sans quitter son éditeur de programmes..)
Ajout d’une fonction de création de grille.
Utilisation de la même fonction pour les grilles colorées et Mots Croisés.
B
C
D
I
C
U
L
E
R
I
O
M
B
I
L
E
R
A
L
C
I
E
E
L
S
E
V
E
N
T
R
O
P
E
R
A
L
U
Z
E
R
N
E
C
I
P
E
U
P
A
S
T
I
R
E
N
E
R
E
I
S
A
D
R
E
I
string sgrillevide=
"————–5———-5–
–5———-5—-5
——5—
-5—–5–
—5-5———–5—–5—-";
A
S
P
I
E
M
A
R
I
N
E
T
E
T
E
A
T
A
N
G
E
E
T
string sgrille=
"VENTRICULE
OPERA5RIOM
LUZERNE5BI
CI5PEUPLER
ASTI5REAL5
NEREIS5CIE
I5ADRET5EL
SPI5E5ANSE
MARINAGE5I
ETETE5ETES";
I
E
S
Grille colorée avec quelques lettres..
A
B
C
D
E
F
G
H
I
J
K
X
Y
Z
T
Il resterait entre autre...
L’amélioration du graphisme et des couleurs...L’ajout des textes dans les cases colorées..
Mais là, il vaut mieux utiliser les classiques! PS,Gimp..avec les calques à la place des frames!)
Tout cela est sans grand intérêt sauf à montrer si vous débutez en programmation Asymptote:
L’utilité de la fonction textefr(..) pour éditer rapidement un texte de plusieurs nlignes...
l’utilité de la fonctions split(..) pour saisir les données..
L’utilité de la fonction edittabfr(..) pour "rentrer" un tableau de frames dans une frame.
L’utilité de la fonction editVtfr(..) pour gérer les éditions des frames et les newpage()..
Et finalement!.. qu’il n’est pas trop compliqué de créer et d’éditer des frames qui peuvent contenir
(comme déjà signalé)des textes, des tableaux, des graphiques, des figures.. et même les 4 à la fois!..
Si intéressé... quelques rappels.
.PDF Un complément sur les frames.(Une version sans module à charger.)
Version .asy frametableauframe.asy