Subversion Repositories wimsdev

Rev

Rev 18061 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
4137 bpr 1
type=game
13715 obado 2
textarea="data instruction"
3
iEdit="instruction"
4137 bpr 4
 
12172 mquerol 5
:Juego del ahorcado
6
Se trata de adivinar una palabra proponiendo letras según el principio del juego del ahorcado.
13478 obado 7
</p><p class="wims_credits">
15179 lemaire 8
Autor del modelo: <a href="mailto:bernadette.m.riou@orange.fr">Bernadette Perrin-Riou</a>
4137 bpr 9
</p>
13478 obado 10
:%%%%%%%%%%%%%%%%%      ATENCIÓN      %%%%%%%%%%%%%%%%%%%%
4137 bpr 11
 
13478 obado 12
Elimina la cabecera anterior si borra las etiquetas para el modelo!
13
(Son las líneas que comienzan con un ':'.)
14
En caso contrario el ejercicio puede no funcionar bajo Createxo.
4137 bpr 15
 
13478 obado 16
:%%%%%%%% Parámetros del ejemplo a redefinir %%%%%%%%%%%%%%%%%
12172 mquerol 17
:\title{Juego del ahorcado}
18
:\author{Bernadette Perrin-Riou}
19
:\email{bpr@math.u-psud.fr}
5724 bpr 20
:\credits{}
13478 obado 21
 
12172 mquerol 22
:Enunciado
23
Enunciado del ejercicio
24
\text{instruction=Encontrar la palabra ofreciendo letras una a una.}
4137 bpr 25
 
12172 mquerol 26
:Comentario general
27
Texto que se muestra al final del ejercicio, independientemente del resultado.
28
\text{feedback=Encontraste la palabra}
4137 bpr 29
 
12172 mquerol 30
:Comentario de fracaso
31
Texto que se muestra al final del ejercicio, cuando no se encontró la palabra.
16445 bpr 32
\text{echec=¡Has perdido!}
5722 bpr 33
 
12172 mquerol 34
:Mensaje sobre el número de intentos restantes
5722 bpr 35
 
12172 mquerol 36
\text{message0=Tiene derecho a XXXX errores}
5722 bpr 37
 
12172 mquerol 38
:Tipo de diseño
39
Elección del diseño: "Ahorcado", "Tarjetas rojas" o "Calaveras"
40
\text{type=item(2,3 (Calaveras),
41
	2 (Tarjeta_roja, Tarjeta_verde),
42
	1 (Ahorcado))}
15691 bpr 43
:Options
16445 bpr 44
Las opciones pueden ser: <span class="tt">noaccent</span> (no toma en cuenta acentos), <span class="tt">pista</span> (se muestran la primera y la última letra).
15691 bpr 45
\text{option=}
12172 mquerol 46
:Datos principales
47
Coloque en la primera columna las palabras en minúsculas y en la segunda una posible indicación.
48
En el caso de grupos de palabras, reemplace el espacio en blanco con un <span class="tt">_</span>.
16445 bpr 49
\text{data=elefante,un animal
50
candelabro, la primera letra es c
51
gaviota, en la playa
52
ola, en la playa
12172 mquerol 53
}
5722 bpr 54
 
