: `
TOEIC270点相当から始めた場合の目安です。根拠は僕の実測(1,514時間・5年)で、母集団は1人。
`;
const expNote = (exp === "work")
? `
仕事で英語を使った経験がある方は、この前提より先にいます。数字は上限として見てください。どれだけ短くなるかは、実測がないので書きません。
`
: "";
let leverBlock = "";
if(j.gate === "fail" || j.vk === "over" || j.vk === "far" || j.vk === "close"){
const L = leversFor(goal, time, j.gate, method);
if(L.length) leverBlock = `
${L.map(l=>`
`).join("")}
`;
}
const reads = readsFor(j.gate, method, j.vk);
const readBlock = `
${reads.map(r=>`${r.t} →`).join("")}
`;
return `
${j.badge}
${durBlock}
${premise}
${expNote}
${leverBlock}
${readBlock}`;
}
function simHTML(){
const seg = (name, opts, cur) => `
`;
const same = sim.goal===pick.goal && sim.time===pick.time && sim.method===pick.method;
return `
条件を変えると、どうなるか
動かしても、あなたの回答は変わりません。「もし変えたら」を試せます。
${seg({key:"goal",label:"目標"},
[{v:"A",t:"言い切る"},{v:"B",t:"黙らずに済む"},{v:"C",t:"使い切る"}], sim.goal)}
${seg({key:"time",label:"週に使える時間"},
[{v:"t1",t:"〜1h"},{v:"t2",t:"1〜3h"},{v:"t3",t:"3〜6h"},{v:"t4",t:"6〜10h"},{v:"t5",t:"10h〜"}], sim.time)}
${seg({key:"method",label:"やっている練習"},
[{v:"read",t:"読む・聞く"},{v:"voice",t:"声に出す"},{v:"talk",t:"人と話す"}], sim.method)}
`;
}
function paintVerdict(){
const box = document.getElementById("verdictBox");
if(!box) return;
box.innerHTML = verdictHTML(sim.goal, sim.time, sim.method, pick.exp);
const simBox = document.getElementById("simBox");
if(simBox){ simBox.innerHTML = simHTML(); wireSim(); }
const fill = box.querySelector(".tl-fill");
if(fill){
const w = fill.style.width;
fill.style.width = "0";
void fill.offsetWidth;
fill.style.width = w;
}
}
function wireSim(){
document.querySelectorAll("#sim .seg button").forEach(b=>{
b.onclick = ()=>{ sim[b.dataset.k] = b.dataset.v; paintVerdict(); };
});
const r = document.getElementById("simReset");
if(r) r.onclick = ()=>{ sim = {goal:pick.goal, time:pick.time, method:pick.method}; paintVerdict(); };
}
function showResult(){
document.getElementById("barFill").style.width = "100%";
document.getElementById("qcount").textContent = "診断完了";
document.getElementById("remainNum").textContent = "0";
const dots = document.getElementById("dots");
if(dots) dots.innerHTML = QUESTIONS.map(()=>``).join("");
const goal = pick.goal || "B";
const time = pick.time || "t2";
const method = pick.method || "read";
sim = { goal, time, method };
if(timeline==="soon") score.C += 2;
let winner = pickType();
const honestNotes = [];
if(timeline==="urgent" && winner!=="C" && winner!=="D"){
const prevName = TYPES[winner].name;
winner = "C";
honestNotes.push(`診断内容だけなら「${prevName}」でしたが、3ヶ月以内に必要とのことなので、実践で慣れるオンライン英会話を優先しておすすめします。基礎ができていなくても、場数を踏みながら覚えるほうが速い場合があります。`);
}
if(winner==="C" && zeroBudget){
winner = "A";
honestNotes.push(`本当は「オンライン英会話」も合っているタイプです。まずは0円でできる練習で口を慣らして、余裕ができたら無料体験から試すのが正直なおすすめです。`);
}
const honest = honestNotes.map(n=>`
※ ${n}
`).join("");
const t = TYPES[winner];
const showPaidBooks = t.books && !zeroBudget;
const freePath = (winner==="B" && zeroBudget) ? `
買わなくて大丈夫。まず1冊を最後まで
NHKラジオ「中学生の基礎英語」(無料)
1日15分。無料アプリで聴き逃し配信あり
瞬間英作文アプリ(無料)
覚えた基礎を「口から出す」練習に
` : "";
render(`
あなたの到達判定
${t.name}
${t.tag}
${t.why()}
${honest}
${t.step}
${t.stepNote}
${showPaidBooks ? `
` : ""}
${t.reads.map(r=>`${r.t} →`).join("")}
`);
paintVerdict();
document.getElementById("retryBtn").onclick = startQuiz;
}
startQuiz();