きごう /-game/game-panels-nopairs/
つり /-game/game-fishing/
ばらばら /demo/-js/js-game-text-anagram/
ちょこ /demo/-js/js-game-cookie-clicker-chocolate/ 
しりとり /demo/-js/js-game-shiritori-picture/
脱出 /-game/game-room-escape/
うま /-game/game-house-racing/
まとりっくす /demo/-js/js-canvas-noize-text/
もじ /demo/-js/js-canvas-move-text/
模様 /demo/-js/js-game-pair-pattern/
ばくだん /demo/-js/js-canvas-grid-bomberman/
もざいく /demo/-js/js-game-quiz-mosaic/
闇 /demo/-js/js-canvas-linework-noize/ BAD
渦 /demo/-js/js-canvas-vortex/ BAD
TV /demo/-js/js-canvas-tv-noize/ BAD
うんこ /demo/-js/js-color-blinking-random/ BAD
ふぉーすぶれいく /demo/-js/js-game-pair-pattern/?key=U2FsdGVkX1/ixpW2S586aY85CSE89KJylnWhNfCrH048acFEG7umIOC+/CB7eg/vM+eG4Co1f51vzzWqFk+c8Wlp3U1n2Jls3txI5aY7g17D3ZxoGQb6GMJ9unuHl0opMYh17Ao9zFDaJWybzUS1Ug==
かんじ /demo/-js/js-text-quiz-yojijukugo/?key=U2FsdGVkX1+uYMXBvvPqzGXG+dQ4KvPgn6hiay+T+FWsGR+owJpF9Qe+iuYA5Yc9+me/uTkgCMWVPh4QooxauErD3pLflwH6YrcoXMNQvhVZKR19zGbASWkijG7FTsIgwdKTAV64fPekwPRN15D47FaD6e+XPcL4gjx+zwVOEckmgWF3Y7yj2w9aJIj8g+tE
おしりかわいい /demo/-js/js-game-shiritori-picture/?key=U2FsdGVkX18uX4sOo+KjjFZkdfV79QZuGSaz4E7gZiJGsw1pNf2KB253DQ2gTuD8oEm6HwNVtLBgxFKvB8+6u+vtwofYMru2Vd7YIZeKl+w6o536s0WW2p8g1GKSFmV9uaeHp0+5svpO7XaDreovoPMPlzdlxvTcvu5wHTj1HY8=
おはな /demo/-js/js-game-quiz-mosaic/?dqx/dqx-photo-rn.jpg
ぜっけい /demo/-js/js-game-quiz-mosaic/?dqx/dqx-photo-jr.jpg
めだぱに /demo/-js/js-game-keyboard-crusher/
view source

JavaScript

document.title = 'クイズ回答入力フォーム';

document.oncontextmenu = function () {return false;}

$(function(){
  $demo = $('#demo');
  var data;
  var aryOrg = [];
  var ary = [];
  $form = $('<form>');
  $input = $('<input>',{name:'q',placeholder:'回答入力欄 or キーワード (半角全角不問)'});
  $target = $('<input>',{name:'target',disabled:'disabled'});
  $btn = $('<button>',{tyoe:'submit'}).text(document.title);
  $div = $('<div>',{id:'log'});
  $label = $('<label>');
  $time = $('<time>').text(0);
  $p = $('<p>').text('正解すると3秒後に次の問題へ飛ぶよ!');
  $p2 = $('<p>').text('もしくは特定キーワード入力で特別問題開始!');
  $p3 = $('<p>').text('設定でポップアップのブロックは解除してね');
  $demo.append($form);
  $form.append($input);
  $form.append($target);
  $form.append($btn);
  $form.append($div);
  $form.append($p);
  $form.append($p2);
  $form.append($p3);
  $input.focus();

  const seOK = new Audio('/mp3/ok.mp3');
  const seMiss = new Audio('/mp3/miss.mp3');

  var answersText = $('#answers').text();
  var answersData = answersText.split('\n');
  answersData.pop();
  answersAry = [];
  answersData.forEach(function(v){
    var data = v.split(' ');
    var hash = {
      word:data[0],
      url:data[1],
    };
    if(data.length>2){
      hash.flag = data[2];
    }
    answersAry.push(hash);
  });
  //console.log(answersAry);

  let key = getURLKEY();
  if(key){
    var data = key.split(' ');
    var hash = {
      word:data[0],
      url:data[1],
    };
    hash.word = decodeURI(hash.word);
    console.log(hash.word);
    answersAry = [];
    answersAry.push(hash);
  }

  $input.on('dblclick', function(){
    location.reload(true);
    return false;
  });
  $form.on('submit', function(){
    var v = $input.val();
    v = zenToHan(v);
    console.log(v);
    var isFind = false;
    answersAry.some(function(a){
      if(v===a.word && !a.flag){
        isFind = true;
        setOK(a);
        return true;
      }
      if(v===a.word && a.flag){
        isFind = true;
        setBad(a);
        return true;
      }
    });
    if(!isFind){
      setNG();
    }
    return false;
  });

  function setOK(a){
    seOK.play();
    if(a.url.match(/\?/)){
      $target.val('特別問題へ!');
    } else {
      $target.val('正解!');
    }
    setTimeout(function(){
      //window.open(a.url);
      location.href = a.url;
    },2999);
  }
  function setNG(){
    seMiss.play();
    $target.val('ハズレ!');
  }
  function setBad(a){
    seMiss.play();
    $target.val('おしおき!');
    setTimeout(function(){
      window.open(a.url);
    },2999);
  }

  function zenToHan(str){
    str = str.replace(/[A-Za-z0-9]/g, function(s) {
      return String.fromCharCode(s.charCodeAt(0) - 0xFEE0);
    });
    return str;
  }
});
  

CSS

#demo{
  display:grid;
  justify-items: center;
  align-items: center; 
}
footer,
#code,
pre{
  display:none;
}

input,button{
  width:100%;
  font-size:24px;
  padding:12px;
  box-sizing:border-box;
}
input.ok{
  background-color:#afa;
}
#log{
  display:flex;
}
#log label{
  padding:12px;
  font-size:24px;
  color:#aaa;
}
p{
  padding:12px;
  text-align:center;
}

HTML

ページのソースを表示 : Ctrl+U , DevTools : F12

view-source:https://hi0a.com/demo/-js/js-game-quiz-answer/

ABOUT

hi0a.com 「ひまアプリ」は無料で遊べるミニゲームや便利ツールを公開しています。

プログラミング言語の動作デモやWEBデザイン、ソースコード、フロントエンド等の開発者のための技術を公開しています。

必要な機能の関数をコピペ利用したり勉強に活用できます。

プログラムの動作サンプル結果は画面上部に出力表示されています。

環境:最新のブラウザ GoogleChrome / Windows / Android / iPhone 等の端末で動作確認しています。

画像素材や音素材は半分自作でフリー素材配布サイトも利用しています。LINK参照。

動く便利なものが好きなだけで技術自体に興味はないのでコードは汚いです。

途中放置や実験状態、仕様変更、API廃止等で動かないページもあります。