Un package pour grille de mots croisés

Tout ce qui concerne le langage TeX/LaTeX et ses variantes. Ce langage est utilisable sur le forum via les balises tex.
[participation réservée aux membres inscrits]
Règles du forum
Merci de soigner la rédaction de vos messages et de consulter ce sujet avant de poster. Pensez également à utiliser la fonction recherche du forum.
evariste_G
Utilisateur chevronné
Utilisateur chevronné
Messages : 1472
Inscription : vendredi 19 décembre 2008, 19:13
Statut actuel : Enseignant
Localisation : Bordeaux

Un package pour grille de mots croisés

Message non lu par evariste_G »

Bonjour.
Je ne sais pas si certains d'entre vous sont cruciverbistes, mais j'ai fait un petit package afin de faciliter la création de grilles de mots croisés.
Si certaines personnes sont intéressées pour le tester, ce serait avec plaisir que je le modifierai (si mes capacités le permettent ...) en fonction des besoins et remarques.

Le lien direct : http://www.mathweb.fr/packages-crosswords.html.
Mathématiques, LaTeX et Python : https://www.mathweb.fr
Cours particuliers de maths par webcam: https://courspasquet.fr
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 1974
Inscription : samedi 29 décembre 2007, 00:58

Re: Un package pour grille de mots croisés

Message non lu par projetmbc »

Bonjour,
merci pour ce package. Dans un genre similaire, il y a aussi ceci (voir les derniers exemples).
maurice
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 399
Inscription : jeudi 25 mars 2010, 13:49

Re: Un package pour grille de mots croisés

Message non lu par maurice »

Merci pour cette extension, je pratique à l'occasion les mots croisés.
Dans la même optique, une extension asymptote de Gilles pour les mots croisés. On en a parlé dans ce sujet.
Maurice
Asymptote :
----> Démarrage rapide : http://cgmaths.fr/Atelier/Asymptote/Asymptote.html
----> Documentation 3D : http://www.mathco.tuxfamily.org et si ça ne marche pas, essayez la version pdf
evariste_G
Utilisateur chevronné
Utilisateur chevronné
Messages : 1472
Inscription : vendredi 19 décembre 2008, 19:13
Statut actuel : Enseignant
Localisation : Bordeaux

Re: Un package pour grille de mots croisés

Message non lu par evariste_G »

projetmbc a écrit :Bonjour,
merci pour ce package. Dans un genre similaire, il y a aussi ceci (voir les derniers exemples).
J'ai beau regarder, le dernier exemple (dé déplié) ne ressemble pas à une grille de mots croisés.
maurice a écrit : Merci pour cette extension, je pratique à l'occasion les mots croisés.
Dans la même optique, une extension asymptote de Gilles pour les mots croisés. On en a parlé dans ce sujet.
Maurice
N'étant pas un utilisateur d'Asymptote, j'ai loupé ce fil. Cela dit, d'après ce que j'ai lu, je préfère ma syntaxe (of course :) ) ainsi que les résultats possibles que l'on peut obtenir rien qu'en mettant ce que l'on veux aux styles TiKZ. Mais ce n'est qu'une préférence personnelle bien sûr, et je ne critiquerai sûrement pas le résultat sous Asympote, surtout qu'il se peut qu'il fasse plus de choses que l'extension que je propose ... A voir donc :)
Mathématiques, LaTeX et Python : https://www.mathweb.fr
Cours particuliers de maths par webcam: https://courspasquet.fr
un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 904
Inscription : vendredi 12 juin 2009, 22:35
Localisation : Chambéry

Re: Un package pour grille de mots croisés

Message non lu par un bon petit »