13478 obado 55
:%%%%%%%%%%%%%% Nada que modificar hasta el enunciado %%%%%%%%%%%%%%%%
12172 mquerol 56
\text{Indication=Indicación}
57
\text{motatrouver=Palabra a encontrar}
58
\text{proposer=Proponer una letra minúscula}
5722 bpr 59
\text{typename=wims(declosing wims(word 2 to -1 of \type))}
60
\text{type=wims(word 1 of \type)}
61
\text{typename=wims(words2items wims(nospace \typename))}
8512 bpr 62
\text{typename=slib(oef/blank _,,\typename)}
4137 bpr 63
\text{mot=randrow(\data)}
18074 bpr 64
\text{mot=wims(embraced randitem \mot)}
4137 bpr 65
\text{indication=\mot[2..-1]}
66
\text{mot=\mot[1]}
5722 bpr 67
\text{jok=&mdash;}
13715 obado 68
\css{<style>
5722 bpr 69
.centrer{text-align:center;}
15691 bpr 70
.seen {opacity:.5;font-weight: bold;}
71
.lettres{display: flex;
72
flex-wrap: wrap;
73
justify-content: center;}
74
.lettres span{background-color:orange;font-size:20px;font-family:monospace;padding:0 .5em;}
5722 bpr 75
.w {padding : 0 2px;}
76
.word {background-color:orange;font-size:20px;white-space: nowrap;}
77
.forget {background-color:red;color:white;font-size:20px;}
78
.good {color:green;}
79
.bad  {color:red;}
80
.indication {font-size:16px;font-weight:bold;}
81
.pendu {background-color:#CCC;width:80%;margin:auto;min-height:54px;padding:3px;}
82
.reponse, .lettres, .question {margin:1em;}
83
 
84
.dessin{border-right:1px dashed gray;}
85
.small_col{width:25%;}
86
.large_col{max-width:75%;}
87
.floating{float:left;}
88
 
15691 bpr 89
.type2 span {background-color:green;color:green; display: inline-block; min-height: 40px;width: 40px;padding:0 .5em;margin:2px;}
5722 bpr 90
.type2 span.red {background-color:red;color:red;}
91
.type1 {min-width:210px;}
92
.type2,.type3  {min-width:80px;}
4137 bpr 93
</style>
94
}
95
\if{\type=1}{
5722 bpr 96
 \text{dessin=xrange 0,10
4137 bpr 97
yrange 0,10
18061 bpr 98
segments black, 0,1,2,1
99
polyline black,1,1,1,8,5,8,5,6.5
4137 bpr 100
linewidth 3}
101
\matrix{pendu=ellipse 5,6,1.5,1.5,red
18074 bpr 102
polyline red, 5,5.4,5,3
103
polyline red,4,4,5,5
104
polyline red,6,4,5,5
105
polyline red,6,2,5,3
106
polyline red,4,2,5,3}
5722 bpr 107
 
108
\text{Dessin=<img src="draw(200,200
17234 bpr 109
\dessin)" alt="\typename[1]">}
4137 bpr 110
}
5722 bpr 111
 
112
\text{contenu=&nbsp;}
4137 bpr 113
\if{\type=2}{
5722 bpr 114
  \text{contenu=\typename[2]}
4137 bpr 115
}
5722 bpr 116
 
117
\if{\type>1}{
118
 \text{order=shuffle(6)}
119
 \text{dessin=
120
 <div class="pendu">
15691 bpr 121
  <span id="essai_4">\contenu</span>
122
  <span id="essai_5">\contenu</span>
123
  <span id="essai_6">\contenu</span>
124
  <span id="essai_1">\contenu</span>
125
  <span id="essai_2">\contenu</span>
126
  <span id="essai_3">\contenu</span>
127
 </div>
5722 bpr 128
 }
129
 \text{Dessin=\dessin}
4137 bpr 130
}
131
 
132
\text{nb=wims(charcnt \mot)}
133
\text{mot1=wims(words2items wims(singlespace \mot))}
134
\text{mot=wims(replace internal , by _ in \mot1)}
135
\text{mot=wims(text expand \mot using 10)}
136
\text{mot=wims(words2items \mot)}
4755 bpr 137
\text{blanc=position(_,\mot)}
4137 bpr 138
\text{MOT=wims(makelist \jok for x=1 to \nb)}
4755 bpr 139
\for{a in \blanc}{
140
  \text{MOT=wims(replace item number \a by _ in \MOT)}
141
}
15691 bpr 142
option première et dernière lettre
143
\if{hint isin \option}{
144
  \text{MOT=wims(replace item number 1 by \mot[1] in \MOT)}
145
  \text{MOT=wims(replace item number -1 by \mot[-1] in \MOT)}
146
}
147
 
5722 bpr 148
\text{MOT1=wims(makelist <span class="w">x</span> for x in \MOT) }
4137 bpr 149
\text{MOT2=wims(items2words \MOT1)}
4755 bpr 150
\text{MOT2=wims(replace internal _ by &nbsp; in \MOT2)}
4137 bpr 151
 
152
\text{nstep=r1}
153
 
5722 bpr 154
\text{lettre1=a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}
15691 bpr 155
\text{accents=à,ä,â,é,è,ê,ë,î,ï,ô,ö,û,ù,ç}
156
\text{ponctu=?,!,-}
157
\text{lettre1=\lettre1,\accents,\ponctu}
158
\text{accents=wims(replace internal ,  by in \accents)}
159
\text{ponctu=wims(replace internal ,  by in \ponctu)}
5722 bpr 160
\text{lettre=wims(makelist <span class="notseen">x</span> for x in \lettre1)}
15691 bpr 161
\text{lettre2=wims(replace internal ,  by in \lettre)}
4137 bpr 162
\nextstep{\nstep}
163
\text{cnt=0}
164
 
5722 bpr 165
\integer{reste=6 - \cnt}
166
\text{message=wims(replace internal XXXX by <strong>\reste</strong> in \message0)}
15691 bpr 167
\if{noaccent isin \option}{
168
  \text{motnoaccent=wims(deaccent \mot)}
169
}{\text{motnoaccent=\mot}}
170
 
5722 bpr 171
\statement{
15703 obado 172
	<div class="instruction">\instruction</div>
15691 bpr 173
	\if{\indication!=\empty}{
174
	<p><em>\Indication&nbsp;: <span class="indication">\indication</span></em></p>
175
	}
176
  <div class="floating small_col centrer type\type">
177
    <div class="dessin">
178
      <p>\message</p>
179
      \Dessin
180
    </div>
5722 bpr 181
  </div>
15691 bpr 182
  <div class="floating large_col centrer">
183
    <div class="question">\motatrouver&nbsp;:<span class="word">\MOT2</span></div>
184
    <div class="reponse">
185
      <label for="reply\step">\proposer&nbsp;:</label>
186
      \embed{r\step,1
187
        default
188
        maxlength="1" pattern="[a-z\accents\ponctu]" style="text-align:center;"}
189
    </div>
190
    <div class="lettres">\lettre2</div>
191
  </div>
4137 bpr 192
}
193
 
194
\answer{}{\rep1}{type=case}{option=noanalyzeprint}
195
\answer{}{\rep2}{type=case}{option=noanalyzeprint}
196
\answer{}{\rep3}{type=case}{option=noanalyzeprint}
197
\answer{}{\rep4}{type=case}{option=noanalyzeprint}
198
\answer{}{\rep5}{type=case}{option=noanalyzeprint}
199
\answer{}{\rep6}{type=case}{option=noanalyzeprint}
200
\answer{}{\rep7}{type=case}{option=noanalyzeprint}
201
\answer{}{\rep8}{type=case}{option=noanalyzeprint}
202
\answer{}{\rep9}{type=case}{option=noanalyzeprint}
203
\answer{}{\rep10}{type=case}{option=noanalyzeprint}
204
\answer{}{\rep11}{type=case}{option=noanalyzeprint}
205
\answer{}{\rep12}{type=case}{option=noanalyzeprint}
206
\answer{}{\rep13}{type=case}{option=noanalyzeprint}
207
\answer{}{\rep14}{type=case}{option=noanalyzeprint}
208
\answer{}{\rep15}{type=case}{option=noanalyzeprint}
209
\answer{}{\rep16}{type=case}{option=noanalyzeprint}
210
\answer{}{\rep17}{type=case}{option=noanalyzeprint}
211
\answer{}{\rep18}{type=case}{option=noanalyzeprint}
212
\answer{}{\rep19}{type=case}{option=noanalyzeprint}
213
\answer{}{\rep20}{type=case}{option=noanalyzeprint}
214
\answer{}{\rep21}{type=case}{option=noanalyzeprint}
215
\answer{}{\rep22}{type=case}{option=noanalyzeprint}
216
\answer{}{\rep23}{type=case}{option=noanalyzeprint}
217
\answer{}{\rep24}{type=case}{option=noanalyzeprint}
218
\answer{}{\rep25}{type=case}{option=noanalyzeprint}
219
\answer{}{\rep26}{type=case}{option=noanalyzeprint}
220
\answer{}{\rep27}{type=case}{option=noanalyzeprint}
221
\answer{}{\rep28}{type=case}{option=noanalyzeprint}
222
\answer{}{\rep29}{type=case}{option=noanalyzeprint}
223
\answer{}{\rep30}{type=case}{option=noanalyzeprint}
224
 
225
\text{rep=\rep1,\rep2,\rep3,\rep4,\rep5,\rep6,\rep7,\rep8,\rep9,\rep10,\rep11,\rep12,\rep13,\rep14,
4754 bpr 226
 \rep15,\rep16,\rep17,\rep18,\rep19,\rep20,\rep21,\rep22,\rep23,\rep24,
227
 \rep25,\rep26,\rep27,\rep28,\rep29,\rep30}
4137 bpr 228
 
5722 bpr 229
 
230
\text{w_class=good}
231
 
232
\if{\rep[\step-1] notitemof \mot }{
233
 \integer{cnt=\cnt+1}
234
 \integer{reste=6 - \cnt}
235
 \text{w_class=bad}
236
 \if {\reste > 0}{
237
  \text{message=wims(replace internal XXXX by <strong>\reste</strong> in \message0)}
238
 }
239
 \if {\reste <= 0} {
240
  \text{message=<strong class="oef_condbad">\echec</strong>}
241
 }
242
 \if{\type = 1}{
243
 \text{dessin=\dessin
244
  \pendu[\cnt;]}
245
 \text{Dessin=<img src="draw(200,200
17234 bpr 246
 \dessin)" alt="Vous avez fait \cnt erreur(s). Vous avancez vers la pendaison...">}
5722 bpr 247
 }
248
 
249
 \if{\type>1}{
250
  \integer{h=\order[\cnt]}
251
  \text{jj=<span id="essai_\h">\contenu</span>}
252
  \if{\type=2}{
253
   \text{dessin=wims(replace internal \jj by <span class="red">\typename[1]</span> in \dessin)}
254
  }
255
  \if{\type=3}{
17234 bpr 256
   \text{dessin=wims(replace internal \jj by <img src="gifs/images/skull_and_crossbones50.png" alt="\typename[1]"> in \dessin)}
5722 bpr 257
  }
8512 bpr 258
  \text{Dessin=\dessin}
5722 bpr 259
 }
260
}
261
 
15691 bpr 262
%% On affiche differement les lettres deja tapées
4137 bpr 263
\text{z=position(\rep[\step-1],\lettre1)}
5722 bpr 264
\text{lettre=wims(replace internal item number \z by <span class="seen \w_class">\rep[\step-1]</span> in \lettre)}
15691 bpr 265
\text{lettre2=wims(items2words \lettre)}
5722 bpr 266
 
4137 bpr 267
\text{z=position(\rep[\step-1],\mot)}
268
\for{k in \z}{
269
  \text{MOT=wims(replace internal item number \k by \rep[\step-1] in \MOT)}
270
}
15691 bpr 271
\if{noaccent isin \option}{
272
  \text{z=position(\rep[\step-1],\motnoaccent)}
273
  \for{k in \z}{
274
    \text{MOT=wims(replace internal item number \k by \mot[\k] in \MOT)}
275
  }
276
}
5722 bpr 277
\text{MOT1=wims(makelist <span class="w">x</span> for x in \MOT)}
4137 bpr 278
\text{MOT2=wims(items2words \MOT1)}
4755 bpr 279
\text{MOT2=wims(replace internal _ by &nbsp; in \MOT2)}
4137 bpr 280
\text{nstep=}
281
\text{nstep=\jok isitemof \MOT and \step<30 and \cnt<6 ? r \step}
282
\if{\step>30 or \cnt>=6}{
283
  \text{w=position(\jok,\MOT)}
284
  \for{a in \w}{
5722 bpr 285
    \text{MOT1=wims(replace internal item number \a by <span class="w forget">\mot[\a]</span> in \MOT1)}
4137 bpr 286
  }
287
  \text{MOT2=wims(items2words \MOT1)}
4755 bpr 288
  \text{MOT2=wims(replace internal _ by &nbsp; in \MOT2)}
4137 bpr 289
}
290
 
16445 bpr 291
\condition{¿Encontró la palabra?}{\jok notitemof \MOT}
4137 bpr 292
\condition{}{\cnt<=3}{option=hide}
293
\condition{}{\cnt<=4}{option=hide}