| 1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "xhtml11.dtd"> |
|---|
| 2 | <html xmlns="http://www.w3.org/1999/xhtml" |
|---|
| 3 | xml:lang="en"><head><meta name="author" content="Created with Quandary by Half-Baked Software, registered to Martin Holmes."></meta><meta name="keywords" content="Quandary, Hot Potatoes, Half-Baked Software, Windows, University of Victoria"></meta> |
|---|
| 4 | |
|---|
| 5 | <!-- This is the core XHTML code which is used to build the exercise page. --> |
|---|
| 6 | |
|---|
| 7 | <link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" /> |
|---|
| 8 | <meta name="DC:Creator" content="Martin Holmes" /> |
|---|
| 9 | <meta name="DC:Title" content="Hot Potatoes 6 Tutorial" /> |
|---|
| 10 | |
|---|
| 11 | |
|---|
| 12 | <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> |
|---|
| 13 | |
|---|
| 14 | <title> |
|---|
| 15 | Hot Potatoes 6 Tutorial |
|---|
| 16 | </title> |
|---|
| 17 | |
|---|
| 18 | <!-- Made with executable version 2.0 Release 8 Build 0 --> |
|---|
| 19 | |
|---|
| 20 | <style type="text/css"> |
|---|
| 21 | |
|---|
| 22 | |
|---|
| 23 | /* This is the CSS stylesheet used in the exercise. */ |
|---|
| 24 | /* Elements in square brackets are replaced by data based on configuration settings when the exercise is built. */ |
|---|
| 25 | |
|---|
| 26 | |
|---|
| 27 | body{ |
|---|
| 28 | font-family: Arial,sans-serif; |
|---|
| 29 | background-color: #d9d9d9; |
|---|
| 30 | color: #000000; |
|---|
| 31 | |
|---|
| 32 | margin-right: 5%; |
|---|
| 33 | margin-left: 5%; |
|---|
| 34 | font-size: small; |
|---|
| 35 | |
|---|
| 36 | } |
|---|
| 37 | |
|---|
| 38 | p{ |
|---|
| 39 | text-align: left; |
|---|
| 40 | margin: 0px; |
|---|
| 41 | font-size: small; |
|---|
| 42 | } |
|---|
| 43 | |
|---|
| 44 | div, span, td{ |
|---|
| 45 | font-size: small; |
|---|
| 46 | color: #000000; |
|---|
| 47 | } |
|---|
| 48 | |
|---|
| 49 | div.Titles{ |
|---|
| 50 | padding: 10px; |
|---|
| 51 | text-align: center; |
|---|
| 52 | color: #000000; |
|---|
| 53 | } |
|---|
| 54 | |
|---|
| 55 | button{ |
|---|
| 56 | display: inline; |
|---|
| 57 | } |
|---|
| 58 | |
|---|
| 59 | .ExerciseTitle{ |
|---|
| 60 | font-size: large; |
|---|
| 61 | color: #000000; |
|---|
| 62 | } |
|---|
| 63 | |
|---|
| 64 | div#Timer{ |
|---|
| 65 | padding: 6px; |
|---|
| 66 | margin-left: auto; |
|---|
| 67 | margin-right: auto; |
|---|
| 68 | text-align: center; |
|---|
| 69 | } |
|---|
| 70 | |
|---|
| 71 | span#TimerText{ |
|---|
| 72 | padding: 6px; |
|---|
| 73 | border-width: 1px; |
|---|
| 74 | border-style: solid; |
|---|
| 75 | font-weight: bold; |
|---|
| 76 | display: none; |
|---|
| 77 | } |
|---|
| 78 | |
|---|
| 79 | div.ControlButtons{ |
|---|
| 80 | text-align: center; |
|---|
| 81 | } |
|---|
| 82 | |
|---|
| 83 | .Instructions{ |
|---|
| 84 | margin-top: 1em; |
|---|
| 85 | } |
|---|
| 86 | |
|---|
| 87 | .DecisionPointTitle{ |
|---|
| 88 | font-size: medium; |
|---|
| 89 | } |
|---|
| 90 | |
|---|
| 91 | .DecisionPointText{ |
|---|
| 92 | text-align: left; |
|---|
| 93 | margin: auto; |
|---|
| 94 | } |
|---|
| 95 | |
|---|
| 96 | div.Assets{ |
|---|
| 97 | margin: 20px; |
|---|
| 98 | } |
|---|
| 99 | |
|---|
| 100 | table.AssetTable{ |
|---|
| 101 | border-width: 3px; |
|---|
| 102 | border-style: double; |
|---|
| 103 | border-color: #000000; |
|---|
| 104 | padding: 5px; |
|---|
| 105 | } |
|---|
| 106 | |
|---|
| 107 | table.AssetTable th{ |
|---|
| 108 | background-color: #000000; |
|---|
| 109 | color: #ffffff; |
|---|
| 110 | padding: 5px; |
|---|
| 111 | } |
|---|
| 112 | |
|---|
| 113 | div.LinkList{ |
|---|
| 114 | margin-top: 10px; |
|---|
| 115 | } |
|---|
| 116 | |
|---|
| 117 | table.LinkTable{ |
|---|
| 118 | margin-left: auto; |
|---|
| 119 | margin-right: auto; |
|---|
| 120 | text-align: left; |
|---|
| 121 | } |
|---|
| 122 | |
|---|
| 123 | .FeedbackText{ |
|---|
| 124 | color: #000000; |
|---|
| 125 | } |
|---|
| 126 | |
|---|
| 127 | table.DPTable{ |
|---|
| 128 | margin-left: auto; |
|---|
| 129 | margin-right: auto; |
|---|
| 130 | border-width: 0px; |
|---|
| 131 | padding: 10px; |
|---|
| 132 | vertical-align: top; |
|---|
| 133 | } |
|---|
| 134 | |
|---|
| 135 | div.Feedback { |
|---|
| 136 | background-color: #d9d9d9; |
|---|
| 137 | left: 33%; |
|---|
| 138 | width: 34%; |
|---|
| 139 | top: 33%; |
|---|
| 140 | z-index: 1; |
|---|
| 141 | border-style: solid; |
|---|
| 142 | border-width: 1px; |
|---|
| 143 | padding: 5px; |
|---|
| 144 | text-align: center; |
|---|
| 145 | color: #000000; |
|---|
| 146 | position: absolute; |
|---|
| 147 | display: none; |
|---|
| 148 | font-size: small; |
|---|
| 149 | } |
|---|
| 150 | |
|---|
| 151 | div.DecisionPoint{ |
|---|
| 152 | background-color: #ffffff; |
|---|
| 153 | text-align: center; |
|---|
| 154 | font-size: small; |
|---|
| 155 | color: #000000; |
|---|
| 156 | padding: 8px; |
|---|
| 157 | border-style: solid; |
|---|
| 158 | border-width: 1px 1px 1px 1px; |
|---|
| 159 | border-color: #000000; |
|---|
| 160 | margin: 1px; |
|---|
| 161 | } |
|---|
| 162 | |
|---|
| 163 | .FuncButton { |
|---|
| 164 | |
|---|
| 165 | text-align: center; |
|---|
| 166 | border-style: solid; |
|---|
| 167 | |
|---|
| 168 | color: #ffffff; |
|---|
| 169 | border-color: #ffffff; |
|---|
| 170 | background-color: #000000; |
|---|
| 171 | |
|---|
| 172 | border-width: 2px; |
|---|
| 173 | padding: 3px 6px 3px 6px; |
|---|
| 174 | cursor: pointer; |
|---|
| 175 | } |
|---|
| 176 | |
|---|
| 177 | .FuncButtonUp { |
|---|
| 178 | color: #ffffff; |
|---|
| 179 | text-align: center; |
|---|
| 180 | border-style: solid; |
|---|
| 181 | |
|---|
| 182 | border-left-color: #ffffff; |
|---|
| 183 | border-top-color: #ffffff; |
|---|
| 184 | border-right-color: #7f7f7f; |
|---|
| 185 | border-bottom-color: #7f7f7f; |
|---|
| 186 | background-color: #000000; |
|---|
| 187 | |
|---|
| 188 | border-width: 2px; |
|---|
| 189 | padding: 2px 7px 4px 5px; |
|---|
| 190 | cursor: pointer; |
|---|
| 191 | } |
|---|
| 192 | |
|---|
| 193 | .FuncButtonDown { |
|---|
| 194 | color: #ffffff; |
|---|
| 195 | text-align: center; |
|---|
| 196 | border-style: solid; |
|---|
| 197 | |
|---|
| 198 | border-left-color: #7f7f7f; |
|---|
| 199 | border-top-color: #7f7f7f; |
|---|
| 200 | border-right-color: #ffffff; |
|---|
| 201 | border-bottom-color: #ffffff; |
|---|
| 202 | background-color: #000000; |
|---|
| 203 | |
|---|
| 204 | border-width: 2px; |
|---|
| 205 | padding: 4px 5px 2px 7px; |
|---|
| 206 | cursor: pointer; |
|---|
| 207 | } |
|---|
| 208 | |
|---|
| 209 | div.NavButtonBar{ |
|---|
| 210 | background-color: #0060A4; |
|---|
| 211 | text-align: center; |
|---|
| 212 | margin: 2px 0px 2px 0px; |
|---|
| 213 | clear: both; |
|---|
| 214 | font-size: small; |
|---|
| 215 | } |
|---|
| 216 | |
|---|
| 217 | .NavButton { |
|---|
| 218 | border-style: solid; |
|---|
| 219 | border-color: #0060A4; |
|---|
| 220 | background-color: #0060A4; |
|---|
| 221 | border-width: 2px; |
|---|
| 222 | padding: 2px 2px 2px 2px; |
|---|
| 223 | color: #ffffff; |
|---|
| 224 | cursor: pointer; |
|---|
| 225 | } |
|---|
| 226 | |
|---|
| 227 | .NavButtonUp { |
|---|
| 228 | border-style: solid; |
|---|
| 229 | |
|---|
| 230 | border-left-color: #7fafd1; |
|---|
| 231 | border-top-color: #7fafd1; |
|---|
| 232 | border-right-color: #003052; |
|---|
| 233 | border-bottom-color: #003052; |
|---|
| 234 | background-color: #0060A4; |
|---|
| 235 | |
|---|
| 236 | border-width: 2px; |
|---|
| 237 | padding: 1px 3px 3px 1px; |
|---|
| 238 | color: #ffffff; |
|---|
| 239 | cursor: pointer; |
|---|
| 240 | } |
|---|
| 241 | |
|---|
| 242 | .NavButtonDown { |
|---|
| 243 | border-style: solid; |
|---|
| 244 | |
|---|
| 245 | border-left-color: #003052; |
|---|
| 246 | border-top-color: #003052; |
|---|
| 247 | border-right-color: #7fafd1; |
|---|
| 248 | border-bottom-color: #7fafd1; |
|---|
| 249 | background-color: #0060A4; |
|---|
| 250 | |
|---|
| 251 | background-color: #0060A4; |
|---|
| 252 | border-width: 2px; |
|---|
| 253 | padding: 3px 1px 1px 3px; |
|---|
| 254 | color: #ffffff; |
|---|
| 255 | cursor: pointer; |
|---|
| 256 | } |
|---|
| 257 | |
|---|
| 258 | a{ |
|---|
| 259 | color: #0060A4; |
|---|
| 260 | } |
|---|
| 261 | |
|---|
| 262 | a:visited{ |
|---|
| 263 | color: #0000ff; |
|---|
| 264 | } |
|---|
| 265 | |
|---|
| 266 | a:hover{ |
|---|
| 267 | color: #0060A4; |
|---|
| 268 | } |
|---|
| 269 | |
|---|
| 270 | |
|---|
| 271 | </style> |
|---|
| 272 | |
|---|
| 273 | <!-- The following insertion allows you to add your own code directly to this head tag from the configuration screen --> |
|---|
| 274 | |
|---|
| 275 | <style type="text/css"> |
|---|
| 276 | strong{background-color: #ffff00;color:inherited;} |
|---|
| 277 | </style> |
|---|
| 278 | |
|---|
| 279 | <script type="text/javascript"> |
|---|
| 280 | |
|---|
| 281 | |
|---|
| 282 | |
|---|
| 283 | <!-- |
|---|
| 284 | |
|---|
| 285 | |
|---|
| 286 | |
|---|
| 287 | |
|---|
| 288 | |
|---|
| 289 | |
|---|
| 290 | |
|---|
| 291 | if (document.getElementById == false){ |
|---|
| 292 | alert('Your browser is not able to show this page properly. A modern browser that supports W3C standards is required.'); |
|---|
| 293 | } |
|---|
| 294 | |
|---|
| 295 | |
|---|
| 296 | |
|---|
| 297 | |
|---|
| 298 | |
|---|
| 299 | |
|---|
| 300 | |
|---|
| 301 | |
|---|
| 302 | function Asset(ID, Name, InitVal, DecPlace, ShowDuring, ShowEnd, CurrVal, Parent){ |
|---|
| 303 | this.ID = ID; |
|---|
| 304 | this.Name=Name; |
|---|
| 305 | this.InitVal=InitVal; |
|---|
| 306 | this.DecPlace=DecPlace; |
|---|
| 307 | this.ShowDuring=ShowDuring; |
|---|
| 308 | this.ShowEnd=ShowEnd; |
|---|
| 309 | this.CurrVal=CurrVal; |
|---|
| 310 | this.Parent = Parent; |
|---|
| 311 | } |
|---|
| 312 | |
|---|
| 313 | function AssetGetCurrValString(){ |
|---|
| 314 | var Num = this.CurrVal; |
|---|
| 315 | if (this.DecPlace > 0){ |
|---|
| 316 | for (var i=0; i<this.DecPlace; i++){Num /= 10;} |
|---|
| 317 | } |
|---|
| 318 | var Result = Num.toString(); |
|---|
| 319 | if (this.DecPlace > 0){ |
|---|
| 320 | var DecLoc = Result.indexOf('.'); |
|---|
| 321 | if (DecLoc < 0){Result += '.';} |
|---|
| 322 | |
|---|
| 323 | while (((Result.length-1) - Result.indexOf('.'))<this.DecPlace){Result += '0';} |
|---|
| 324 | |
|---|
| 325 | while (((Result.length-1) - Result.indexOf('.'))>this.DecPlace){Result = Result.substring(0, Result.length-1);} |
|---|
| 326 | } |
|---|
| 327 | return Result; |
|---|
| 328 | } |
|---|
| 329 | Asset.prototype.GetCurrValString=AssetGetCurrValString; |
|---|
| 330 | |
|---|
| 331 | function AssetGetCurrValFloat(){ |
|---|
| 332 | var Num = this.CurrVal; |
|---|
| 333 | if (this.DecPlace > 0){ |
|---|
| 334 | for (var i=0; i<this.DecPlace; i++){Num /= 10;} |
|---|
| 335 | } |
|---|
| 336 | return Num; |
|---|
| 337 | } |
|---|
| 338 | Asset.prototype.GetCurrValFloat=AssetGetCurrValFloat; |
|---|
| 339 | |
|---|
| 340 | function AssetSetCurrValFromFloat(Num){ |
|---|
| 341 | if (this.DecPlace > 0){ |
|---|
| 342 | for (var i=0; i<this.DecPlace; i++){Num *= 10;} |
|---|
| 343 | } |
|---|
| 344 | this.CurrVal = Num; |
|---|
| 345 | } |
|---|
| 346 | Asset.prototype.SetCurrValFromFloat=AssetSetCurrValFromFloat; |
|---|
| 347 | |
|---|
| 348 | function AssetReportCurrState(){ |
|---|
| 349 | return this.Name + ': ' + this.GetCurrValString(); |
|---|
| 350 | } |
|---|
| 351 | Asset.prototype.ReportCurrState=AssetReportCurrState; |
|---|
| 352 | |
|---|
| 353 | function AssetMeetsRequirement(ReqType, Req){ |
|---|
| 354 | var Result = true; |
|---|
| 355 | switch(ReqType){ |
|---|
| 356 | case 0: break; |
|---|
| 357 | case 1: Result = (this.CurrVal > Req); break; |
|---|
| 358 | case 2: Result = (this.CurrVal < Req); break; |
|---|
| 359 | case 3: Result = (this.CurrVal == Req); break; |
|---|
| 360 | } |
|---|
| 361 | return Result; |
|---|
| 362 | } |
|---|
| 363 | Asset.prototype.MeetsRequirement=AssetMeetsRequirement; |
|---|
| 364 | |
|---|
| 365 | function AssetPerformTransaction(OperatorType, Operand){ |
|---|
| 366 | if ((this.Name == '_Timer_Seconds')&&(this.Parent.Active == true)){ |
|---|
| 367 | this.CurrVal = Seconds; |
|---|
| 368 | } |
|---|
| 369 | switch(OperatorType){ |
|---|
| 370 | |
|---|
| 371 | |
|---|
| 372 | |
|---|
| 373 | case 1: this.CurrVal += Operand; break; |
|---|
| 374 | case 2: this.CurrVal -= Operand; break; |
|---|
| 375 | case 3: for (var x=0; x<this.DecPlace; x++){Operand /= 10;}this.CurrVal *= Operand; break; |
|---|
| 376 | case 4: for (var x=0; x<this.DecPlace; x++){Operand /= 10;}this.CurrVal /= Operand; break; |
|---|
| 377 | case 5: this.CurrVal = Operand; break; |
|---|
| 378 | case 6: for (var x=0; x<this.DecPlace; x++){Operand /= 10;}this.CurrVal *= (Operand/100); break; |
|---|
| 379 | |
|---|
| 380 | |
|---|
| 381 | case 7: |
|---|
| 382 | |
|---|
| 383 | for (var x=0; x<this.DecPlace; x++){Operand /= 10;} |
|---|
| 384 | |
|---|
| 385 | var y = this.CurrVal; for (var x=0; x<this.DecPlace; x++){y /= 10;} |
|---|
| 386 | |
|---|
| 387 | x = y; for (var j=1; j<Operand; j++){y *= x;} |
|---|
| 388 | |
|---|
| 389 | for (var x=0; x<this.DecPlace; x++){y *= 10;} |
|---|
| 390 | |
|---|
| 391 | this.CurrVal = y; |
|---|
| 392 | break; |
|---|
| 393 | } |
|---|
| 394 | this.CurrVal = Math.round(this.CurrVal); |
|---|
| 395 | if ((this.Name == '_Timer_Seconds')&&(this.Parent.Active == true)){ |
|---|
| 396 | Seconds = this.CurrVal; |
|---|
| 397 | } |
|---|
| 398 | } |
|---|
| 399 | Asset.prototype.PerformTransaction=AssetPerformTransaction; |
|---|
| 400 | |
|---|
| 401 | function AssetCanBeShown(){ |
|---|
| 402 | var Result = true; |
|---|
| 403 | if (IsEndPoint == true){ |
|---|
| 404 | switch (this.ShowEnd){ |
|---|
| 405 | case 0: Result = true; break; |
|---|
| 406 | case 1: Result = false; break; |
|---|
| 407 | case 2: Result = (this.CurrVal != 0); break; |
|---|
| 408 | } |
|---|
| 409 | } |
|---|
| 410 | else{ |
|---|
| 411 | switch (this.ShowDuring){ |
|---|
| 412 | case 0: Result = true; break; |
|---|
| 413 | case 1: Result = false; break; |
|---|
| 414 | case 2: Result = (this.CurrVal != 0); break; |
|---|
| 415 | } |
|---|
| 416 | } |
|---|
| 417 | return Result; |
|---|
| 418 | } |
|---|
| 419 | Asset.prototype.CanBeShown=AssetCanBeShown; |
|---|
| 420 | |
|---|
| 421 | function Basket(AList, Active){ |
|---|
| 422 | this.Active = Active; |
|---|
| 423 | this.Assets = new Array(); |
|---|
| 424 | if (AList.length > 0){ |
|---|
| 425 | for (var i=0; i<AList.length; i++){ |
|---|
| 426 | this.Assets[i] = new Asset(i, AList[i][0], AList[i][1], AList[i][2], AList[i][3], AList[i][4], A[i][5], this); |
|---|
| 427 | } |
|---|
| 428 | } |
|---|
| 429 | } |
|---|
| 430 | |
|---|
| 431 | function BasketGetEffectiveOperand(Trans){ |
|---|
| 432 | |
|---|
| 433 | |
|---|
| 434 | |
|---|
| 435 | |
|---|
| 436 | var Operand = 0; |
|---|
| 437 | switch(Trans[2]){ |
|---|
| 438 | |
|---|
| 439 | case 0: Operand = Trans[3]; break; |
|---|
| 440 | |
|---|
| 441 | case 1: Operand = GetRand(Trans[3], Trans[4]); break; |
|---|
| 442 | |
|---|
| 443 | |
|---|
| 444 | |
|---|
| 445 | case 2: Operand = this.Assets[Trans[5]].GetCurrValFloat(); |
|---|
| 446 | |
|---|
| 447 | |
|---|
| 448 | for (var i=0; i<this.Assets[Trans[0]].DecPlace; i++){Operand *= 10;} |
|---|
| 449 | break; |
|---|
| 450 | } |
|---|
| 451 | return Operand; |
|---|
| 452 | } |
|---|
| 453 | Basket.prototype.GetEffectiveOperand=BasketGetEffectiveOperand; |
|---|
| 454 | |
|---|
| 455 | function BasketReportCurrState(){ |
|---|
| 456 | if (this.Assets.length < 1){return '';} |
|---|
| 457 | var Result = ''; |
|---|
| 458 | for (var i=0; i<this.Assets.length; i++){ |
|---|
| 459 | if (this.Assets[i].CanBeShown()==true){ |
|---|
| 460 | Result += '<tr><td style="text-align: right;">' + this.Assets[i].Name + ': </td>'; |
|---|
| 461 | Result += '<td style="text-align: left;">' + this.Assets[i].GetCurrValString() + '</td></tr>'; |
|---|
| 462 | } |
|---|
| 463 | } |
|---|
| 464 | if (Result.length > 0){ |
|---|
| 465 | Result = '<table class="AssetTable"><tr><th colspan="2">' + strYouHave + '</th></tr>' + Result + '</table>'; |
|---|
| 466 | } |
|---|
| 467 | return Result; |
|---|
| 468 | } |
|---|
| 469 | Basket.prototype.ReportCurrState=BasketReportCurrState; |
|---|
| 470 | |
|---|
| 471 | function BasketCloneSelf(Copy, Active){ |
|---|
| 472 | Copy = new Basket(A, false); |
|---|
| 473 | Copy.Active = Active; |
|---|
| 474 | for (var i=0; i<this.Assets.length; i++){ |
|---|
| 475 | Copy.Assets[i].CurrVal = this.Assets[i].CurrVal; |
|---|
| 476 | } |
|---|
| 477 | return Copy; |
|---|
| 478 | } |
|---|
| 479 | Basket.prototype.CloneSelf=BasketCloneSelf; |
|---|
| 480 | |
|---|
| 481 | function BAssetMeetsRequirement(ANum, ReqType, Req){ |
|---|
| 482 | return this.Assets[ANum].MeetsRequirement(ReqType, Req); |
|---|
| 483 | } |
|---|
| 484 | Basket.prototype.AssetMeetsRequirement=BAssetMeetsRequirement; |
|---|
| 485 | |
|---|
| 486 | function BAssetPerformTransaction(ANum, OpType, Operand){ |
|---|
| 487 | this.Assets[ANum].PerformTransaction(OpType, Operand); |
|---|
| 488 | } |
|---|
| 489 | Basket.prototype.PerformTransaction=BAssetPerformTransaction; |
|---|
| 490 | |
|---|
| 491 | function BGetAssetValByName(AssetName){ |
|---|
| 492 | var Result = 0; |
|---|
| 493 | for (var i=0; i<this.Assets.length; i++){ |
|---|
| 494 | if (this.Assets[i].Name == AssetName){ |
|---|
| 495 | Result = this.Assets[i].CurrVal; |
|---|
| 496 | } |
|---|
| 497 | } |
|---|
| 498 | return Result; |
|---|
| 499 | } |
|---|
| 500 | Basket.prototype.GetAssetValByName=BGetAssetValByName; |
|---|
| 501 | |
|---|
| 502 | |
|---|
| 503 | |
|---|
| 504 | var CurrBasket; |
|---|
| 505 | var TempBasket; |
|---|
| 506 | var CurrNode=0; |
|---|
| 507 | var strYouHave='You have: '; |
|---|
| 508 | var strLinkCaption='Entrar'; |
|---|
| 509 | var strFinishCaption='Entrar'; |
|---|
| 510 | var strDefaultRefusalMessage='¡Lo siento! No puede hacer eso.'; |
|---|
| 511 | var strTimesUp = 'Su tiempo ha terminado'; |
|---|
| 512 | var strBookmarkExplanation = 'Su posición actual y configuración ha sido codificada en <br />la URL de la página. Ahora deberá definir un marcador en su<br />navegador, así podrá volver aquí.<br />'; |
|---|
| 513 | var strExerciseComplete = 'Ha llegado al final del ejercicio.'; |
|---|
| 514 | var ShowImpossibleLinks=true; |
|---|
| 515 | var Interval; |
|---|
| 516 | var StartTime = (new Date()).toLocaleString(); |
|---|
| 517 | var HPNStartTime = (new Date()).getTime(); |
|---|
| 518 | var SubmissionTimeout = 30000; |
|---|
| 519 | var FollowingTrack = false; |
|---|
| 520 | var CurrTime; |
|---|
| 521 | var Started=false; |
|---|
| 522 | |
|---|
| 523 | var IsEndPoint = false; |
|---|
| 524 | |
|---|
| 525 | function TransactionList(NNum, LNum){ |
|---|
| 526 | this.List = new Array(); |
|---|
| 527 | var i; |
|---|
| 528 | for (i=0; i<N[NNum][4].length; i++){this.List[this.List.length] = N[NNum][4][i];} |
|---|
| 529 | for (i=0; i<N[NNum][3][LNum][2].length; i++){this.List[this.List.length] = N[NNum][3][LNum][2][i];} |
|---|
| 530 | for (i=0; i<N[N[NNum][3][LNum][0]][2].length; i++){this.List[this.List.length] = N[N[NNum][3][LNum][0]][2][i];} |
|---|
| 531 | } |
|---|
| 532 | |
|---|
| 533 | function TestTransactions(NNum, LNum){ |
|---|
| 534 | var T = new TransactionList(NNum, LNum); |
|---|
| 535 | var Result = ''; |
|---|
| 536 | |
|---|
| 537 | var B = CurrBasket.CloneSelf(B, false); |
|---|
| 538 | |
|---|
| 539 | |
|---|
| 540 | for (var i=0; i<T.List.length; i++){ |
|---|
| 541 | |
|---|
| 542 | if (B.AssetMeetsRequirement(T.List[i][0], T.List[i][7], T.List[i][6]) == true){ |
|---|
| 543 | |
|---|
| 544 | B.PerformTransaction(T.List[i][0], T.List[i][1], B.GetEffectiveOperand(T.List[i])); |
|---|
| 545 | } |
|---|
| 546 | else{ |
|---|
| 547 | |
|---|
| 548 | if (T.List[i][8].length > 0){ |
|---|
| 549 | return T.List[i][8]; |
|---|
| 550 | } |
|---|
| 551 | |
|---|
| 552 | else{ |
|---|
| 553 | return strDefaultRefusalMessage; |
|---|
| 554 | } |
|---|
| 555 | } |
|---|
| 556 | } |
|---|
| 557 | |
|---|
| 558 | return ''; |
|---|
| 559 | } |
|---|
| 560 | |
|---|
| 561 | function StartExercise(){ |
|---|
| 562 | CurrBasket = new Basket(A, true); |
|---|
| 563 | ParseSearch(); |
|---|
| 564 | CurrTime = new Date(); |
|---|
| 565 | ShowCurrNode(); |
|---|
| 566 | |
|---|
| 567 | Started = true; |
|---|
| 568 | } |
|---|
| 569 | |
|---|
| 570 | function StartUp(){ |
|---|
| 571 | if (document.location.search.indexOf('___') > -1){ |
|---|
| 572 | StartExercise(); |
|---|
| 573 | } |
|---|
| 574 | } |
|---|
| 575 | |
|---|
| 576 | function Restart(){ |
|---|
| 577 | var d = document.location; |
|---|
| 578 | d.search = ''; |
|---|
| 579 | document.location = d; |
|---|
| 580 | } |
|---|
| 581 | |
|---|
| 582 | |
|---|
| 583 | function HNode(NNum, LNum, Bask){ |
|---|
| 584 | this.NNum = NNum; |
|---|
| 585 | this.LNum = LNum; |
|---|
| 586 | this.Basket = Bask.CloneSelf(A, false); |
|---|
| 587 | |
|---|
| 588 | this.EntryTime = CurrTime.getTime(); |
|---|
| 589 | this.EntryTimeString = CurrTime.toLocaleString(); |
|---|
| 590 | var D = new Date(); |
|---|
| 591 | |
|---|
| 592 | this.ExitTime = D.getTime(); |
|---|
| 593 | |
|---|
| 594 | this.ExitTimeString = D.toLocaleString(); |
|---|
| 595 | } |
|---|
| 596 | |
|---|
| 597 | function HNodeReportSelf(AddTime){ |
|---|
| 598 | var S = this.NNum + ':' + this.LNum; |
|---|
| 599 | if (AddTime == true){ |
|---|
| 600 | S += ':' + this.EntryTime; |
|---|
| 601 | } |
|---|
| 602 | return S; |
|---|
| 603 | } |
|---|
| 604 | HNode.prototype.ReportSelf=HNodeReportSelf; |
|---|
| 605 | |
|---|
| 606 | |
|---|
| 607 | function HNodeList(){ |
|---|
| 608 | this.Nodes = new Array(); |
|---|
| 609 | var D = new Date(); |
|---|
| 610 | this.StartTime = D.getTime(); |
|---|
| 611 | this.StartTimeString = D.toLocaleString(); |
|---|
| 612 | } |
|---|
| 613 | |
|---|
| 614 | function HNodeListReportAsSearch(IncludeTime){ |
|---|
| 615 | var S = '___t;'; |
|---|
| 616 | if (this.Nodes.length > 0){ |
|---|
| 617 | S += this.Nodes[0].ReportSelf(IncludeTime); |
|---|
| 618 | for (var i=1; i<this.Nodes.length; i++){ |
|---|
| 619 | S += ',' + this.Nodes[i].ReportSelf(IncludeTime); |
|---|
| 620 | } |
|---|
| 621 | } |
|---|
| 622 | return S; |
|---|
| 623 | } |
|---|
| 624 | HNodeList.prototype.ReportAsSearch=HNodeListReportAsSearch; |
|---|
| 625 | |
|---|
| 626 | var H = new HNodeList(); |
|---|
| 627 | |
|---|
| 628 | function Undo(){ |
|---|
| 629 | if (H.Nodes.length < 1){ |
|---|
| 630 | return; |
|---|
| 631 | } |
|---|
| 632 | var LastNode = H.Nodes.pop(); |
|---|
| 633 | CurrNode = LastNode.NNum; |
|---|
| 634 | CurrBasket = LastNode.Basket.CloneSelf(A, true); |
|---|
| 635 | ShowCurrNode(); |
|---|
| 636 | } |
|---|
| 637 | |
|---|
| 638 | |
|---|
| 639 | function ParseSearch(){ |
|---|
| 640 | if (document.location.search.length < 1){return;} |
|---|
| 641 | |
|---|
| 642 | var Temp = document.location.search.substring(document.location.search.lastIndexOf('___'), document.location.search.length); |
|---|
| 643 | if (Temp.length < 1){return;} |
|---|
| 644 | |
|---|
| 645 | var S = Temp.split(';'); |
|---|
| 646 | |
|---|
| 647 | if (S.length > 0){ |
|---|
| 648 | if (S[0] == '___b'){ |
|---|
| 649 | |
|---|
| 650 | ShowMessage(strBookmarkExplanation); |
|---|
| 651 | } |
|---|
| 652 | if (S[0] == '___t'){ |
|---|
| 653 | |
|---|
| 654 | ParseTrack(S[1]); |
|---|
| 655 | return; |
|---|
| 656 | } |
|---|
| 657 | } |
|---|
| 658 | |
|---|
| 659 | if (S.length > 1){ |
|---|
| 660 | if (S[1].length > 0){ |
|---|
| 661 | var CN=parseInt(S[1]); |
|---|
| 662 | if ((CN>-1)&&(CN<N.length)){ |
|---|
| 663 | CurrNode = CN; |
|---|
| 664 | } |
|---|
| 665 | } |
|---|
| 666 | } |
|---|
| 667 | if (S.length > 2){ |
|---|
| 668 | if (S[2].length > 0){ |
|---|
| 669 | var AA=S[2].split(','); |
|---|
| 670 | if (AA.length > 0){ |
|---|
| 671 | for (var i=0; i<AA.length; i++){ |
|---|
| 672 | var Val = parseInt(AA[i]); |
|---|
| 673 | if ((i<A.length)&&(Val != NaN)){ |
|---|
| 674 | CurrBasket.Assets[i].CurrVal = Val; |
|---|
| 675 | } |
|---|
| 676 | } |
|---|
| 677 | } |
|---|
| 678 | } |
|---|
| 679 | } |
|---|
| 680 | |
|---|
| 681 | } |
|---|
| 682 | |
|---|
| 683 | var Footprints = new Array(); |
|---|
| 684 | |
|---|
| 685 | function ParseTrack(Track){ |
|---|
| 686 | if (Track.length < 3){ |
|---|
| 687 | return; |
|---|
| 688 | } |
|---|
| 689 | |
|---|
| 690 | var Steps = Track.split(','); |
|---|
| 691 | if (Steps.length < 2){ |
|---|
| 692 | return; |
|---|
| 693 | } |
|---|
| 694 | |
|---|
| 695 | FollowingTrack = true; |
|---|
| 696 | var NNum = 0; |
|---|
| 697 | var LNum = 0; |
|---|
| 698 | var T = 0; |
|---|
| 699 | for (var i=0; i<Steps.length; i++){ |
|---|
| 700 | var Step = Steps[i].split(':'); |
|---|
| 701 | NNum = parseInt(Step[0]); |
|---|
| 702 | if (NNum > -1){ |
|---|
| 703 | LNum = parseInt(Step[1]); |
|---|
| 704 | if (LNum > -1){ |
|---|
| 705 | if (Step.length > 2){ |
|---|
| 706 | T = parseInt(Step[2]); |
|---|
| 707 | } |
|---|
| 708 | Footprints.push(new Array(NNum, LNum, T)); |
|---|
| 709 | } |
|---|
| 710 | } |
|---|
| 711 | } |
|---|
| 712 | } |
|---|
| 713 | |
|---|
| 714 | function CreateBookmark(){ |
|---|
| 715 | var S = '___b;' + CurrNode + ';'; |
|---|
| 716 | if (CurrBasket.Assets.length > 0){ |
|---|
| 717 | S += CurrBasket.Assets[0].CurrVal; |
|---|
| 718 | for (var i=1; i<CurrBasket.Assets.length; i++){ |
|---|
| 719 | S += ',' + CurrBasket.Assets[i].CurrVal; |
|---|
| 720 | } |
|---|
| 721 | } |
|---|
| 722 | |
|---|
| 723 | return S; |
|---|
| 724 | } |
|---|
| 725 | |
|---|
| 726 | function SetBookmark(){ |
|---|
| 727 | if (Started == false){return;} |
|---|
| 728 | var Temp = document.location.search; |
|---|
| 729 | if (Temp.length < 1){ |
|---|
| 730 | Temp = '?'; |
|---|
| 731 | } |
|---|
| 732 | else{ |
|---|
| 733 | Temp += '&'; |
|---|
| 734 | } |
|---|
| 735 | document.location.search = Temp + CreateBookmark(); |
|---|
| 736 | } |
|---|
| 737 | |
|---|
| 738 | |
|---|
| 739 | |
|---|
| 740 | function NavBtnOver(Btn){ |
|---|
| 741 | if (Btn.className != 'NavButtonDown'){Btn.className = 'NavButtonUp';} |
|---|
| 742 | } |
|---|
| 743 | |
|---|
| 744 | function NavBtnOut(Btn){ |
|---|
| 745 | Btn.className = 'NavButton'; |
|---|
| 746 | } |
|---|
| 747 | |
|---|
| 748 | function NavBtnDown(Btn){ |
|---|
| 749 | Btn.className = 'NavButtonDown'; |
|---|
| 750 | } |
|---|
| 751 | |
|---|
| 752 | function FuncBtnOver(Btn){ |
|---|
| 753 | if (Btn.className != 'FuncButtonDown'){Btn.className = 'FuncButtonUp';} |
|---|
| 754 | } |
|---|
| 755 | |
|---|
| 756 | function FuncBtnOut(Btn){ |
|---|
| 757 | Btn.className = 'FuncButton'; |
|---|
| 758 | } |
|---|
| 759 | |
|---|
| 760 | function FuncBtnDown(Btn){ |
|---|
| 761 | Btn.className = 'FuncButtonDown'; |
|---|
| 762 | } |
|---|
| 763 | |
|---|
| 764 | |
|---|
| 765 | |
|---|
| 766 | |
|---|
| 767 | var topZ = 1000; |
|---|
| 768 | |
|---|
| 769 | function ShowMessage(Feedback){ |
|---|
| 770 | var Output = Feedback + '<br /><br />'; |
|---|
| 771 | document.getElementById('FeedbackContent').innerHTML = Output; |
|---|
| 772 | var FDiv = document.getElementById('FeedbackDiv'); |
|---|
| 773 | topZ++; |
|---|
| 774 | FDiv.style.zIndex = topZ; |
|---|
| 775 | FDiv.style.display = 'block'; |
|---|
| 776 | document.getElementById('FeedbackOKButton').focus(); |
|---|
| 777 | |
|---|
| 778 | |
|---|
| 779 | |
|---|
| 780 | |
|---|
| 781 | } |
|---|
| 782 | |
|---|
| 783 | function HideFeedback(){ |
|---|
| 784 | document.getElementById('FeedbackDiv').style.display = 'none'; |
|---|
| 785 | if (IsEndPoint == true){ |
|---|
| 786 | Finish(); |
|---|
| 787 | } |
|---|
| 788 | } |
|---|
| 789 | |
|---|
| 790 | function MillisecondsToTimeReadout(MS){ |
|---|
| 791 | var DT = new Date(MS); |
|---|
| 792 | return DT.getHours() + ':' + DT.getMinutes() + ':' + DT.getSeconds() + ':' + DT.getMilliseconds(); |
|---|
| 793 | } |
|---|
| 794 | |
|---|
| 795 | function ShowCurrNode(){ |
|---|
| 796 | var DPT = N[CurrNode][0]; |
|---|
| 797 | if ((FollowingTrack==true)&&(Footprints.length > 0)){ |
|---|
| 798 | if (Footprints[0][2] > 0){ |
|---|
| 799 | DPT += ' (' + MillisecondsToTimeReadout(Footprints[0][2]) + ')'; |
|---|
| 800 | } |
|---|
| 801 | } |
|---|
| 802 | document.getElementById('DPTitle').innerHTML = DPT; |
|---|
| 803 | document.getElementById('DPContentsDiv').innerHTML = N[CurrNode][1]; |
|---|
| 804 | var Links = ''; |
|---|
| 805 | var Refusal = ''; |
|---|
| 806 | var ValidLinks = 0; |
|---|
| 807 | for (var LNum=0; LNum<N[CurrNode][3].length; LNum++){ |
|---|
| 808 | if ((FollowingTrack==true)&&(Footprints.length > 0)){ |
|---|
| 809 | |
|---|
| 810 | if (LNum == Footprints[0][1]){ |
|---|
| 811 | Links += MakeLink(CurrNode, LNum); |
|---|
| 812 | ValidLinks++; |
|---|
| 813 | } |
|---|
| 814 | else{ |
|---|
| 815 | Links += MakeDummyLink(CurrNode, LNum); |
|---|
| 816 | } |
|---|
| 817 | |
|---|
| 818 | } |
|---|
| 819 | else{ |
|---|
| 820 | Refusal = TestTransactions(CurrNode, LNum); |
|---|
| 821 | if (Refusal.length > 0){ |
|---|
| 822 | if (N[CurrNode][3][LNum][4] < 1){ |
|---|
| 823 | N[CurrNode][3][LNum][3] = Refusal; |
|---|
| 824 | Links += MakeRefusalLink(CurrNode, LNum); |
|---|
| 825 | } |
|---|
| 826 | } |
|---|
| 827 | else{ |
|---|
| 828 | Links += MakeLink(CurrNode, LNum); |
|---|
| 829 | ValidLinks++; |
|---|
| 830 | } |
|---|
| 831 | } |
|---|
| 832 | } |
|---|
| 833 | if (Links.length > 0){ |
|---|
| 834 | Links = '<table class="LinkTable">' + Links + '</table>'; |
|---|
| 835 | } |
|---|
| 836 | |
|---|
| 837 | if (ValidLinks < 1){ |
|---|
| 838 | IsEndPoint = true; |
|---|
| 839 | if (document.getElementById('store') != null){ |
|---|
| 840 | Links = '<table class="LinkTable">' + MakeEndLink() + '</table>'; |
|---|
| 841 | } |
|---|
| 842 | else{ |
|---|
| 843 | if (document.getElementById('UndoButton') == null){ |
|---|
| 844 | Links = '<table class="LinkTable"><tr><td>' + strExerciseComplete + '</td></tr></table>'; |
|---|
| 845 | } |
|---|
| 846 | } |
|---|
| 847 | } |
|---|
| 848 | document.getElementById('LinkListDiv').innerHTML = Links; |
|---|
| 849 | |
|---|
| 850 | |
|---|
| 851 | document.getElementById('AssetsDiv').innerHTML = CurrBasket.ReportCurrState(); |
|---|
| 852 | |
|---|
| 853 | |
|---|
| 854 | if (Footprints.length > 0){Footprints.shift();} |
|---|
| 855 | |
|---|
| 856 | if ((IsEndPoint==true)&&(document.getElementById('UndoButton') == null)){ |
|---|
| 857 | |
|---|
| 858 | H.Nodes.push(new HNode(CurrNode, LNum, CurrBasket)); |
|---|
| 859 | |
|---|
| 860 | |
|---|
| 861 | CurrTime = new Date(); |
|---|
| 862 | setTimeout('Finish()', SubmissionTimeout); |
|---|
| 863 | } |
|---|
| 864 | } |
|---|
| 865 | |
|---|
| 866 | function MakeRefusalLink(NNum, LNum){ |
|---|
| 867 | var Result = '<tr><td><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOver(this)" onclick="ShowMessage(N[' + NNum + '][3][' + LNum + '][3])">' + strLinkCaption + '</button></td>'; |
|---|
| 868 | Result += '<td>' + N[NNum][3][LNum][1] + '</td></tr>'; |
|---|
| 869 | return Result; |
|---|
| 870 | } |
|---|
| 871 | |
|---|
| 872 | function MakeLink(NNum, LNum){ |
|---|
| 873 | var Result = '<tr><td><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOver(this)" onclick="FollowLink(' + LNum + ')">' + strLinkCaption + '</button></td>'; |
|---|
| 874 | Result += '<td>' + N[NNum][3][LNum][1] + '</td></tr>'; |
|---|
| 875 | return Result; |
|---|
| 876 | } |
|---|
| 877 | |
|---|
| 878 | function MakeDummyLink(NNum, LNum){ |
|---|
| 879 | var Result = '<tr><td style="text-align: right;"> ● </td>'; |
|---|
| 880 | Result += '<td>' + N[NNum][3][LNum][1] + '</td></tr>'; |
|---|
| 881 | return Result; |
|---|
| 882 | } |
|---|
| 883 | |
|---|
| 884 | function MakeEndLink(){ |
|---|
| 885 | var Result = '<tr><td><button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOver(this)" onclick="Finish()">' + strFinishCaption + '</button></td>'; |
|---|
| 886 | Result += '<td>' + strExerciseComplete + '</td></tr>'; |
|---|
| 887 | return Result; |
|---|
| 888 | } |
|---|
| 889 | |
|---|
| 890 | function FollowLink(LNum){ |
|---|
| 891 | |
|---|
| 892 | |
|---|
| 893 | H.Nodes.push(new HNode(CurrNode, LNum, CurrBasket)); |
|---|
| 894 | |
|---|
| 895 | |
|---|
| 896 | CurrTime = new Date(); |
|---|
| 897 | |
|---|
| 898 | var T = new TransactionList(CurrNode, LNum); |
|---|
| 899 | |
|---|
| 900 | for (var i=0; i<T.List.length; i++){ |
|---|
| 901 | |
|---|
| 902 | CurrBasket.PerformTransaction(T.List[i][0], T.List[i][1], CurrBasket.GetEffectiveOperand(T.List[i])); |
|---|
| 903 | } |
|---|
| 904 | |
|---|
| 905 | CurrNode = N[CurrNode][3][LNum][0]; |
|---|
| 906 | ShowCurrNode(); |
|---|
| 907 | } |
|---|
| 908 | |
|---|
| 909 | |
|---|
| 910 | |
|---|
| 911 | |
|---|
| 912 | |
|---|
| 913 | function Finish(){ |
|---|
| 914 | |
|---|
| 915 | try{ |
|---|
| 916 | var F = document.getElementById('store'); |
|---|
| 917 | if (F != null){ |
|---|
| 918 | F.starttime.value = HPNStartTime; |
|---|
| 919 | F.endtime.value = (new Date()).getTime(); |
|---|
| 920 | F.mark.value = CurrBasket.GetAssetValByName('Score'); |
|---|
| 921 | var Temp = '<?xml version="1.0"?><hpnetresult><fields>'; |
|---|
| 922 | Temp += '<field><fieldname>endbookmark</fieldname><fieldtype>url-search</fieldtype><fieldlabel>Click here to see the final position in the maze</fieldlabel><fieldlabelid>QuandaryViewFinalPosition</fieldlabelid><fielddata>' + CreateBookmark() + '</fielddata></field>'; |
|---|
| 923 | Temp += '<field><fieldname>track</fieldname><fieldtype>url-search</fieldtype><fieldlabel>Click here to track the student through the maze.</fieldlabel><fieldlabelid>QuandaryViewTrack</fieldlabelid><fielddata>' + H.ReportAsSearch(false) + '</fielddata></field>'; |
|---|
| 924 | Temp += '<field><fieldname>timedtrack</fieldname><fieldtype>url-search</fieldtype><fieldlabelid>QuandaryViewTimedTrack</fieldlabelid><fieldlabel>Click here to track the student through the maze with timing data.</fieldlabel><fielddata>' + H.ReportAsSearch(true) + '</fielddata></field>'; |
|---|
| 925 | Temp += '</fields></hpnetresult>'; |
|---|
| 926 | F.detail.value = Temp; |
|---|
| 927 | F.submit(); |
|---|
| 928 | |
|---|
| 929 | } |
|---|
| 930 | } |
|---|
| 931 | catch(er){ |
|---|
| 932 | return; |
|---|
| 933 | } |
|---|
| 934 | } |
|---|
| 935 | |
|---|
| 936 | |
|---|
| 937 | function GetRand(Lower, Upper){ |
|---|
| 938 | var Rng = Upper-Lower; |
|---|
| 939 | return (Math.round(Math.random()*Rng)) + Lower; |
|---|
| 940 | } |
|---|
| 941 | |
|---|
| 942 | var A = new Array(); |
|---|
| 943 | |
|---|
| 944 | |
|---|
| 945 | var N = new Array(); |
|---|
| 946 | N[0] = new Array(); |
|---|
| 947 | N[0][0] = 'Bienvenid@ a Hot Potatoes!'; |
|---|
| 948 | N[0][1] = 'Esta presentación le describirá los principales tipos de ejercicios que se pueden realizar con los programas, y le llevará a través de los pasos básicos necesarios para elaborar un ejercicio interactivo. Elija una de las opciones que se muestran a continuación.'; |
|---|
| 949 | N[0][2] = new Array(); |
|---|
| 950 | |
|---|
| 951 | N[0][3] = new Array(); |
|---|
| 952 | N[0][3][0] = new Array(); |
|---|
| 953 | N[0][3][0][0] = 1; |
|---|
| 954 | N[0][3][0][1] = '¿Qué es Hot Potatoes?'; |
|---|
| 955 | N[0][3][0][2] = new Array(); |
|---|
| 956 | |
|---|
| 957 | N[0][3][0][3] = ''; |
|---|
| 958 | N[0][3][0][4] = 0; |
|---|
| 959 | |
|---|
| 960 | N[0][3][1] = new Array(); |
|---|
| 961 | N[0][3][1][0] = 2; |
|---|
| 962 | N[0][3][1][1] = 'Novedades de la versión 6'; |
|---|
| 963 | N[0][3][1][2] = new Array(); |
|---|
| 964 | |
|---|
| 965 | N[0][3][1][3] = ''; |
|---|
| 966 | N[0][3][1][4] = 0; |
|---|
| 967 | |
|---|
| 968 | N[0][3][2] = new Array(); |
|---|
| 969 | N[0][3][2][0] = 3; |
|---|
| 970 | N[0][3][2][1] = 'Para empezar'; |
|---|
| 971 | N[0][3][2][2] = new Array(); |
|---|
| 972 | |
|---|
| 973 | N[0][3][2][3] = ''; |
|---|
| 974 | N[0][3][2][4] = 0; |
|---|
| 975 | |
|---|
| 976 | N[0][3][3] = new Array(); |
|---|
| 977 | N[0][3][3][0] = 4; |
|---|
| 978 | N[0][3][3][1] = 'Las patatas, una a una'; |
|---|
| 979 | N[0][3][3][2] = new Array(); |
|---|
| 980 | |
|---|
| 981 | N[0][3][3][3] = ''; |
|---|
| 982 | N[0][3][3][4] = 0; |
|---|
| 983 | |
|---|
| 984 | N[0][3][4] = new Array(); |
|---|
| 985 | N[0][3][4][0] = 17; |
|---|
| 986 | N[0][3][4][1] = 'El servidor de <strong>hotpotatoes.net</strong>'; |
|---|
| 987 | N[0][3][4][2] = new Array(); |
|---|
| 988 | |
|---|
| 989 | N[0][3][4][3] = ''; |
|---|
| 990 | N[0][3][4][4] = 0; |
|---|
| 991 | |
|---|
| 992 | |
|---|
| 993 | N[0][4] = new Array(); |
|---|
| 994 | |
|---|
| 995 | |
|---|
| 996 | N[1] = new Array(); |
|---|
| 997 | N[1][0] = '¿Qué es Hot Potatoes?'; |
|---|
| 998 | N[1][1] = '<strong>Hot Potatoes</strong> es un conjunto de seis herramientas para elaborar contenidos digitales. La aplicación ha sido desarrollada por el equipo de Investigación y Desarrollo del <a href="http://web.uvic.ca/hrd/hcmc/">Humanities Computing and Media Centre</a> de la Universidad de Victoria. Estas utilidades le permitirán elaborar ejercicios interactivos de tipo página Web y de diferentes modalidades. Los ejercicios generados son páginas Web estándar que utilizan código XHTML 1.1 para la visualización, y JavaScript (ECMAScript) para la interactividad. Estos estándares W3C son soportados por todos los navegadores modernos, incluyendo Mozilla 1.2+, Internet Explorer 6+, Phoenix, Safari, y muchos otros. Estas herramientas funcionan también con Unicode. Así, se pueden crear ejercicios en cualquier idioma, o en una mezcla de idiomas.<br /><br />Usted no necesita saber nada sobre XHTML o JavaScript para utilizar los programas. Todo lo que necesita hacer es introducir sus datos -- textos, preguntas, respuestas, etc. -- y los programas crearán automáticamente las páginas Web. Posteriormente podrá publcair dichas páginas en su servidor Web. Además, los programas están diseñados para que se puedan personalizar casi todas las características de las páginas. Por tanto, si usted sabe algo de código HTML o de JavaScript, podrá hacer cualquier cambio que desee en la forma de trabajar de los ejercicios o en el formato de las páginas Web.<br /><br />Si usted trabaja en una institución educativa sin ánimo de lucro, y está dispuest@ a compartir sus ejercicios colocándolos en un servidor Web de acceso público, entonces podrá utilizar la suite Hot Potatoes sin cargo alguno. Si usted trabaja para una compañía comercial, o si usted protege mediante contraseña sus ejercicios o los distribuye exclusivamente en una intranet, necesitará adquirir una licencia (contacte con <a href="http://www.halfbakedsoftware.com/">Half-Baked Software</a> para más información). No obstante, tanto si usted es de una empresa comercial como si no, le pedimos que registre el programa; lo único que tiene que hacer es <a href="http://web.uvic.ca/hrd/hotpot/register.htm">rellenar un formulario en nuestra página Web</a>. Esto nos permite mantenernos en contacto con nuestros usaurios y hacernos una idea de quién está utilizando nuestros programas. Puede consultar el archivo de ayuda para obtener más información sobre el proceso de registro de la aplicación.<br /><br />Ahora, continúe para ver algunos ejemplos del tipo de ejercicios que puede elaborar utilizando <strong>Hot Potatoes</strong>. (Tenga en cuenta que los archivos de datos de todos estos ejercicios se encuentran disponibles en la carpeta tutorial y podrá verlos con las diferentes patatas, si así lo desea más tarde.)<br />'; |
|---|
| 999 | N[1][2] = new Array(); |
|---|
| 1000 | |
|---|
| 1001 | N[1][3] = new Array(); |
|---|
| 1002 | N[1][3][0] = new Array(); |
|---|
| 1003 | N[1][3][0][0] = 11; |
|---|
| 1004 | N[1][3][0][1] = 'Ejemplos de ejercicios'; |
|---|
| 1005 | N[1][3][0][2] = new Array(); |
|---|
| 1006 | |
|---|
| 1007 | N[1][3][0][3] = ''; |
|---|
| 1008 | N[1][3][0][4] = 0; |
|---|
| 1009 | |
|---|
| 1010 | |
|---|
| 1011 | N[1][4] = new Array(); |
|---|
| 1012 | |
|---|
| 1013 | |
|---|
| 1014 | N[2] = new Array(); |
|---|
| 1015 | N[2][0] = 'Novedades de la versión 6'; |
|---|
| 1016 | N[2][1] = 'El archivo de ayuda contiene una lista más detallada de las nuevas características y de los cambios, y a continuación se enumeran las diferencias básicas entre las versiones 5.5 y 6.0:<ul><li><strong>Soporte Unicode</strong>, así podrá crear ejercicios en casí cualquier idioma o en una mezcla de idiomas. El soporte Unicode solamente está disponible en Windows 2000 o XP; las versiones anteriores de Windows no lo soportan.</li><li><strong>Tipos de preguntas mezcladas en un test.</strong> La antigua aplicación JBC (respuestas múltiples) ha sido combinada con JQuiz, y la nueva aplicación le permite crear un test o prueba con una mezcla de preguntas de tipo respuestas múltiples, respuestas cortas y de selección múltiple, junto con un nuevo tipo de pregunta ("híbrida").</li><li><strong>Sistema de puntuación más sofisticado en JQuiz.</strong> Ahora se puede predeerminar el valor de cada pregunta en el conjunto del test, y se puede definir un "porcentaje de acierto" a las espuestas individuales.</li><li><strong>Formato de salida más simple.</strong> En vez del antiguo sistema basado en marcos, en el que el contenido de las páginas de los ejercicios estaba escrito en JavaScript, las nuevas páginas basadas en XHTML son más sencillas, esto permite una edición más facil de las páginas resultantes en editores de tipo WYSIWYG como DreamWeaver.</li><li>Ahora se puede incluir un <strong>contador de tiempo</strong> en los ejercicios, en vez de hacerlo en las lecturas de texto asociadas de las versiones anteriores.</li><li>Los ejercicios y todos los archivos de medios asociados pueden ser publicados automáticamente en una cuenta de la red <a href="http://www.hotpotatotes.net">www.hotpotatotes.net</a>, y así sus alumn@s podrán entra en dicha red y ver los resultados obtenidos en los ejercicios.</li></ul>'; |
|---|
| 1017 | N[2][2] = new Array(); |
|---|
| 1018 | |
|---|
| 1019 | N[2][3] = new Array(); |
|---|
| 1020 | N[2][3][0] = new Array(); |
|---|
| 1021 | N[2][3][0][0] = 0; |
|---|
| 1022 | N[2][3][0][1] = 'Volver al Índice'; |
|---|
| 1023 | N[2][3][0][2] = new Array(); |
|---|
| 1024 | |
|---|
| 1025 | N[2][3][0][3] = ''; |
|---|
| 1026 | N[2][3][0][4] = 0; |
|---|
| 1027 | |
|---|
| 1028 | N[2][3][1] = new Array(); |
|---|
| 1029 | N[2][3][1][0] = 3; |
|---|
| 1030 | N[2][3][1][1] = 'Para empezar'; |
|---|
| 1031 | N[2][3][1][2] = new Array(); |
|---|
| 1032 | |
|---|
| 1033 | N[2][3][1][3] = ''; |
|---|
| 1034 | N[2][3][1][4] = 0; |
|---|
| 1035 | |
|---|
| 1036 | |
|---|
| 1037 | N[2][4] = new Array(); |
|---|
| 1038 | |
|---|
| 1039 | |
|---|
| 1040 | N[3] = new Array(); |
|---|
| 1041 | N[3][0] = 'Para empezar'; |
|---|
| 1042 | N[3][1] = 'La mejor forma de comenzar con Hot Potatoes es trabajar con los ejemplos de ejercicios; estos ejercicios le mostrarán los diferentes tipos que se pueden elaborar, y, a la vez, le enseñarán algunos de los conceptos básicos. Después podrá realizar su primer ejercicio.'; |
|---|
| 1043 | N[3][2] = new Array(); |
|---|
| 1044 | |
|---|
| 1045 | N[3][3] = new Array(); |
|---|
| 1046 | N[3][3][0] = new Array(); |
|---|
| 1047 | N[3][3][0][0] = 11; |
|---|
| 1048 | N[3][3][0][1] = 'Ejemplos de Ejercicios'; |
|---|
| 1049 | N[3][3][0][2] = new Array(); |
|---|
| 1050 | |
|---|
| 1051 | N[3][3][0][3] = ''; |
|---|
| 1052 | N[3][3][0][4] = 0; |
|---|
| 1053 | |
|---|
| 1054 | N[3][3][1] = new Array(); |
|---|
| 1055 | N[3][3][1][0] = 12; |
|---|
| 1056 | N[3][3][1][1] = 'El desafío en 2-minutos: elabore su primer ejercicio'; |
|---|
| 1057 | N[3][3][1][2] = new Array(); |
|---|
| 1058 | |
|---|
| 1059 | N[3][3][1][3] = ''; |
|---|
| 1060 | N[3][3][1][4] = 0; |
|---|
| 1061 | |
|---|
| 1062 | N[3][3][2] = new Array(); |
|---|
| 1063 | N[3][3][2][0] = 13; |
|---|
| 1064 | N[3][3][2][1] = 'Tres pasos para elaborar un ejercicio'; |
|---|
| 1065 | N[3][3][2][2] = new Array(); |
|---|
| 1066 | |
|---|
| 1067 | N[3][3][2][3] = ''; |
|---|
| 1068 | N[3][3][2][4] = 0; |
|---|
| 1069 | |
|---|
| 1070 | |
|---|
| 1071 | N[3][4] = new Array(); |
|---|
| 1072 | |
|---|
| 1073 | |
|---|
| 1074 | N[4] = new Array(); |
|---|
| 1075 | N[4][0] = 'Las Patatas, una a una'; |
|---|
| 1076 | N[4][1] = 'En la versión 6 de Hot Potatoes existen seis Patatas. Elija la patata sobre la que quiere saber algo más:'; |
|---|
| 1077 | N[4][2] = new Array(); |
|---|
| 1078 | |
|---|
| 1079 | N[4][3] = new Array(); |
|---|
| 1080 | N[4][3][0] = new Array(); |
|---|
| 1081 | N[4][3][0][0] = 5; |
|---|
| 1082 | N[4][3][0][1] = 'JQuiz (ejercicios basados en preguntas)'; |
|---|
| 1083 | N[4][3][0][2] = new Array(); |
|---|
| 1084 | |
|---|
| 1085 | N[4][3][0][3] = ''; |
|---|
| 1086 | N[4][3][0][4] = 0; |
|---|
| 1087 | |
|---|
| 1088 | N[4][3][1] = new Array(); |
|---|
| 1089 | N[4][3][1][0] = 6; |
|---|
| 1090 | N[4][3][1][1] = 'JCloze (ejercicios de rellenar huecos)'; |
|---|
| 1091 | N[4][3][1][2] = new Array(); |
|---|
| 1092 | |
|---|
| 1093 | N[4][3][1][3] = ''; |
|---|
| 1094 | N[4][3][1][4] = 0; |
|---|
| 1095 | |
|---|
| 1096 | N[4][3][2] = new Array(); |
|---|
| 1097 | N[4][3][2][0] = 7; |
|---|
| 1098 | N[4][3][2][1] = 'JMatch (ejercicios de emparejamiemtos)'; |
|---|
| 1099 | N[4][3][2][2] = new Array(); |
|---|
| 1100 | |
|---|
| 1101 | N[4][3][2][3] = ''; |
|---|
| 1102 | N[4][3][2][4] = 0; |
|---|
| 1103 | |
|---|
| 1104 | N[4][3][3] = new Array(); |
|---|
| 1105 | N[4][3][3][0] = 8; |
|---|
| 1106 | N[4][3][3][1] = 'JMix (ejercicios para desordenar palabras o frases)'; |
|---|
| 1107 | N[4][3][3][2] = new Array(); |
|---|
| 1108 | |
|---|
| 1109 | N[4][3][3][3] = ''; |
|---|
| 1110 | N[4][3][3][4] = 0; |
|---|
| 1111 | |
|---|
| 1112 | N[4][3][4] = new Array(); |
|---|
| 1113 | N[4][3][4][0] = 9; |
|---|
| 1114 | N[4][3][4][1] = 'JCross (crucigramas)'; |
|---|
| 1115 | N[4][3][4][2] = new Array(); |
|---|
| 1116 | |
|---|
| 1117 | N[4][3][4][3] = ''; |
|---|
| 1118 | N[4][3][4][4] = 0; |
|---|
| 1119 | |
|---|
| 1120 | N[4][3][5] = new Array(); |
|---|
| 1121 | N[4][3][5][0] = 10; |
|---|
| 1122 | N[4][3][5][1] = 'The Masher (para crear unidades enlazadas a partir de diferentes ejercicios)'; |
|---|
| 1123 | N[4][3][5][2] = new Array(); |
|---|
| 1124 | |
|---|
| 1125 | N[4][3][5][3] = ''; |
|---|
| 1126 | N[4][3][5][4] = 0; |
|---|
| 1127 | |
|---|
| 1128 | |
|---|
| 1129 | N[4][4] = new Array(); |
|---|
| 1130 | |
|---|
| 1131 | |
|---|
| 1132 | N[5] = new Array(); |
|---|
| 1133 | N[5][0] = ' Introducción a JQuiz (ejercicios basados en preguntas)'; |
|---|
| 1134 | N[5][1] = 'JQuiz es una herramienta que permite elaborar ejercicios basados en preguntas. Cada test puede estar formado por un número ilimitado de preguntas. Se puden formular cuatro tipos de preguntas:<br /><br />En las <strong>preguntas de respuestas múltiples</strong>, los alumnos han de elegir una respuesta pulsando en un botón. Si la respuesta es correcta, el botón se convertirá en una carita sonriente :-), y si es errónea, cambiará a una X (estas opciones puden cambiarse en la ventana de configuración). En cualquier caso, el alumno verá algua indicación específica para dicha respuesta, explicándole porque está bien o mal (¡siempre suponiendo que usted ha escrito dichas indicaciones al realizar el ejercicio!). Si la respuesta es incorrecta, el alumno podrá seguir seleccioanndo opciones hasta dar con la respuesta correcta. La puntuación de cada pregunta dependerá del número de intentos hasta acertar la pregunta. Una vez que se ha elegido una respuesta correcta, la puntuación queda "congelada", pero el alumno podría seguir pulsando en los botones para ver las indicaciones de las demás respuestas sin que por ello se le penalice.<br /><br />En las <strong>preguntas de respuestas cortas</strong>, los alumnos deberán escribir una respuesta en una casilla de texto en la página, y pulsar en el botón <strong>Comprobar</strong> para ver si es correcta. La página intentará comprobar que la respuesta del alumno es una de las contenidas en la lista de respuestas correctas o incorrectas que usted haya definido. Si la respuesta está en la lista, se mostrarán las indicaciones para dicha respuesta. Si no es así, la página intentará encontrar la la respuesta más parecida entre las posibles respuestas correctas, e indicará al alumno la parte de su respuesta que se acerque a la correcta y qué partes son incorrectas. La puntuación obtenida depende del número de intentos realizados por el alumno antes de dar la respuesta correcta. También podría incluirse un botón <strong>Pista</strong>, para proporcionar al alumno una letra de la respuesta correcta; la utilización del botón Pista conllevará una penalización en la puntuación.<br /><br />Una <strong>pregunta híbrida</strong> es una combinación de una pregunta de respuestas múltiples y una pregunta de respuesta corta. En este tipo de preguntas, al alumno se le presenta una casilla de texto para que escriba la respuesta. Si el alumno no responde correctamente después de un especificado número de intentos (que usted puede definir en la pantalla de configuración), la pregunta cambia a otra de respuestas múltiples para que sea más fácil para el alumno.<br /><br />Por último, una pregunta de <strong>multi-selección</strong> consiste en que el alumno ha de seleccionar varias respuestas de la lista definida previamente. La idea aquí es que el alumno seleccione todas las posibles respuestas correctas, y no las respuestas inocrrectas. Este tipo de preguntas deberían formularse como "¿Cuál de los siguientes términos son nombres?", seguido de una lista de palabras. El alumno deberá marcar todas las palabras que sean nombres, y dejar sin marcar las palabras que no lo sean, y después pulsar en el botón <strong>Comprobar</strong>. Si la respuesta no es totalmente correcta, el alumno verá indicaciones del número de opciones correctas, e indiaciones para completar la pregunta; las indicaciones pueden hace referencia tanto a los elementos que <strong>han sido seleccionados cuando no lo deberían haber sido </strong>, como a los elementos <strong>no seleccionados cuando deberían haberlo sido</strong>.<br /><br />Para hacer pruebas con todos estos tipos de preguntas, véase este <a style="cursor: pointer; text-decoration: underline;" onclick="window.open(\'jquiz2.htm\'); return false;">ejemplo de test</a>.<br /><br />Para ver un ejemplo sobre como elaborar Tests con JQuiz, pulse en el enlace "Tres pasos". Para más información sobre la forma de trabajar de JQuiz, revise los <strong>Archivos de Ayuda</strong> -- arranque JQuiz y pulse en la tecla <strong>F1</strong>.'; |
|---|
| 1135 | N[5][2] = new Array(); |
|---|
| 1136 | |
|---|
| 1137 | N[5][3] = new Array(); |
|---|
| 1138 | N[5][3][0] = new Array(); |
|---|
| 1139 | N[5][3][0][0] = 13; |
|---|
| 1140 | N[5][3][0][1] = 'Tres pasos para elaborar un ejercicio'; |
|---|
| 1141 | N[5][3][0][2] = new Array(); |
|---|
| 1142 | |
|---|
| 1143 | N[5][3][0][3] = ''; |
|---|
| 1144 | N[5][3][0][4] = 0; |
|---|
| 1145 | |
|---|
| 1146 | N[5][3][1] = new Array(); |
|---|
| 1147 | N[5][3][1][0] = 0; |
|---|
| 1148 | N[5][3][1][1] = 'Índice'; |
|---|
| 1149 | N[5][3][1][2] = new Array(); |
|---|
| 1150 | |
|---|
| 1151 | N[5][3][1][3] = ''; |
|---|
| 1152 | N[5][3][1][4] = 0; |
|---|
| 1153 | |
|---|
| 1154 | |
|---|
| 1155 | N[5][4] = new Array(); |
|---|
| 1156 | |
|---|
| 1157 | |
|---|
| 1158 | N[6] = new Array(); |
|---|
| 1159 | N[6][0] = 'Introducción a JCloze (ejercicios de rellenar huecos)'; |
|---|
| 1160 | N[6][1] = 'JCloze se utiliza para elaborar ejercicos de completar huecos. La idea de este tipo de ejercicios es que el alumno complete todas las respuestas antes de comprobar el resultado; en otras palabras, es un ejercicio holístico. Cuando se han completado todos los huecos, el alumno pulsará sobre el botón <strong>Comprobar</strong> para ver las respuestas. Las respuestas correctas serán introducidas en el texto; las respuesats incorrectas se dejarán en las casillas de texto, para que puedan corregirse. Cuando el alumno comprueba una respuesta que no es totalmente correcta, se incurre en una penalización. Por tanto, la puntuación final dependerá del número de veces que se ha comprobado la respuesta antes de dar con la correcta. <br /><br />En los ejercicios JCloze, se pude incluir un botón <strong>Pista</strong> que proporcionará al alumno una letra de la respuesta correcta (en función de la posición del cursor). También puede incluir una pista específica para cada hueco. <br /><br />La creación de los huecos es muy sencilla -- veáse la figura siguiente:<br /><br /><img src="jcloze1.png" alt="Elaborando un ejercicio con JCloze." title="Elaborando un ejercico con JCLoze." width="608" height="484"></img><br /><br />También puede echarle un vistazo a este <a style="cursor: pointer; text-decoration: underline;" onclick="window.open(\'jcloze1.htm\'); return false;">ejemplo de ejercicio con JCloze</a>. Para más información sobre la forma de trabajar de JCloze, consulte el <strong>Archivo de Ayuda</strong> -- simplemente arranque JCloze y pulse la tecla <strong>F1</strong>.'; |
|---|
| 1161 | N[6][2] = new Array(); |
|---|
| 1162 | |
|---|
| 1163 | N[6][3] = new Array(); |
|---|
| 1164 | N[6][3][0] = new Array(); |
|---|
| 1165 | N[6][3][0][0] = 0; |
|---|
| 1166 | N[6][3][0][1] = 'Índice'; |
|---|
| 1167 | N[6][3][0][2] = new Array(); |
|---|
| 1168 | |
|---|
| 1169 | N[6][3][0][3] = ''; |
|---|
| 1170 | N[6][3][0][4] = 0; |
|---|
| 1171 | |
|---|
| 1172 | |
|---|
| 1173 | N[6][4] = new Array(); |
|---|
| 1174 | |
|---|
| 1175 | |
|---|
| 1176 | N[7] = new Array(); |
|---|
| 1177 | N[7][0] = ' Introducción a JMatch (ejercicios de emparejamiento)'; |
|---|
| 1178 | N[7][1] = 'JMatch se utiliza para crear ejercicios de emparejamiento. Básicamente esto quiere decir que se disponen una serie de elementos a un lado y cada uno de ellos ha de emparejarse con los elementos dispuestos en el lado opuesto.<br /><br />Los ejercicios generados con JMatch pueden ser de dos tipos: <strong>modelo estándar</strong> y <strong>modelo arrastrar y soltar</strong>. El modelo estándar (véase un <a style="cursor: pointer; text-decoration: underline;" onclick="window.open(\'jmatch1.htm\'); return false;">ejemplo</a>) utiliza una lista desplegable de elementos a la derecha. Este es el formato a utilizar cuando usted tenga más de siete u ocho elementos, y cuando los elementos de la derecha son solo de tipo texto; si solamente tiene unos pocos elementos, y especialmente cuando los elementos son gráficos, ustede deberá utilziar el modelo arrastrar y soltar (véase este <a style="cursor: pointer; text-decoration: underline;" onclick="window.open(\'jmatch2.htm\'); return false;">ejemplo</a>). No utilice el modelo arrastrar y soltar si tiene más de ocho elementos, ya que tendrá que utilizar la barra de desplazamiento vertical y esto dificultará el arrastre de los elementos.<br /><br />Para elaborar un ejercicio con JMatch, introduzca cada uno de los pares de elementos en la misma línea, tal como se muestra en la figura siguiente. Cuando exporte para crear la página Web, el progrqama se encargará de ordenar los elementos a la derecha.<br /><br /><img src="jmatch1.png" alt="Elaborando un ejercicio con JMatch" title="Elaborando un ejercicio con JMatch" width="750" height="465"></img><br /><br />Para más información sobre la forma de trabajar de JMatch, consulte los <strong>Archivos de Ayuda</strong> -- simplemente arranque JMatch y pulse la tecla <strong>F1</strong>.'; |
|---|
| 1179 | N[7][2] = new Array(); |
|---|
| 1180 | |
|---|
| 1181 | N[7][3] = new Array(); |
|---|
| 1182 | N[7][3][0] = new Array(); |
|---|
| 1183 | N[7][3][0][0] = 0; |
|---|
| 1184 | N[7][3][0][1] = 'Índice'; |
|---|
| 1185 | N[7][3][0][2] = new Array(); |
|---|
| 1186 | |
|---|
| 1187 | N[7][3][0][3] = ''; |
|---|
| 1188 | N[7][3][0][4] = 0; |
|---|
| 1189 | |
|---|
| 1190 | |
|---|
| 1191 | N[7][4] = new Array(); |
|---|
| 1192 | |
|---|
| 1193 | |
|---|
| 1194 | N[8] = new Array(); |
|---|
| 1195 | N[8][0] = ' Introducción a JMix (ejercicos para ordenar las letras de una palabra o las palabras de una frase)'; |
|---|
| 1196 | N[8][1] = 'JMix se utiliza para elaborar ejercicos de ordenar palabras o frases. Puede ordenar las palabras de una frase, o las letras de una palabra. Como JMatch, JMix puede presentarse en dos modalidades: <strong>modelo estándar</strong>, y <strong>modelo arrastrar y soltar</strong>. Para ver ejemplos, pulse aquí <a style="cursor: pointer; text-decoration: underline;" onclick="window.open(\'jmix1.htm\'); return false;">Ejercicios modelo estándar</a> o aquí <a style="cursor: pointer; text-decoration: underline;" onclick="window.open(\'jmix2.htm\'); return false;">Ejercicios modelo arrastrar y soltar</a>.<br /><br />Para obtener instrucciones detalladas sobre como hacer un ejercicio sencillo con JMix, acceda al enlace del Desafío en 2 minutos que se muestra a continuación.<br /><br />Para más información sobre la forma de trabajar de JMix, consulte los <strong><STRONG>Archivos de Ayuda</STRONG> </strong> -- simplemente arranque JMix y pulse la tecla <strong>F1</strong>.'; |
|---|
| 1197 | N[8][2] = new Array(); |
|---|
| 1198 | |
|---|
| 1199 | N[8][3] = new Array(); |
|---|
| 1200 | N[8][3][0] = new Array(); |
|---|
| 1201 | N[8][3][0][0] = 12; |
|---|
| 1202 | N[8][3][0][1] = 'El Desafío en 2 minutos: Elabore su primer ejercicio'; |
|---|
| 1203 | N[8][3][0][2] = new Array(); |
|---|
| 1204 | |
|---|
| 1205 | N[8][3][0][3] = ''; |
|---|
| 1206 | N[8][3][0][4] = 0; |
|---|
| 1207 | |
|---|
| 1208 | N[8][3][1] = new Array(); |
|---|
| 1209 | N[8][3][1][0] = 0; |
|---|
| 1210 | N[8][3][1][1] = 'Índice'; |
|---|
| 1211 | N[8][3][1][2] = new Array(); |
|---|
| 1212 | |
|---|
| 1213 | N[8][3][1][3] = ''; |
|---|
| 1214 | N[8][3][1][4] = 0; |
|---|
| 1215 | |
|---|
| 1216 | |
|---|
| 1217 | N[8][4] = new Array(); |
|---|
| 1218 | |
|---|
| 1219 | |
|---|
| 1220 | N[9] = new Array(); |
|---|
| 1221 | N[9][0] = ' Introducción a JCross (crucigramas)'; |
|---|
| 1222 | N[9][1] = 'JCross se utiliza para realizar crucigramas. Hay dos fases en la elaboración de un ejercico de crucigrama; primero deberá introducir las letras en la cuadrícula, segundo: añadir las definiciones. Para introducir las letras en la cuadrícula, pulse en una de las casillas y escriba la letra. Pruebe a realizar el ejemplo de la figura siguiente:<br /><br /><img src="jcross1.png" alt="Elaboración de la cuadrícula de un crucigrama." title="Elaboración de la cuadrícula de un crucigrama ." width="575" height="518"></img><br /><br />Cuando haya terminado la cuadrícula, pulse en el botón <strong>Añadir pistas</strong>. Después, para añadir cada una de las definiciones de las palabras de la cuadrícula, pulse en la palabra, escriba la definición o pista y pulse el botón OK:<br /><br /><img src="jcross2.png" alt="Adding clues." title="Adding clues." width="600" height="428"></img><br /><br />A continuación se muestra un <a style="cursor: pointer; text-decoration: underline;" onclick="window.open(\'jcross1.htm\'); return false;">Ejemplo de crucigrama con JCross</a>. Para más información sobre la forma de trabajar de JCross, consulte los <strong>Archivos de Ayuda</strong> -- simplemente arranque JCross y pulse la tecla <strong>F1</strong>.<br /><br />'; |
|---|
| 1223 | N[9][2] = new Array(); |
|---|
| 1224 | |
|---|
| 1225 | N[9][3] = new Array(); |
|---|
| 1226 | |
|---|
| 1227 | N[9][4] = new Array(); |
|---|
| 1228 | |
|---|
| 1229 | |
|---|
| 1230 | N[10] = new Array(); |
|---|
| 1231 | N[10][0] = 'The Masher (para crear unidades enlazadas a partir de diferentes ejercicios)'; |
|---|
| 1232 | N[10][1] = 'The Masher es un tipo de aplicación diferente de las otras patatas de Hot Potatoes. Sirve para ayudarle a elaborar unidades mas complejas con sus materiales, para enlazar sus ejercicios. Para utilizar The Masher necesita una clave de registro independiente, que solamente puede conseguir si adquiere la versión comercial de Hot Potatoes. Sin dicha clave de registro, solamente podrá elaborar pequeñas unidades de ejercicios. The Masher se utiliza también para publicar archivos que no son ejercicios de Hot Potatoes en la red <a style="cursor: pointer; text-decoration: underline;" onclick="window.open(\'http://www.hotpotatoes.net\'); return false;">www.hotpotatoes.net</a>.<br /><br />The Masher tiene su propio tutorial (pulse sobre <strong>Ayuda / Tutorial</strong> en el programa The Masher, o <a href="mashertutorial.htm">pulse ahora aquí</a>), también incluye un dettalado Archivo de Ayuda. Para ver el Archivo de Ayuda, arranque el programa The Masher y pulse la tecla <strong>F1</strong>.'; |
|---|
| 1233 | N[10][2] = new Array(); |
|---|
| 1234 | |
|---|
| 1235 | N[10][3] = new Array(); |
|---|
| 1236 | |
|---|
| 1237 | N[10][4] = new Array(); |
|---|
| 1238 | |
|---|
| 1239 | |
|---|
| 1240 | N[11] = new Array(); |
|---|
| 1241 | N[11][0] = 'Ejemplos de ejercicios'; |
|---|
| 1242 | N[11][1] = 'Pulsando en los enlacces podrá acceder a los ejercicios en una nueva ventana (así no perderá el rumbo en este tutorial). Una vez que haya accedido a un ejercicio en su navegador, podrá moverse por todos ellos pulsando en el botón Siguiente en la parte superior del ejercicio. Al terminar de ver los ejercicios, cierre esa ventana del navegador y volverá a ver esta ventana. Posteriormente podrá empezar a realizar su primer ejercicio. <ul><li><a href="" style="cursor: pointer;" onclick="window.open(\'jquiz1.htm\'); return false;">Ejercicio sobre JQuiz</a></li><li><a href="" style="cursor: pointer;" onclick="window.open(\'jcloze1.htm\'); return false;">Ejercicio 1 sobre JCloze</a></li><li><a href="" style="cursor: pointer;" onclick="window.open(\'jcloze2.htm\'); return false;">Ejercicio 2 sobre JCloze</a></li><li><a href="" style="cursor: pointer;" onclick="window.open(\'jcross1.htm\'); return false;">Ejercicio sobre JCross</a></li><li><a href="" style="cursor: pointer;" onclick="window.open(\'jmix1.htm\'); return false;">Ejercicio 1 sobre JMix</a></li><li><a href="" style="cursor: pointer;" onclick="window.open(\'jmix2.htm\'); return false;">Ejercicio 2 sobre JMix (arrastrar y soltar)</a></li><li><a href="" style="cursor: pointer;" onclick="window.open(\'jmatch1.htm\'); return false;">Ejercicio 1 sobre JMatch</a></li><li><a href="" style="cursor: pointer;" onclick="window.open(\'jmatch2.htm\'); return false;">Ejercicio 2 sobre JMatch (arrastrar y soltar)</a></li></ul>'; |
|---|
| 1243 | N[11][2] = new Array(); |
|---|
| 1244 | |
|---|
| 1245 | N[11][3] = new Array(); |
|---|
| 1246 | N[11][3][0] = new Array(); |
|---|
| 1247 | N[11][3][0][0] = 12; |
|---|
| 1248 | N[11][3][0][1] = 'El Desafío en 2 minutos: elabore su primer ejercicio'; |
|---|
| 1249 | N[11][3][0][2] = new Array(); |
|---|
| 1250 | |
|---|
| 1251 | N[11][3][0][3] = ''; |
|---|
| 1252 | N[11][3][0][4] = 0; |
|---|
| 1253 | |
|---|
| 1254 | |
|---|
| 1255 | N[11][4] = new Array(); |
|---|
| 1256 | |
|---|
| 1257 | |
|---|
| 1258 | N[12] = new Array(); |
|---|
| 1259 | N[12][0] = 'El Desafío en 2 minutos: elabore su primer ejercicio'; |
|---|
| 1260 | N[12][1] = 'Ahora que ya ha visto el aspecto de todas las modalidades de ejercicios, es el momento de intentar eleborar sus propios ejercicios. Estamos deseando demostrarle que puede hacerlo en dos minutos exactos, utilizando <strong>JMix</strong>. Esto es lo que tiene que hacer:<br /><br />Arranque el programa <strong>JMix</strong>, después<br /><ol><br /> <li>Introduzca un <strong>título</strong>.</li> <li>Introduzca una <strong>frase</strong>. Parta su frase en segmentos, colocando cada segmento en una línea separada.</li> <li>Pulse sobre uno de los dos botones Web, o seleccione "Crear página web" en el menú Archivo. Existen dos formatos de salida, estádar y arrastrar y soltar. Para este ejercicio, no importa cuál se elija.</li> <li>Elija un nombre para su página Web.</li> <li>En el cuadro de dialogo que aparece, puse sobre "Ver el ejercicio en mi navegador".</li></ol><br />Cuando haya terminado, vuelva aquí para continuar con la presentación. Puede que prefiera utilizar el botón <strong>Marcador</strong> de la parte superior de esta página para crear un marcador o favorito en su navegador, así no tendrá que estar navegando para llegar a esta sección de nuevo.<br /><br /><img src="jmix1.png" alt="Cómo crear un ejercicio en JMix" width="649" height="471" title="Cómo crear un ejercicio en JMix"></img>'; |
|---|
| 1261 | N[12][2] = new Array(); |
|---|
| 1262 | |
|---|
| 1263 | N[12][3] = new Array(); |
|---|
| 1264 | N[12][3][0] = new Array(); |
|---|
| 1265 | N[12][3][0][0] = 13; |
|---|
| 1266 | N[12][3][0][1] = 'Tres pasos para elaborar un ejercicio'; |
|---|
| 1267 | N[12][3][0][2] = new Array(); |
|---|
| 1268 | |
|---|
| 1269 | N[12][3][0][3] = ''; |
|---|
| 1270 | N[12][3][0][4] = 0; |
|---|
| 1271 | |
|---|
| 1272 | |
|---|
| 1273 | N[12][4] = new Array(); |
|---|
| 1274 | |
|---|
| 1275 | |
|---|
| 1276 | N[13] = new Array(); |
|---|
| 1277 | N[13][0] = 'Tres pasos para elaborar un ejercicio'; |
|---|
| 1278 | N[13][1] = 'Aunque probablemente piense que con el desafío en dos minutos ya puede empezar a trabajar, necesitará saber algo más sobre la forma de trabajar de estas aplicaciones para poder sacarles el máximo partido. Esta última sección del tutorial le conducirá paso a paso a través del proceso de elaboración de un ejercicio mediante <strong>JQuiz</strong>, para presentarle algunos de los conceptos básicos con los que debe familiarizarse.<br /><br />Para elaborar un ejercicio podemos distinguir tres fases o pasos:<br /><br /><ol><li><strong>Introducción de los datos</strong> (preguntas, respuestas y todo lo demás)</li><li><strong>Configuración del formato de salida</strong> (preparación de las leyendas de los botones, instrucciones, y otras características de su página Web)</li><li><strong>Creación de las páginas Web</strong> (compilar sus ejercicios en páginas HTML).</li></ol>'; |
|---|
| 1279 | N[13][2] = new Array(); |
|---|
| 1280 | |
|---|
| 1281 | N[13][3] = new Array(); |
|---|
| 1282 | N[13][3][0] = new Array(); |
|---|
| 1283 | N[13][3][0][0] = 14; |
|---|
| 1284 | N[13][3][0][1] = 'Primera fase: Introducción de los datos'; |
|---|
| 1285 | N[13][3][0][2] = new Array(); |
|---|
| 1286 | |
|---|
| 1287 | N[13][3][0][3] = ''; |
|---|
| 1288 | N[13][3][0][4] = 0; |
|---|
| 1289 | |
|---|
| 1290 | |
|---|
| 1291 | N[13][4] = new Array(); |
|---|
| 1292 | |
|---|
| 1293 | |
|---|
| 1294 | N[14] = new Array(); |
|---|
| 1295 | N[14][0] = 'Primera fase: Introducción de los datos'; |
|---|
| 1296 | N[14][1] = 'En esta parte del tutorial vamos a elaborar un ejercicio de respuestas múltiples utilizando <strong>JQuiz</strong>. La primera fase consiste en introducir las preguntas y las respuestas de su ejercicio. Primero, arranque el programa <strong>JQuiz</strong>. Deberá ver un interfaz como el que se muestra en la figura siguiente. Si su interfaz aparece más complejo que este, está probablemente en la <strong>Modalidad Avanzada</strong>; en ese caso, basta con pulsar en <strong>Opciones / Modalidad / Modalidad Principiantes</strong>.<br /><br />Observe la figura siguiente, y escriba la siguiente información:<br /><br /><ol><li>Escriba el título en la casilla de título.</li><li>Escriba la pregunta en la casilla de preguntas.</li><li>Compruebe que está seleccionado "Respuestas múltiples" en el menú desplegable a la derecha de la pregunta. Esto define el tipo de pregunta que desee realizar.</li><li>Escriba las posibles respuestas en las casillas de la izquierda, y las indicaciones en las de la derecha. Tenga en cuenta que cada una de las respuestas, correcta o incorrecta, tiene sus propias indicaciones.</li><li>Marque la casilla "Correcto" que está junto a la respuesta B.</li></ol><br /><br /><img src="jquiz1.png" alt="Interfaz de JQuiz que muestra una pregunta de respuestas múltiples." width="871" height="638" title="Interfaz de JQuiz que muestra una pregunta de respuestas múltiples."></img>'; |
|---|
| 1297 | N[14][2] = new Array(); |
|---|
| 1298 | |
|---|
| 1299 | N[14][3] = new Array(); |
|---|
| 1300 | N[14][3][0] = new Array(); |
|---|
| 1301 | N[14][3][0][0] = 15; |
|---|
| 1302 | N[14][3][0][1] = 'Segunda fase: Configuración del formato de salida'; |
|---|
| 1303 | N[14][3][0][2] = new Array(); |
|---|
| 1304 | |
|---|
| 1305 | N[14][3][0][3] = ''; |
|---|
| 1306 | N[14][3][0][4] = 0; |
|---|
| 1307 | |
|---|
| 1308 | |
|---|
| 1309 | N[14][4] = new Array(); |
|---|
| 1310 | |
|---|
| 1311 | |
|---|
| 1312 | N[15] = new Array(); |
|---|
| 1313 | N[15][0] = 'Segunda fase: Configuración del formato de salida'; |
|---|
| 1314 | N[15][1] = 'Cuando los programas de Hot Potatoes crean las páginas Web pages, lo hacen combinando 3 tipos de recursos:<ul><li>Los <strong>datos</strong> introducidos</li><li>La información de <strong>configuración</strong></li><li>Un conjunto de "<strong>archivos fuente</strong>", o plantillas, que contienen la estructura de la página. </li></ul>Ya hemos visto como se trabaja con los datos; el siguiente paso es la Configuración. La información de configuración esta formada por un conjunto de fragmentos de texto, incluyendo las instrucciones para realizar el ejercicio, las leyendas de los botones, los enlaces a las URLs, que no suelen variar mucho de un ejercicio a otro. Por ejemplo, algunos de los ejercicios de muestra que usted ha visto anteriormente incluyen un botón etiquetado como "Comprobar", para que el alumno pueda comprobar sus respuestas. La leyenda "Comprobar" puede que no cambie de un ejercicIo a otro, por ello no es necesario almacenarlo con los datos; sin embargo, puede que usted necesite cambiarlo (por ejemplo, si usted está creando ejercicios en otro idioma).<br /><br />En el ejemplo de ejercicio de respuestas múltiples, deberá recordar que los ejercicios tienen un título, un subtítulo, y algunas instrucciones en la parte superior de la página. El título de cada ejercicio deberá ser único, por eso forma parte de los <strong>datos</strong>. Sin embargo, el subtítulo (e.g. "Ejercicio de Respuestas Multiples") y las instrucciones ("Elija la respuesta correcta para cada pregunta") probablemente sean las mismas en los ejercicios similares, por ello son parte de la <strong>configuración</strong>. En esta segunda fase vamos a cambiar la configruación.<br /><br />Primero, pulse en <strong>Opciones / Configurar el formato del archivo originado</strong> para acceder a la ventana de configuración. La primera de las fichas, etiquetada como <strong>Títulos / Instrucciones</strong>, contiene el subtítulo del ejercicio y las instrucciones. Escriba algún texto, como en el ejemplo de la figura, después pulse sobre el botón OK.<br /><br /><img src="jquiz_config.png" alt="Ventana de configuración de JQuiz" title="Ventana de configuración de JQuiz" width="628" height="550"></img>'; |
|---|
| 1315 | N[15][2] = new Array(); |
|---|
| 1316 | |
|---|
| 1317 | N[15][3] = new Array(); |
|---|
| 1318 | N[15][3][0] = new Array(); |
|---|
| 1319 | N[15][3][0][0] = 16; |
|---|
| 1320 | N[15][3][0][1] = 'Tercera fase: Creación de las páginas Web'; |
|---|
| 1321 | N[15][3][0][2] = new Array(); |
|---|
| 1322 | |
|---|
| 1323 | N[15][3][0][3] = ''; |
|---|
| 1324 | N[15][3][0][4] = 0; |
|---|
| 1325 | |
|---|
| 1326 | |
|---|
| 1327 | N[15][4] = new Array(); |
|---|
| 1328 | |
|---|
| 1329 | |
|---|
| 1330 | N[16] = new Array(); |
|---|
| 1331 | N[16][0] = 'Tercera fase: Creación de las páginas Web'; |
|---|
| 1332 | N[16][1] = 'El último paso consiste en crear las páginas Web a partir de sus datos. Todo lo que necesita hacer es pulsar en <strong>Crear página web / Página web para navegadores v6</strong> en el menú Archivo, y ponerle un nombre a la página. Ponga como nombre de archivo "<strong>test.htm</strong>":<br /><br /><img src="jquiz_output.png" alt="Creando una página Web con JQuiz" title="Creando una página Web con JQuiz" width="424" height="413"></img><br /><br />El programa le informará de que ha generado un archivo, y le permitirá verlo en su navegador. Esto es todo<br />'; |
|---|
| 1333 | N[16][2] = new Array(); |
|---|
| 1334 | |
|---|
| 1335 | N[16][3] = new Array(); |
|---|
| 1336 | N[16][3][0] = new Array(); |
|---|
| 1337 | N[16][3][0][0] = 0; |
|---|
| 1338 | N[16][3][0][1] = 'Índice'; |
|---|
| 1339 | N[16][3][0][2] = new Array(); |
|---|
| 1340 | |
|---|
| 1341 | N[16][3][0][3] = ''; |
|---|
| 1342 | N[16][3][0][4] = 0; |
|---|
| 1343 | |
|---|
| 1344 | N[16][3][1] = new Array(); |
|---|
| 1345 | N[16][3][1][0] = 4; |
|---|
| 1346 | N[16][3][1][1] = 'Las Patatas, una a una'; |
|---|
| 1347 | N[16][3][1][2] = new Array(); |
|---|
| 1348 | |
|---|
| 1349 | N[16][3][1][3] = ''; |
|---|
| 1350 | N[16][3][1][4] = 0; |
|---|
| 1351 | |
|---|
| 1352 | |
|---|
| 1353 | N[16][4] = new Array(); |
|---|
| 1354 | |
|---|
| 1355 | |
|---|
| 1356 | N[17] = new Array(); |
|---|
| 1357 | N[17][0] = 'El servidor de hotpotatoes.net'; |
|---|
| 1358 | N[17][1] = 'Siempre que elabore un ejercicio con Hot Potatoes, verá el siguiente cuadro de dialogo:<br /><br /><img src="hotpotnet1.png" alt="Ver o publicar el ejercicio." title="Ver o publicar el ejercicio." width="455" height="264"></img><br /><br />Generalmente, usted deseará ver el ejercicio en su navegador para comprobar que funciona tal como usted espera. Sin embargo, la segunda opción le permite utilizar el servicio de publicación de páginas web de <a style="cursor: pointer; text-decoration: underline;" onclick="window.open(\'http://www.hotpotatoes.net\'); return false;">www.hotpotatoes.net</a>. Se trata de un servidor de páginas Web que puede publicar sus ejercicios de Hot Potatoes, y que le permite proteger mediante contraseña sus ejercicios; sus alumnos podrán conectarse al servidor y realizar los ejerciicos, posteriormente usted podrá revisarlos y comprobar los resultados obtenidos. Este servicio no es gratuito, pero es bastante barato, y puede probarlo creando una cuenta de demostración y publicando unos cuantos ejercicios. Para crear una cuenta demo, simplemente pulse sobre "<strong>Publicar el ejercicio en hotpotatoes.net Website</strong>", después seleccione la opción "<strong>Crear una cuenta demo para mi en hotpotatoes.net</strong>". <br /><br />Para más información sobre el servicio hotpotatoes.net, vea <a style="cursor: pointer; text-decoration: underline;" onclick="window.open(\'http://www.hotpotatoes.info\'); return false;">www.hotpotatoes.info</a>.'; |
|---|
| 1359 | N[17][2] = new Array(); |
|---|
| 1360 | |
|---|
| 1361 | N[17][3] = new Array(); |
|---|
| 1362 | N[17][3][0] = new Array(); |
|---|
| 1363 | N[17][3][0][0] = 0; |
|---|
| 1364 | N[17][3][0][1] = 'Índice'; |
|---|
| 1365 | N[17][3][0][2] = new Array(); |
|---|
| 1366 | |
|---|
| 1367 | N[17][3][0][3] = ''; |
|---|
| 1368 | N[17][3][0][4] = 0; |
|---|
| 1369 | |
|---|
| 1370 | |
|---|
| 1371 | N[17][4] = new Array(); |
|---|
| 1372 | |
|---|
| 1373 | |
|---|
| 1374 | |
|---|
| 1375 | |
|---|
| 1376 | |
|---|
| 1377 | |
|---|
| 1378 | |
|---|
| 1379 | |
|---|
| 1380 | |
|---|
| 1381 | |
|---|
| 1382 | </script> |
|---|
| 1383 | </head> |
|---|
| 1384 | <body onload="StartUp()"> |
|---|
| 1385 | <!-- BeginTopNavButtons --> |
|---|
| 1386 | |
|---|
| 1387 | |
|---|
| 1388 | <div class="NavButtonBar"> |
|---|
| 1389 | |
|---|
| 1390 | |
|---|
| 1391 | |
|---|
| 1392 | |
|---|
| 1393 | <button class="NavButton" onfocus="NavBtnOver(this)" onblur="NavBtnOut(this)" onmouseover="NavBtnOver(this)" onmouseout="NavBtnOut(this)" onmousedown="NavBtnDown(this)" onmouseup="NavBtnOver(this)" onclick="location='tutorial.htm?___q;0;'; return false;"> |
|---|
| 1394 | Índice </button> |
|---|
| 1395 | |
|---|
| 1396 | |
|---|
| 1397 | |
|---|
| 1398 | |
|---|
| 1399 | </div> |
|---|
| 1400 | |
|---|
| 1401 | |
|---|
| 1402 | <!-- EndTopNavButtons --> |
|---|
| 1403 | |
|---|
| 1404 | <div class="Titles"> |
|---|
| 1405 | <h2 class="ExerciseTitle">Tutorial en castellano de Hot Potatoes 6</h2> |
|---|
| 1406 | |
|---|
| 1407 | |
|---|
| 1408 | |
|---|
| 1409 | </div> |
|---|
| 1410 | |
|---|
| 1411 | <div class="DecisionPoint"> |
|---|
| 1412 | |
|---|
| 1413 | |
|---|
| 1414 | <div class="ControlButtons"> |
|---|
| 1415 | |
|---|
| 1416 | <button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOver(this)" onclick="SetBookmark()"> |
|---|
| 1417 | Marcador</button> |
|---|
| 1418 | |
|---|
| 1419 | <button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOver(this)" onclick="Restart()"> |
|---|
| 1420 | Volver a empezar</button> |
|---|
| 1421 | |
|---|
| 1422 | <button id="UndoButton" class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOver(this)" onclick="Undo()"> |
|---|
| 1423 | Atrás</button> |
|---|
| 1424 | |
|---|
| 1425 | </div> |
|---|
| 1426 | |
|---|
| 1427 | <h2 id="DPTitle" class="DecisionPointTitle"></h2> |
|---|
| 1428 | |
|---|
| 1429 | <table class="DPTable"><tr> |
|---|
| 1430 | <td style="font-size: small; color: #000000"> |
|---|
| 1431 | |
|---|
| 1432 | <div id="DPContentsDiv" class="DecisionPointText"> |
|---|
| 1433 | |
|---|
| 1434 | <div class="Instructions"> |
|---|
| 1435 | Bienvenido al tutorial sobre Hot Potatoes. Este tutorial se ejecuta en su navegador Web. Pulse en el botón Comenzar para entrar en el tutorial.<BR>.<br /> |
|---|
| 1436 | </div> |
|---|
| 1437 | |
|---|
| 1438 | <div class="Instructions"> |
|---|
| 1439 | |
|---|
| 1440 | </div> |
|---|
| 1441 | |
|---|
| 1442 | </div> |
|---|
| 1443 | |
|---|
| 1444 | <div id="LinkListDiv" class="LinkList"> |
|---|
| 1445 | |
|---|
| 1446 | <div style="text-align: center; font-size:small; color:#000000"> |
|---|
| 1447 | <button class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOver(this)" onclick="StartExercise()"> |
|---|
| 1448 | Comenzar</button> |
|---|
| 1449 | </div> |
|---|
| 1450 | </div> |
|---|
| 1451 | |
|---|
| 1452 | </td> |
|---|
| 1453 | <td style="font-size: small; color: #000000"> |
|---|
| 1454 | <div id="AssetsDiv" class="Assets"> |
|---|
| 1455 | |
|---|
| 1456 | </div> |
|---|
| 1457 | </td></tr></table> |
|---|
| 1458 | </div> |
|---|
| 1459 | |
|---|
| 1460 | |
|---|
| 1461 | <div class="Feedback" id="FeedbackDiv"> |
|---|
| 1462 | <div class="FeedbackText" id="FeedbackContent"></div> |
|---|
| 1463 | <p> |
|---|
| 1464 | <button id="FeedbackOKButton" class="FuncButton" onfocus="FuncBtnOver(this)" onblur="FuncBtnOut(this)" onmouseover="FuncBtnOver(this)" onmouseout="FuncBtnOut(this)" onmousedown="FuncBtnDown(this)" onmouseup="FuncBtnOver(this)" onclick="HideFeedback(); return false;"> OK </button> |
|---|
| 1465 | </div> |
|---|
| 1466 | |
|---|
| 1467 | <!-- BeginBottomNavButtons --> |
|---|
| 1468 | |
|---|
| 1469 | |
|---|
| 1470 | <!-- <div class="NavButtonBar" id="BottomNavBar"> |
|---|
| 1471 | |
|---|
| 1472 | |
|---|
| 1473 | |
|---|
| 1474 | |
|---|
| 1475 | <button class="NavButton" onfocus="NavBtnOver(this)" onblur="NavBtnOut(this)" onmouseover="NavBtnOver(this)" onmouseout="NavBtnOut(this)" onmousedown="NavBtnDown(this)" onmouseup="NavBtnOver(this)" onclick="location='tutorial.htm?___q;0;'; return false;"> Index </button> |
|---|
| 1476 | |
|---|
| 1477 | |
|---|
| 1478 | |
|---|
| 1479 | |
|---|
| 1480 | </div> --> |
|---|
| 1481 | |
|---|
| 1482 | |
|---|
| 1483 | <!-- EndBottomNavButtons --> |
|---|
| 1484 | |
|---|
| 1485 | <!-- BeginSubmissionForm --> |
|---|
| 1486 | |
|---|
| 1487 | <!-- EndSubmissionForm --> |
|---|
| 1488 | |
|---|
| 1489 | |
|---|
| 1490 | </body> |
|---|
| 1491 | </html> |
|---|