Plusieurs remarques pour ce "package" :
  • tout d'abord pourquoi diable utiliser tikz pour quelque chose qui n'en a aucun besoin (c'est à croire que tikz va être nécessaire pour composer un paragraphe bientôt.). Il me semble que pour des cases noires, la commande \rule s'en sort très bien. Je ne parle même pas des zigouigouis horribles que permet tikz pour les cases "noires" customisées et j'espère que ces horreurs ne sont pas la justification pour utiliser tikz-gouigoui
  • pourquoi ne pas écrire ce package en tex pur, tout le permet puisque xstring (bien que non nécessaire ici) est écrit en tex et tikz (non nécessaire et non désiré) est écrit en tex aussi
  • la commande pour écrire des mots est tout sauf pratique. Je verrais davantage une syntaxe proche de celle des tableaux (car une grille de mots croisés est un tableau) du genre :

    Code : Tout sélectionner

    \motcroises{%
    ARCENCIEL\\
    P~AN~UN~U\\
    PARENT~NL\\
    etc...
    }
    où le caractère "~" (ou n'importe quel autre) représente une case noire. On peut aussi fixer "-" pour écrire une case vide.
  • il est d'usage de mettre le fichier source de la documentation et ce n'est pas fait ici.
Bref, je trouve que l'idée est bonne, et la chose intéressante à programmer mais la réalisation avec tikz, heu : non ! Mais enfin, c'est un avis personnel :mrgreen:
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 1974
Inscription : samedi 29 décembre 2007, 00:58

Re: Un package pour grille de mots croisés

Message non lu par projetmbc »

evariste_G a écrit :
projetmbc a écrit :Bonjour,
merci pour ce package. Dans un genre similaire, il y a aussi ceci (voir les derniers exemples).
J'ai beau regarder, le dernier exemple (dé déplié) ne ressemble pas à une grille de mots croisés.
Voici un exemple :

Code : Tout sélectionner

% Source : http://forum.mathematex.net/latex-f6/dessiner-un-de-a-plat-en-forme-de-croix-t12462-20.html#p120914

% WARNING : use Xelatex compilation.

\documentclass[10pt]{article}
	\usepackage[T1]{fontenc}
	\usepackage{xstring}
	\usepackage{pstricks}
	\usepackage[frenchb]{babel}

	\makeatletter
		\def\name@env{dice}
		\newif\if@display@frame
		\newcommand\calc@maxcol[1]{%
			\def\max@col{0}%
			\def\remain@body{#1\\}%
			\loop
				\StrBefore\remain@body{\noexpand\\}[\current@line]%
				\StrCount{\current@line&}&[\tmp@col]%
				\ifnum\tmp@col>\max@col\let\max@col\tmp@col\fi
				\StrBehind\remain@body{\noexpand\\}[\remain@body]%
				\unless\ifx\remain@body\@empty
			\repeat
		}

		\long\def\get@body@tab#1\end{%
			\expandafter\def\expandafter\body@tab\expandafter{\body@tab#1}\test@end@body
		}

		\newcommand\test@end@body[1]{%
			\def\temp@{#1}%
			\ifx\temp@\name@env
				\def\temp@{\end{#1}}%
				\expandafter\temp@
			\else
				\expandafter\def\expandafter\body@tab\expandafter{\body@tab\end{#1}}%
				\expandafter\get@body@tab
			\fi
		}

		\newcommand\dice@grab@arg[2][]{%
			\let\body@tab\@empty
			\edef\temp@{{framearc=0.2\ifx\@empy#1\@empty\else,#1\fi}}\expandafter\psset\temp@
			\def\dice@arg{#2}%
			\get@body@tab
		}

		\newenvironment{dice}{%
			\expandarg
			\@makeother\!%
			\dice@grab@arg
		}%
		{%
			\unless \ifx\@body@tab\@empty
				\IfEndWith\body@tab{\noexpand\\ }%
				{\StrGobbleRight\body@tab2[\body@tab]}%
				{\IfEndWith\body@tab{\noexpand\\}{\StrGobbleRight\body@tab1[\body@tab]}\relax}%
				\expandafter\calc@maxcol\expandafter{\body@tab}%
				\edef\tab@preamble{{*{\max@col}{c}}}%
				\StrSubstitute{\expandafter\cell@start\body@tab\cell@end}&{\noexpand\cell@end&\cell@start}[\body@tab]%
				\StrSubstitute\body@tab{\noexpand\\}{\noexpand\cell@end\\\cell@start}[\body@tab]%
				\def\arraystretch{0}\tabcolsep\z@
				\expandafter\tabular\tab@preamble\body@tab\endtabular
			\fi
		}

		\def\cell@start#1\cell@end{%
			\StrDel{\noexpand#1}\space[\cell@content]%
			\unless\ifx\@empty\cell@content
			\IfBeginWith\cell@content[%
				{\StrBetween\cell@content[][\opt@color]%
				\StrBehind\cell@content][\cell@content]}%
				{\let\opt@color\@empty}%
				\pspicture(1,1)%
					\if @\expandafter\expandafter\expandafter\noexpand\expandafter\@car\cell@content\@nil
						\psframe[linestyle=none,fillstyle=none](0,0)(1,1)%
						\rput[c](0.5,0.5){\hbox to \z@{\hss\dice@arg\expandafter\@gobble\cell@content\hss}}%
					\else
						\edef\opt@color{\unless\ifx\opt@color\@empty[fillstyle=solid,fillcolor=\opt@color]\fi}%
						\expandafter\psframe\opt@color(0,0)(1,1)%
						\rput[c](0.5,0.5){\hbox to \z@{\hss\dice@arg\cell@content\hss}}%
					\fi
				\endpspicture
			\fi
		}
	\makeatother

\begin{document}
	\LaTeX{} mangez-en :
	\begin{dice}[framearc=0,
				dimen=middle,
				unit=0.5cm]{\bfseries}
		   &  M                    \\
		L  &  A  &  T  &  E  &  X  \\
		   &  N                    \\
		   &  G                    \\
		   &  E  &  N              \\
		   &  Z
	\end{dice}
	\qquad
	\begin{dice}[framearc=0,
				dimen=middle,
				unit=0.75cm,
				fillstyle=solid,
				fillcolor=blue!66]{\bfseries}
		   &  M                    \\
		L  &  A  &  T  &  E  &  X  \\
		   &  N                    \\
		   &  G                    \\
		   &  E  &  N              \\
		   &  Z
	\end{dice}

	Une grille comme dans le jeu Slam : 
	\begin{dice}[framearc=0,
				dimen=middle,
				unit=0.75cm,
				fillstyle=solid,
				fillcolor=blue!66]{\bfseries}
		    &     &  @1                  \\
		    &     &  M                   \\
		@2  &  L  &  A  &  T  &  E  &  X \\
		    &     &  N                   \\
		    &     &  G                   \\
		    &     &  E  &  N  &  @3      \\
		    &     &  Z
	\end{dice}
\end{document}
On obtient une grille de mots mêlés.
projetmbc
Utilisateur chevronné
Utilisateur chevronné
Messages : 1974
Inscription : samedi 29 décembre 2007, 00:58

Re: Un package pour grille de mots croisés

Message non lu par projetmbc »

Au passage, une commande gérant les mots et leur définition en même temps serait géniale. Dans ce cas, la syntaxe de evariste_g sera très utile.
Dernière modification par projetmbc le jeudi 24 mars 2011, 22:44, modifié 1 fois.
evariste_G
Utilisateur chevronné
Utilisateur chevronné
Messages : 1472
Inscription : vendredi 19 décembre 2008, 19:13
Statut actuel : Enseignant
Localisation : Bordeaux

Re: Un package pour grille de mots croisés

Message non lu par evariste_G »

projetmbc a écrit :On obtient une grille de mots mêlés.
Mots mêlés oui ... pas mots croisés :wink:
projetmbc a écrit :Au passage, une commande gérant les mots et leur définition en même temps serait génial. Dans ce cas, la syntaxe de evariste_g sera très utile.
En effet, ça serait bien ! Je vais m'y pencher.

Pour ce qui est de la programmation, je répète que je ne suis pas TEXien ... Donc la raison pour laquelle j'ai fait ça avec TiKZ, c'est que je ne savais pas faire autrement et j'ai trouvé que ce n'était pas non plus très lourd, il ne faut pas exagérer.

Pour ce qui est du fichier source de la DOC, je dirais juste que ce n'est pas parce que la majorité des gens regarde TF1 que je vais le faire ... Je ne trouve pas utile de mettre le fichier source, donc je ne le fais pas, et franchement, je me fiche de l'usage :D

Donc, pour les puristes, je précise que je ne suis pas un expert ... Mais est-ce pour cela que je dois ne rien faire ? Je ne pense pas ... Je fais avec ce que je connais, c'est tout à fait naturel ...
Mathématiques, LaTeX et Python : https://www.mathweb.fr
Cours particuliers de maths par webcam: https://courspasquet.fr
un bon petit
Utilisateur éprouvé
Utilisateur éprouvé
Messages : 904
Inscription : vendredi 12 juin 2009, 22:35
Localisation : Chambéry

Re: Un package pour grille de mots croisés

Message non lu par un bon petit »

evariste_G a écrit :Pour ce qui est de la programmation, je répète que je ne suis pas TEXien...
J'avais remarqué... Un tikzien de plus :mrgreen:
Donc la raison pour laquelle j'ai fait ça avec TiKZ, c'est que je ne savais pas faire autrement et j'ai trouvé que ce n'était pas non plus très lourd, il ne faut pas exagérer.
Je trouve ça très léger, justement.
Pour ce qui est du fichier source de la DOC, je dirais juste que ce n'est pas parce que la majorité des gens regarde TF1 que je vais le faire
Vu la qualité de l'argument, on dirait.
... Je ne trouve pas utile de mettre le fichier source, donc je ne le fais pas, et franchement, je me fiche de l'usage :D
Je, je, je. Moi avec mes certitudes contre tous les autres. Na !
evariste_G
Utilisateur chevronné
Utilisateur chevronné
Messages : 1472
Inscription : vendredi 19 décembre 2008, 19:13
Statut actuel : Enseignant
Localisation : Bordeaux

Re: Un package pour grille de mots croisés

Message non lu par evariste_G »

No comment ...
Mathématiques, LaTeX et Python : https://www.mathweb.fr
Cours particuliers de maths par webcam: https://courspasquet.fr
juju32
Utilisateur débutant
Utilisateur débutant
Messages : 1
Inscription : lundi 20 septembre 2021, 16:07
Statut actuel : Parent d'élève

Re: Un package pour grille de mots croisés

Message non lu par juju32 »

projetmbc a écrit : jeudi 24 mars 2011, 21:03
evariste_G a écrit :
projetmbc a écrit :Bonjour,
merci pour ce package. Dans un genre similaire, il y a aussi ceci (voir les derniers exemples).
J'ai beau regarder, le dernier exemple (dé déplié) ne ressemble pas à une grille de mots croisés.
Voici un exemple :

Code : Tout sélectionner

% Source : http://forum.mathematex.net/latex-f6/dessiner-un-de-a-plat-en-forme-de-croix-t12462-20.html#p120914

% WARNING : use Xelatex compilation.

\documentclass[10pt]{article}
	\usepackage[T1]{fontenc}
	\usepackage{xstring}
	\usepackage{pstricks}
	\usepackage[frenchb]{babel}

	\makeatletter
		\def\name@env{dice}
		\newif\if@display@frame
		\newcommand\calc@maxcol[1]{%
			\def\max@col{0}%
			\def\remain@body{#1\\}%
			\loop
				\StrBefore\remain@body{\noexpand\\}[\current@line]%
				\StrCount{\current@line&}&[\tmp@col]%
				\ifnum\tmp@col>\max@col\let\max@col\tmp@col\fi
				\StrBehind\remain@body{\noexpand\\}[\remain@body]%
				\unless\ifx\remain@body\@empty
			\repeat
		}

		\long\def\get@body@tab#1\end{%
			\expandafter\def\expandafter\body@tab\expandafter{\body@tab#1}\test@end@body
		}

		\newcommand\test@end@body[1]{%
			\def\temp@{#1}%
			\ifx\temp@\name@env
				\def\temp@{\end{#1}}%
				\expandafter\temp@
			\else
				\expandafter\def\expandafter\body@tab\expandafter{\body@tab\end{#1}}%
				\expandafter\get@body@tab
			\fi
		}

		\newcommand\dice@grab@arg[2][]{%
			\let\body@tab\@empty
			\edef\temp@{{framearc=0.2\ifx\@empy#1\@empty\else,#1\fi}}\expandafter\psset\temp@
			\def\dice@arg{#2}%
			\get@body@tab
		}

		\newenvironment{dice}{%
			\expandarg
			\@makeother\!%
			\dice@grab@arg
		}%
		{%
			\unless \ifx\@body@tab\@empty
				\IfEndWith\body@tab{\noexpand\\ }%
				{\StrGobbleRight\body@tab2[\body@tab]}%
				{\IfEndWith\body@tab{\noexpand\\}{\StrGobbleRight\body@tab1[\body@tab]}\relax}%
				\expandafter\calc@maxcol\expandafter{\body@tab}%
				\edef\tab@preamble{{*{\max@col}{c}}}%
				\StrSubstitute{\expandafter\cell@start\body@tab\cell@end}&{\noexpand\cell@end&\cell@start}[\body@tab]%
				\StrSubstitute\body@tab{\noexpand\\}{\noexpand\cell@end\\\cell@start}[\body@tab]%
				\def\arraystretch{0}\tabcolsep\z@
				\expandafter\tabular\tab@preamble\body@tab\endtabular
			\fi
		}

		\def\cell@start#1\cell@end{%
			\StrDel{\noexpand#1}\space[\cell@content]%
			\unless\ifx\@empty\cell@content
			\IfBeginWith\cell@content[%
				{\StrBetween\cell@content[][\opt@color]%
				\StrBehind\cell@content][\cell@content]}%
				{\let\opt@color\@empty}%
				\pspicture(1,1)%
					\if @\expandafter\expandafter\expandafter\noexpand\expandafter\@car\cell@content\@nil
						\psframe[linestyle=none,fillstyle=none](0,0)(1,1)%
						\rput[c](0.5,0.5){\hbox to \z@{\hss\dice@arg\expandafter\@gobble\cell@content\hss}}%
					\else
						\edef\opt@color{\unless\ifx\opt@color\@empty[fillstyle=solid,fillcolor=\opt@color]\fi}%
						\expandafter\psframe\opt@color(0,0)(1,1)%
						\rput[c](0.5,0.5){\hbox to \z@{\hss\dice@arg\cell@content\hss}}%
					\fi
				\endpspicture
			\fi
		}
	\makeatother

\begin{document}
	\LaTeX{} mangez-en :
	\begin{dice}[framearc=0,
				dimen=middle,
				unit=0.5cm]{\bfseries}
		   &  M                    \\
		L  &  A  &  T  &  E  &  X  \\
		   &  N                    \\
		   &  G                    \\
		   &  E  &  N              \\
		   &  Z
	\end{dice}
	\qquad
	\begin{dice}[framearc=0,
				dimen=middle,
				unit=0.75cm,
				fillstyle=solid,
				fillcolor=blue!66]{\bfseries}
		   &  M                    \\
		L  &  A  &  T  &  E  &  X  \\
		   &  N                    \\
		   &  G                    \\
		   &  E  &  N              \\
		   &  Z
	\end{dice}

	Une grille comme dans le jeu Slam : 
	\begin{dice}[framearc=0,
				dimen=middle,
				unit=0.75cm,
				fillstyle=solid,
				fillcolor=blue!66]{\bfseries}
		    &     &  @1                  \\
		    &     &  M                   \\
		@2  &  L  &  A  &  T  &  E  &  X \\
		    &     &  N                   \\
		    &     &  G                   \\
		    &     &  E  &  N  &  @3      \\
		    &     &  Z
	\end{dice}
\end{document}
On obtient une grille de mots mêlés.
Bonjour tout le monde.

J'arrive un peu tard puisque ce sujet à 10 ans. Mais je cherche exactement ce qui était proposé dans ce post.

Petit problème : le lien ne fonctionne plus, quelqu'un aurait il de quoi proposer un générateur de grilles de mots croisés ou de mots fléchés?
Je possède déjà les solutions et les définitions, je cherche simplement à générer les grilles.

Je vous remercie!