質問編集履歴
1
quiz.jsの追加・添付
test
CHANGED
File without changes
|
test
CHANGED
@@ -308,6 +308,288 @@
|
|
308
308
|
|
309
309
|
|
310
310
|
|
311
|
+
### quiz.js です (04/23ご指摘を受け追記)
|
312
|
+
|
313
|
+
```javascript
|
314
|
+
|
315
|
+
// ===========================================
|
316
|
+
|
317
|
+
// 47都道府県クイズ JavaScript
|
318
|
+
|
319
|
+
// ===========================================
|
320
|
+
|
321
|
+
|
322
|
+
|
323
|
+
// ============アプリ共通変数の定義============
|
324
|
+
|
325
|
+
|
326
|
+
|
327
|
+
//グローバルオブジェクト(空オブジェクト)
|
328
|
+
|
329
|
+
var MYQUIZ = {};
|
330
|
+
|
331
|
+
|
332
|
+
|
333
|
+
//都道府県データ(名称、面積(平方km))
|
334
|
+
|
335
|
+
MYQUIZ.todofuken = [
|
336
|
+
|
337
|
+
["北海道", "83457"],["青森県", "9644"], ["岩手県", "15279"],
|
338
|
+
|
339
|
+
["宮城県", "7286"], ["秋田県", "11636"], ["山形県", "9323"],
|
340
|
+
|
341
|
+
["福島県", "13783"],["茨城県", "6096"], ["栃木県", "6408"],
|
342
|
+
|
343
|
+
["群馬県", "6363"], ["埼玉県", "3797"], ["千葉県", "5157"],
|
344
|
+
|
345
|
+
["東京都", "2188"], ["神奈川県", "2416"],["新潟県", "12584"],
|
346
|
+
|
347
|
+
["富山県", "4248"], ["石川県", "4186"], ["福井県", "4190"],
|
348
|
+
|
349
|
+
["山梨県", "4465"], ["長野県", "13562"], ["岐阜県", "10621"],
|
350
|
+
|
351
|
+
["静岡県", "7780"], ["愛知県", "5165"], ["三重県", "5777"],
|
352
|
+
|
353
|
+
["滋賀県", "4017"], ["京都府", "4613"], ["大阪府", "1898"],
|
354
|
+
|
355
|
+
["兵庫県", "8396"], ["奈良県", "3691"], ["和歌山県","4726"],
|
356
|
+
|
357
|
+
["鳥取県", "3507"], ["島根県", "6708"], ["岡山県", "7113"],
|
358
|
+
|
359
|
+
["広島県", "8479"], ["山口県", "6113"], ["徳島県", "4147"],
|
360
|
+
|
361
|
+
["香川県", "1877"], ["愛媛県", "5678"], ["高知県", "7105"],
|
362
|
+
|
363
|
+
["福岡県", "4977"], ["佐賀県", "2440"], ["長崎県", "4105"],
|
364
|
+
|
365
|
+
["熊本県", "7405"], ["大分県", "6340"], ["宮崎県", "7736"],
|
366
|
+
|
367
|
+
["鹿児島県","9189"],["沖縄県", "2276"]
|
368
|
+
|
369
|
+
];
|
370
|
+
|
371
|
+
|
372
|
+
|
373
|
+
//スコアの初期化
|
374
|
+
|
375
|
+
if(!localStorage.totalQuestion){
|
376
|
+
|
377
|
+
localStorage.totalQuestion = 0;
|
378
|
+
|
379
|
+
localStorage.correctAnswer = 0;
|
380
|
+
|
381
|
+
}
|
382
|
+
|
383
|
+
|
384
|
+
|
385
|
+
// =====▽▽この下にページごとの処理を記述します▽▽=====
|
386
|
+
|
387
|
+
|
388
|
+
|
389
|
+
// ============ページ区切り[問題]============
|
390
|
+
|
391
|
+
$(document).on("pageinit", "#questionPage", function(){
|
392
|
+
|
393
|
+
|
394
|
+
|
395
|
+
//画面表示時の処理
|
396
|
+
|
397
|
+
$("#questionPage").on("pageshow", function() {
|
398
|
+
|
399
|
+
|
400
|
+
|
401
|
+
var randNum = new Array(3);
|
402
|
+
|
403
|
+
|
404
|
+
|
405
|
+
//0から46までの重複のない整数を3つ取得
|
406
|
+
|
407
|
+
do{
|
408
|
+
|
409
|
+
for(var i = 0; i < randNum.length ; i++){
|
410
|
+
|
411
|
+
randNum[i] = Math.floor(Math.random() * 47);
|
412
|
+
|
413
|
+
}
|
414
|
+
|
415
|
+
}while(MYQUIZ.isDuplicate(randNum));
|
416
|
+
|
417
|
+
|
418
|
+
|
419
|
+
//問題を表示
|
420
|
+
|
421
|
+
$("#1").html(MYQUIZ.todofuken[randNum[0]][0]);
|
422
|
+
|
423
|
+
$("#2").html(MYQUIZ.todofuken[randNum[1]][0]);
|
424
|
+
|
425
|
+
$("#3").html(MYQUIZ.todofuken[randNum[2]][0]);
|
426
|
+
|
427
|
+
|
428
|
+
|
429
|
+
//都道府県番号をsessionStorageに保存
|
430
|
+
|
431
|
+
sessionStorage.randNum1 = randNum[0];
|
432
|
+
|
433
|
+
sessionStorage.randNum2 = randNum[1];
|
434
|
+
|
435
|
+
sessionStorage.randNum3 = randNum[2];
|
436
|
+
|
437
|
+
});
|
438
|
+
|
439
|
+
|
440
|
+
|
441
|
+
//都道府県名の選択時の処理
|
442
|
+
|
443
|
+
$("#questionList a").on("click", function() {
|
444
|
+
|
445
|
+
var selectedId = $(this).attr("id");
|
446
|
+
|
447
|
+
sessionStorage.selectedNumber = sessionStorage["randNum" + selectedId];
|
448
|
+
|
449
|
+
});
|
450
|
+
|
451
|
+
|
452
|
+
|
453
|
+
});
|
454
|
+
|
455
|
+
|
456
|
+
|
457
|
+
//配列内の値の重複を確認
|
458
|
+
|
459
|
+
MYQUIZ.isDuplicate = function(array){
|
460
|
+
|
461
|
+
array.sort();
|
462
|
+
|
463
|
+
for(var i = 0; i < (array.length - 1); i++){
|
464
|
+
|
465
|
+
if(array[i] === array[i + 1]) return true;
|
466
|
+
|
467
|
+
}
|
468
|
+
|
469
|
+
return false;
|
470
|
+
|
471
|
+
}
|
472
|
+
|
473
|
+
|
474
|
+
|
475
|
+
|
476
|
+
|
477
|
+
// ============ページ区切り[解答]============
|
478
|
+
|
479
|
+
$(document).on("pageinit", "#answerPage", function(){
|
480
|
+
|
481
|
+
|
482
|
+
|
483
|
+
//画面表示時の処理
|
484
|
+
|
485
|
+
$("#answerPage").on("pageshow", function() {
|
486
|
+
|
487
|
+
var selectedNum = sessionStorage.selectedNumber;
|
488
|
+
|
489
|
+
var randNum = new Array(3);
|
490
|
+
|
491
|
+
randNum[0] = sessionStorage.randNum1;
|
492
|
+
|
493
|
+
randNum[1] = sessionStorage.randNum2;
|
494
|
+
|
495
|
+
randNum[2] = sessionStorage.randNum3;
|
496
|
+
|
497
|
+
|
498
|
+
|
499
|
+
var questionData = new Array(3);
|
500
|
+
|
501
|
+
for(var i = 0; i < questionData.length; i++){
|
502
|
+
|
503
|
+
questionData[i] = new Array(2);
|
504
|
+
|
505
|
+
questionData[i][0] = MYQUIZ.todofuken[randNum[i]][0];
|
506
|
+
|
507
|
+
questionData[i][1] = MYQUIZ.todofuken[randNum[i]][1];
|
508
|
+
|
509
|
+
}
|
510
|
+
|
511
|
+
questionData.sort(MYQUIZ.arraySort);
|
512
|
+
|
513
|
+
|
514
|
+
|
515
|
+
//正誤の判定と表示
|
516
|
+
|
517
|
+
if(questionData[0][0] === MYQUIZ.todofuken[selectedNum][0]){
|
518
|
+
|
519
|
+
$("#judge").html("正解").css("color","green");
|
520
|
+
|
521
|
+
localStorage.correctAnswer++;
|
522
|
+
|
523
|
+
}else{
|
524
|
+
|
525
|
+
$("#judge").html("ハズレ").css("color","red");
|
526
|
+
|
527
|
+
}
|
528
|
+
|
529
|
+
|
530
|
+
|
531
|
+
//ランキング表示
|
532
|
+
|
533
|
+
for(var i = 0; i < questionData.length; i++){
|
534
|
+
|
535
|
+
$("#todofuken" + (i+1) ).html(questionData[i][0]);
|
536
|
+
|
537
|
+
$("#areaSize" + (i+1) ).html(questionData[i][1] + "平方Km");
|
538
|
+
|
539
|
+
}
|
540
|
+
|
541
|
+
|
542
|
+
|
543
|
+
//総解答数の更新
|
544
|
+
|
545
|
+
localStorage.totalQuestion++;
|
546
|
+
|
547
|
+
});
|
548
|
+
|
549
|
+
});
|
550
|
+
|
551
|
+
|
552
|
+
|
553
|
+
//2次元配列ソート(並べ替え)用の関数
|
554
|
+
|
555
|
+
MYQUIZ.arraySort = function(a, b){
|
556
|
+
|
557
|
+
return b[1] - a[1];
|
558
|
+
|
559
|
+
}
|
560
|
+
|
561
|
+
|
562
|
+
|
563
|
+
// ============ページ区切り[正解率]============
|
564
|
+
|
565
|
+
$(document).on("pageinit", "#scorePage", function(){
|
566
|
+
|
567
|
+
|
568
|
+
|
569
|
+
//画面表示時の処理
|
570
|
+
|
571
|
+
$("#scorePage").on("pageshow", function() {
|
572
|
+
|
573
|
+
$("#totalQuestion").html(localStorage.totalQuestion);
|
574
|
+
|
575
|
+
$("#correctAnswer").html(localStorage.correctAnswer);
|
576
|
+
|
577
|
+
var ratio = Math.floor((localStorage.correctAnswer / localStorage.totalQuestion) * 100);
|
578
|
+
|
579
|
+
$("#correctRatio").html(ratio + "%");
|
580
|
+
|
581
|
+
});
|
582
|
+
|
583
|
+
|
584
|
+
|
585
|
+
});
|
586
|
+
|
587
|
+
```
|
588
|
+
|
589
|
+
|
590
|
+
|
591
|
+
|
592
|
+
|
311
593
|
### 試したこと
|
312
594
|
|
313
595
|
旧ファイル名"quiz.index"のままになっている個所があるかと思い、プログラム内を検索しましたが、ありませんでした。
|