約 4,104,542 件
https://w.atwiki.jp/ranch_simulator/pages/11.html
概要 いわゆる「万屋」。 プレイヤーがゲームをする上で必要なもののうち、建築材料、機械、車両、工具類を除く全般を販売している他、生産物や一部販売物の買い取りもしている。 営業時間:8 00~21 00 端末等の設置場所、売買エリアの場所 端末の設置場所 店舗の正面玄関から入って右。 売買エリア 店舗の屋外、正面左側。購入した動物の引き渡しエリアはショッピングカートの印の付いたエリアの奥。 販売物一覧 購入の方法は「ショップの利用」のページ、販売物の詳細は「アイテムデータ」のページを参照されたい。 動物 Chicken Rooster Dairy Cow Dairy Bull Beef Cow Beef Bull Pig(male) Pig(female) Goat(male) Goat(female) 養鶏用品 Ovoscope 酪農用品 Milking Machine 食肉加工用品 Manual Meet Grinder Manual Sausage Stuffer Electric Meet Grinder Electric Sausage Stuffer Stunner 養蜂用品 Hive Flame Bee Smoker 消耗品 Bag of wheet Bullets x24 White mold Blue mold Water tank Ear Tags x20 容器類 Cooler Pan Egg basket Milk can Steel bucket Steel bucket Wood bucket Barrel 植物の種子 Tomato seeds Strawberry seeds Pumpkin seeds Watermelon seeds Cabbage seeds Grape seeds Bell pepper seeds Pineapple seeds ガーデニング用品 Fertilizer Agricultural Medicine Composter Sprinkler その他 Halloween Pumpkin 未実装(Not available) 画像 名称 価格[$] 説明 Horse(馬) 2,500 すでに「馬のオークション」で買えるので追加されることは無いと思われる。 Laptop(ノートパソコン) 50 Cape buffalo(アフリカスイギュウ) 1,400 Longhorn(テキサスロングホーン) 1,200 Scotland cow(ハイランド牛) 1,000 Sheep(羊) 300 ※購入画面にはあるがEarly Access Version s0.623では利用不可となっている。 生産物の買取 生産物の買取価格については、生産物売払価格一覧のページを参照のこと。 小ネタ買い取りスペース内にDeer(シカ、生きてても死体でも同じ)が入ってるときに端末で「SELL」を開いているとDeerを60ドルで売れる(hardwear storeでも同じ、画像はhardwear storeでの端末の画像)
https://w.atwiki.jp/hand_simulator/pages/54.html
概要 モードの一つのようにタイトル画面に鎮座しているが、別作品となる。 ハンドシミュの操作性と、軽い謎解きホラーゲームのようなテイスト。 マルチだとより楽しめるので、自分で買ってフレンドにもギフト爆撃しよう。 3部作セットのバンドルで購入すると安いのでオススメ。 【Hand Simulator Horror】https //store.steampowered.com/app/1027820/Hand_Simulator_Horror/ 【Hand Simulator Collection】https //store.steampowered.com/bundle/18445/Hand_Simulator_Collection/ 謎解きを伴う初プレイはそこそこ時間がかかるが、内容が分かれば短時間でクリア可能。 1プレイが短いので気軽にRTAに挑戦できる。 【SPEEDRUN.COM→Hand Simulator Horror】 【発売時の公式情報】 Hand Simulator Horror - Game Preview Trailer ゲーム説明 ハンドシミュの操作性をもって、不気味な家で謎解きをするゲーム。 落ちてる部品を集めたり、鍵を扉に挿して回したり、動物と戦ったりして生き残ろう。 【英語メッセージ一覧】 すぐに消えて読めない英文の一覧、翻訳付き。軽いヒント集として使えます。 【アップデート情報】 アプデで割と大きな変化があったため、内容をまとめています。 【詳細攻略】 そのうち作ります。メッセージ一覧が程よいヒントになってるのでいらない説がある。 ホラー要素はオマケ程度なので怖いのが苦手の人も安心。 謎解きを伴う初プレイそこそこ時間がかかるが、内容が分かれば短時間でクリア可能。 1プレイが短いので気軽にRTAに挑戦できる。 【SPEEDRUN.COM→Hand Simulator Horror】 操作方法等 お手手モード [左シフト] - 手の左右切り替え [左クリック] - 握る [マウス移動 + ホイール] - 手を動かす [右クリック + マウス移動] - 手首の回転 [Z/X/C/V/Space] - 指の個別操作 [左Ctrl] - 手を下げる、しゃがむ [R] - 手を上げる、立つ、腕位置のリセット 移動モード [W/A/S/D] - 移動 [マウス移動] - 体の向き、視点の向きを変える [左シフト + W] - 走る [ホイールクリック] - 主観モード、ボイスチャット(押しながら喋る) [E] - 食べる(オプションに存在するが、食べ物が無い) ほぼサバイバルと同様。 右ドラッグによる手首回しが本家とちょっと違うのも同じ。 ほとんどの物で重量を無視しているので、物を運びやすくなっている。 操作難易度的には本家ホラーやボムより低いので、本家勢ならクリアは容易いでしょう。 ほどよい長さなのでRTAに挑戦しようね。 【SPEEDRUN.COM→Hand Simulator Horror】 参考動画 ※他のハンドシミュと違って、謎解きゲームなのでネタバレ注意! 【RTA】ハンドシミュレーター ホラー バグ無し 9分6秒66(ニコニコ動画) 【RTA】ハンドシミュレーター ホラー バグあり 5分45秒46【WR】(ニコニコ動画) 【RTA】ハンドシミュレーター ホラー 4人プレイバグ無し 7分7秒(ニコニコ動画) このページに関するコメント 注意事項は雑談・質問に準じます。 wikiに掲載されている内容が【最新とは限りません】。気づいた点があれば、編集するか、コメント欄に情報をお願いします。 名前
https://w.atwiki.jp/src_c_material/pages/327.html
AnotherDoll 管理人 遠野 弥月素材区分 U 備考 リンク切れ クリオネの捕食方法って怖いよね 管理人 藺月素材区分 U 備考
https://w.atwiki.jp/mosakabe/pages/41.html
ワシのvimperatorrc nmap j 5 C-e nmap k 5 C-y map h Esc Esc C-p map l Esc Esc C-n noremap i c noremap C-a Insert C-a Insert imap C-a Insert C-a Insert map b C-b map m bmarks! SPACE nnoremap alc C-u tabopen Space a Space set hintchars=ifjklasdhguonmerwc highlight Hint z-index 9999; font-size 17px; font-weight bold;color #fff; text-shadow 0 1px 0 #00F; line-height 20px; background-color rgba(0,0,1,0.8); border-width 0px; border-radius 10px;box-shadow 0 0 2px rgba(0,0,1, 0.5); padding 0 0; min-width 20px; text-indent -1px;text-align center; display inline-block;position absolute; text-align cener; vertical-align middle; font-family Menlo, Consolas, Monaco, monospace; text-transform uppercase; margin-top --2px; margin-left -7px; set nextpattern=^next$,^次(の)?ページ,次 »,^次へ$ set previouspattern=^prev$,^前(の)?ページ,« 前,^前へ$ プラグイン ime_controller.js /** * ==VimperatorPlugin== * @name IME Controller Lite * @description control imput method at into commandline-mode * @description-ja コマンドラインモード移行時にIMEの制御を行う * @author teramako teramako@gmail.com * @namespace http //d.hatena.ne.jp/teramako/ * @maxVersion 0.6pre * @minVersion 0.6pre * ==/VimperatorPlugin== * * Please set g ex_ime_mode and g textarea_ime_mode value. * * g ex_ime_mode * used at into EX mode * * g textarea_ime_mode * used at into TEXTAREA mode from INSERT mode and "noinsertmode" is set. * * ex). * let g ex_ime_mode = "inactive" * let g textarea_ime_mode = "inactive" * * following values are available * "auto" No change * "active" Initially IME on * "inactive" Initially IME off * "disabled" Disable IME * * more details see http //developer.mozilla.org/en/docs/CSS ime-mode * * if these values are null, "inactive" is used * */ liberator.plugins.imeController = (function(){ var inputElement = document.getAnonymousElementByAttribute( document.getElementById( liberator-commandline-command ), anonid , input ); function getMode(name){ return liberator.globalVariables[name] ? liberator.globalVariables[name] inactive ; } function preExec(target,name,func){ var original = target[name]; target[name] = function(){ func.apply(this,arguments); return original.apply(target,arguments); } } preExec(commandline, open ,function(){ liberator.plugins.imeController.set(inputElement, getMode( ex_ime_mode )); }); preExec(events, onEscape ,function(){ if (liberator.mode == modes.INSERT (modes.extended modes.TEXTAREA) !options.insertmode){ var inputField = buffer.lastInputField; if (liberator.plugins.imeController.set(inputField, getMode( textarea_ime_mode ))){ inputField.blur(); setTimeout(function(){inputField.focus();},0); } } }); return { set function(elem, mode){ if (elem mode) return elem.style.imeMode = mode; return false; }, reset function(){ delete liberator.globalVariables.ex_ime_mode; delete liberator.globalVariables.textarea_ime_mode; } }; })(); // vim sw=4 ts=4 et
https://w.atwiki.jp/bs-2ch/pages/45.html
公式戦まで秘密にする魔球 カーターの秘密兵器 披露しないままカーターが帰国してしまったために その正体はファンのみならず、チーム関係者にすら謎のままである
https://w.atwiki.jp/nanjitumtg/pages/314.html
大会概要 参加者:5人 優勝者:TraceOn ◆f1H6D0c.h2 準優勝者:quin ◆k50rESVW7E 参加者デッキ TraceOn ◆f1H6D0c.h2 4cリアニメイト 2 [SHM] Swamp (3) 4 [SHM] Reflecting Pool 4 [LRW] Vivid Creek 4 [LRW] Vivid Marsh 1 [EVE] Fetid Heath 3 [EVE] Twilight Mire 4 [SHM] Sunken Ruins 2 [10E] Island (4) 4 [ALA] Broodmate Dragon 3 [ALA] Empyrial Archangel 4 [LRW] Mulldrifter 3 [LRW] Shriekmaw 4 [10E] Merfolk Looter 4 [LRW] Oona s Prowler 4 [LRW] Ponder 4 [SHM] Torrent of Souls 4 [LRW] Makeshift Mannequin 2 [ARB] Maelstrom Pulse SB 2 [ARB] Maelstrom Pulse SB 2 [LRW] Burrenton Forge-Tender SB 3 [EVE] Stillmoon Cavalier SB 4 [LRW] Eyes of the Wisent SB 4 [LRW] Thoughtseize 浄化の大天使に全てを救われました。 環境がやや低速化していてくれたのも助かった感があります。
https://w.atwiki.jp/antivip/pages/15.html
侮辱するような反論。AA。 これは逆上させて激化するだけで スレにとっては燃料になる。ぜひやめよう。 法律を根拠とした反論 あなたが専門家なら別だが、大抵の場合サイトの性質上論破される。 また、言質を取られると痛いので議論に持ち込まないようにしよう。 忍者フィルター 普通に破られる。torrent幕府がこれを城門にしたが、あえなく突破された。 VIPへの突撃 完全に燃料。早くDAT落ちさせてあげよう。
https://w.atwiki.jp/torrentjp/pages/2.html
メニュー ゲーム アダルト その他 映画 TV ここを編集
https://w.atwiki.jp/torrentjp/pages/10.html
関連ブログ @wikiのwikiモードでは #bf(興味のある単語) と入力することで、あるキーワードに関連するブログ一覧を表示することができます 詳しくはこちらをご覧ください。 =>http //atwiki.jp/guide/17_161_ja.html たとえば、#bf(ゲーム)と入力すると以下のように表示されます。 #bf
https://w.atwiki.jp/note4recurrent/pages/22.html
尾崎先生 今日の説明資料は共有フォルダにあります。 s1共有\ozaki\Web基礎.pdf 6/21 HTTPの仕組み PC(http request URL) - サーバー(Apache) サーバー(http response) - PC ブラウザはURLを発行し、帰ってきたhtmlを画像に表示する役割。 静的ウェブページ お仕着せの完成品を買ってくるだけ 動的ウェブページ サーバーで情報と付け加えて返す:「JSPとサーブレット」 オーダーした完成品が届く点では静的コンテンツと一緒 Javascriptによる動的ページ:ブラウザで実行されるところがJSPとの違い 素材を返してもらって、最終的にはブラウザで加工して完成させる。 受け取ったコンテンツをブラウザ上で自動的に更新することができる(動く時計など) VSC起動 ファイルメニューでルートフォルダ選択(事前に作っておく) index.htmlを新規作成 最初の行にhtmlと入れるとショートカットが出るのでhtml 5を選ぶ。 決まり切ったコードが自動的に入れられる。(別に自分で叩いても、コピペしても無問題) lang = "ja" にしておくこと:この講座では日本語のページを作るから。 VSCの機能拡張 open in default browserをインストール javascriptの場所 /body の前に置くのが多い script src="script.js" /script は別のファイルを作るため script" 直接スクリプトを書くため /script 変数の作り方 var 使わないほうが良い(過去はこれしかなかった) const 再代入不可 let 再代入可能 Javascript は行末に;はあってもなくてもかまわない。あってもエラーにはならない。 ESLintという文法チェッカーではつけることを推奨:ほかの言語も書くときに忘れないようにつけたほうがいいかも。 変数の宣言 静的型付(C JAVA COBOL VBA)メモリが少なかった時代に開発されたもの。メモリを節約させるため。 動的型付(PHP Javascript Python)メモリが豊富に使えるようになってから作られた言語に多い let lang = "ジャバスクリプト" lang = "Java" lang = 100 //許される Javascript で使える変数の型 Number:数値 整数も少数も大きな数字もこれだけ NaN(Not a Number 非数字) String:文字列全て Boolean Null Undefined type ofで変数に入っているデータの型を調べられる a=4 console.log(typeof a) *num console.log(typeof "a") String let lang = "ジャバスクリプト" lang = "Java" lang = 100 //許される console.log(lang) //Javascript データ型 // Number console.log(0/0) const a = 10 const b = 4 console.log(a+b) console.log(a-b) console.log(a*b) console.log(a/b) console.log(a % b) //剰余算 console.log(a ** b) //べき乗 console.log(typeof num) //型を調べる // String "" も const food1 = "チョコレート" const food2 = チョコレート console.log(food1) const food3 = "パフェ" console.log(food1+food3) // + で連結 //+で連結された結果は文字列となる const drink1 = "珈琲" const unit = "杯" console.log(drink1 + 3 + unit) console.log(typeof (drink1 + 3 + unit)) //テンプレートリテラル(ES6) //例 「珈琲を2杯ください」 console.log(drink1 + "を" + 2 + unit + "ください") console.log(`${drink1}を2${unit}ください`) //"15"を15に変換(VBAのVALUE) const strNum = "15" console.log(typeof parseInt(strNum))//parseIntで文字列が数字になる //数字として認識できるかどうかはシステムに依存。全角の数字でもいけるかどうか保証できない。 // Undefined(未定義) // 初期化されていない変数 // Boolean(真偽値) // true or false だけを持てる let flg = true console.log(flg) //否定演算子 ! console.log(!flg) //比較演算子 const con1 = 100 const con2 = 50 //等値演算子 console.log(con1 == con2*2)//左辺と右辺が等しい値か console.log(con1 != con2*2)//左辺と右辺は等しい値ではないか //同値演算子 const con3 = "50" console.log(con2 == con3) //左辺と右辺が等しい値か console.log(con2 === con3)//左辺と右辺が同じ値か:型まで一致しているか //配列 const drinks = ["珈琲","紅茶","ジュース","緑茶"] console.log(drinks[0]) console.log(drinks[2]) drinks[2] = "apple" //const で宣言したものでも更新できる console.log(drinks[2]) !DOCTYPE html html lang="ja" head meta charset="UTF-8" meta http-equiv="X-UA-Compatible" content="IE=edge" meta name="viewport" content="width=device-width, initial-scale=1.0" title Event /title /head body h1 id="target" アクセス前 /h1 button id="clk" click /button h2 id="target2" ABC /h2 p 下のボタンをクリックすると上の文字が変わります /p button id="clk2" change! /button script //読み込み完了時に動作 window.addEventListener("DOMContentLoaded",function(){ const newH1 = "アクセス後" const idTarget = document.querySelector("#target") //console.log(idTarget) idTarget.innerHTML = newH1 //ボタンを捕まえる const clickButton = document.querySelector("#clk") //console.log(clickButton) let flag = true clickButton.addEventListener("click",function(){ if (flag){ idTarget.innerHTML = "Clickされたよ" } else{ idTarget.innerHTML = newH1 } flag = !flag }) //ボタン2を捕まえる const clickButton2 = document.querySelector("#clk2") const idTarget2 = document.querySelector("#target2") let flag2 = true clickButton2.addEventListener("click",function(){ if (flag2){ idTarget2.innerHTML = "CDE" } else{ idTarget2.innerHTML = "ABC" } flag2 = !flag2 }) }) /script /body /html ボタン2を捕まえる以下のみ色々試した。 //ボタン2を捕まえる const clickButton2 = document.querySelector("#clk2") const idTarget2 = document.querySelector("#target2") let flag2 = 0 clickButton2.addEventListener("click",function(){ if(flag2 == 0){ idTarget2.innerHTML = "DEF" } else if(flag2 == 1){ idTarget2.innerHTML = "GHI" } else { idTarget2.innerHTML = "ABC" } flag2 += 1 if(flag2 2){ flag2 = 0 } if (idTarget2.innerHTML == "DEF"){ idTarget2.innerHTML = "文字列によって反応を変えることもできる" } }) 後、乱数発生の関数を加えれば簡易じゃんけんゲームくらいはできそう。 配列を使って順番にテキストを回す let i = 0; let dispText = ["DEF","GHI","ABC"] //この行までは起動時に一回だけ実行される。 clickButton2.addEventListener("click",function(){ //button2 が押される度に下のブロックが実行される。変数の値は残っている。 idTarget2.innerHTML = dispText[i]; i += 1; if (i 2){ i = 0; } }) 乱数と切り捨て関数を使ってランダムに表示 連続しないように確認を追加 const clickButton2 = document.querySelector("#clk2") const idTarget2 = document.querySelector("#target2") let ransuu = 0; let check = 0; let dispText = ["Masth.random と Math.trunc","乱数と整数切り捨て関数","コードスッキリ","配列の使い方の練習にもなった"] clickButton2.addEventListener("click",function(){ if (ransuu == check){ ransuu = Math.trunc(Math.random()*10/3); //乱数は0〜1の少数なので10倍して3で除した結果の少数以下を切り捨てている } else { ransuu = check; } idTarget2.innerHTML = dispText[ransuu]; }) 関数を使ってみました コードがスッキリして読みやすい(はずw) const clickButton2 = document.querySelector("#clk2") const idTarget2 = document.querySelector("#target2") let ransuu = 0; let dispText = ["Masth.random と Math.trunc","乱数と整数切り捨て関数","コードスッキリ","配列の使い方の練習にもなった"] clickButton2.addEventListener("click",function(){ ransuu = getRansuu(ransuu); idTarget2.innerHTML = dispText[ransuu]; }) //今持ってる数字ransuuを受けて異なる数字を返す関数 karisuu は関数内でしか使わないローカル変数 function getRansuu(num) { let karisuu = Math.trunc(Math.random()*10/3); //乱数は0〜1の少数なので10倍して3で除した結果の少数以下を切り捨てている while (num == karisuu) { //メインの数字が持っているものと同じ数字が出ている間は何回も数字を取得する karisuu = Math.trunc(Math.random()*10/3); } return karisuu; }; 繰り返し:ループ for forEach script window.addEventListener("DOMContentLoaded",function(){ //Get UL const ulCourses = document.querySelector("#courses") const subjects =[ "webクリエイター", "web プログラマー", "動画編集", ] for (let index = 0 ; index subjects.length ; index++){ //meke li tag li /l const newLi = document.createElement("li") // li にテキストを入れる li web creater /li newLi.innerText = subjects[index] // add ulCourses.appendChild(newLi) } subjects.forEach(function(subject){ const newLi = document.createElement("li") newLi.innerText = subject ulCourses.appendChild(newLi) }) }) /script html !DOCTYPE html html lang="ja" head meta charset="UTF-8" meta name="viewport" content="width=device-width, initial-scale=1.0" title Memoアプリ /title link href="https //cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous" /head body div class="container" !-- INPUT -- div class="alert alert-secondary mt-3" div class="row" div class="col-3" input type="text" class="form-control" name="" id="name" placeholder="名前" /div div class="col-7" input type="text" class="form-control" name="" id="comment" placeholder="コメント" /div div class="col-2" button class="btn btn-outline-success" id="btn" 追加 /button /div /div /div !-- DATA TABLE -- table class="table table-secondary table-striped table-bordered" id="tbl" tr th 名前 /th th コメント /th th 日付 /th /tr tr td 森下 /td td ........ /td td 2022/06/27 /td /tr tr td 森下 /td td ........ /td td 2022/06/27 /td /tr /table /div script src="memoapp.js" /script /body /html memoapp.js //windwoが読みこまれるまで待機 window.addEventListener("DOMContentLoaded",function(){ const tbl = this.document.querySelector("#tbl") //btnが押されたら const btn = document.querySelector("#btn") btn.addEventListener("click",function(){ //名前を取り込む const name = document.querySelector("#name") //コメントを読みこむ const comment = document.querySelector("#comment") //名前とコメントの両方に入力があった場合 //name.length に文字数が入ってくる //if (name.value.length 0 comment.value.length 0){ も同じ意味 if (name.value.length comment.value.length ){ //入力された日時の取得 月は0オリジンなので注意が必要 const current = new Date() const currentStr= `${current.getFullYear()}年${current.getMonth()+1}月${current.getDate()}日` //console.log(currentStr) //tableの更新 //tr行設定 const trTag = document.createElement("tr") //td 1行あたり3カラム(3列)なので、tdを3回繰り返す。 const tdNameTag = document.createElement("td") //一つ目のtd tdNameTag.innerText = name.value //tdの中身を設定 name.value には上で入力された名前が入っている trTag.appendChild(tdNameTag) //tdタグを加える1回目 const tdCommentTag = document.createElement("td") tdCommentTag.innerText = comment.value trTag.appendChild(tdCommentTag) //tdタグを加える2回目 const tdDateTag = document.createElement("td") tdDateTag.innerText = currentStr trTag.appendChild(tdDateTag) //tdタグを加える一3回目 //tableにtr行を挿入 tbl.appendChild(trTag) //三つのtdの入ったtrを一行追加 //入力フィールドをクリアして終わり name.value ="" comment.value ="" } }) }) 2022/7/05 !doctype html html lang="ja" head meta charset="utf-8" meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no" link href="https //cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous" title Javascript game /title /head body div class="container" div class="alert alert-info" h1 class="h4" 足りない文字はどれ? /h1 button class="btn btn-info" id="makeQuestion" 出題 /button span id= timediff class="px-3" /span /div div class="row" id="quizDiv" /div //数字を並べる場所 div class="form-row" div class="col-2 offset-9" //col-2 offset-9 はbootstrap で使うためのセレクタ 以下同様 答え input type="text" name="" id="answerBox" class="form-control" //回答記入用フィールドの設定 /div div class="col-1" button class="btn btn-danger" id="answerbtn" 回答 /button //回答ボタンを配置 /div /div /div script window.addEventListener("DOMContentLoaded",function(){ // console.log("load"); // 問題を書き込む場所 const quizDiv = document.querySelector("#quizDiv"); //問題文字列を並べる場所を使う //quizDiv に quizDiv で設定した場所(div id ="quizDiv" で指定されたところ)を入れる //console.log(quizDiv); // 解答入力欄 const answerBox = document.querySelector("#answerBox"); //入力欄を今後 answerBox として使う //console.log(answerBox); let condition = false; //出題が押されているかどうかの確認に使う let answer = ""; //答えを保管するための変数 const makeQuestion = document.querySelector("#makeQuestion"); //出題ボタンを使うという宣言 //出題ボタンをクリックされたときの動作 makeQuestion.addEventListener("click",function(){ condition = true; //出題済にする const questions = ["A","B","C","D","E"]; //問題の配列を設定 // console.log("btn clicked"); //quesiton から1つ取り出す answer = questions.splice(Math.floor(Math.random()*questions.length),1); //randomを使って一文字を抜き取る Mathfloor は切り捨て、Math.randomは乱数発生 //Math.random()にquestions.lengthを掛けることで最大いくつまでの乱数を発生させるかを操作する //Math.random()は0〜1までの少数なので4を掛ければ0〜3までの少数になる。Mathfloorで切り捨てて整数にしている。 //Math.random()にquestions.lengthを掛けているのはquestionsの数が変わってもプログラムを書き直す必要がないようにするため。(他のプログラムにコピペして再利用するときにも便利) // console.log(questions.splice(Math.floor(Math.random()*questions.length),1)); //console.log(Math.floor(Math.random()*questions.length)); //console.log(answer); //console.log(questions); //前回の結果をクリア while(quizDiv.firstChild){ //quizDiv.firstChild がある間は回り続ける quizDiv.removeChild(quizDiv.firstChild); //quizDivにある子要素(この場合div)を上から一つ取り除く } //文字列を並べかえる、 const questions2 = []; //並べ替えのための配列を準備 while(questions.length){ //questions の配列分ループする questions2.push(questions.splice(Math.floor(Math.random()*questions.length),1)[0]); //splice で切り取るための開始位置をランダムで決めている。 //random の乗数をquestions.lengthとしているのはquestionsの配列がループを回る度に変わるから。 //quetions.splice(開始位置,抜き取る数) //questions2.push(配列に付け加える対象) //一番右に[0]とあるのは、splice で抜き取ったものが配列だから。ここでは1個しかないのでゼロ番目と決まっている。 } questions.push(...questions2); // 配列の中身を他の配列にコピーするチート技。新しいJavascriptでしかできない。 //これを使わない場合はループを使って中身を一つ一つコピーするしかない。 //文字列を並べる divタグを追加 questions.forEach (function(q){ //questions の数だけ以下のブロックを実行。qにはquestions配列から取り出した文字一つが入っている。 //console.log(q); const newDiv = document.createElement("div"); //div タグを生成 if (Math.floor(Math.random()*2)===0){ //ランダムで0か1かを発生し、0なら以下を実行 q = q.toLowerCase(); // qを小文字に変換(else を使わないのは元々大文字が入っているから } newDiv.innerText = q; //q をdiv の innerText に入れる(htmlで表示される) newDiv.classList.add("col-1","border","text-center","me-1"); //div に付加するclassを一括設定 //col-1 は CSS(この場合はbootstrapやけど)で横に並べる設定。 //border は枠線をつける、text-center は中央揃え、me-1 は右にマージン1 quizDiv.append(newDiv); // newDiv を quizDiv に追加 //ループ一回転で一つの文字 div /div を追加する }) }); //解答ボタンをクリックされたときの動作 const answerbtn = document.querySelector("#answerbtn"); answerbtn.addEventListener("click",function(){// console.log("ansbtn clicked"); // if (condition == false){ // console.log("出題されていない"); // return false; // } const inputAnswer = answerBox.value.toUpperCase(); //inputAnswer に入力された文字を大文字にして代入 if(condition inputAnswer.length===1){ //condition(出題ボタンが押されていて)inputAnswerが一文字(空白だったり2文字以上だったりしないときに以下のブロックを実行 if (answer[0] === inputAnswer){ //出題時にとっておいた answer と inputAnswer と突合 alert("正解です"); }else { alert("不正解です"); answerBox.value =""; //不正解の場合は入力欄をクリアして次の入力を待つ。 } } }); }); /script /body /html