function calc(){
let abeshi = Number(document.getElementById("abeshi").value);
let lamp = document.getElementById("lamp").value;
let rate = Number(document.getElementById("rate").value);
// ---- 投資・時間換算(てんぱ加味)
const yenPerAbeshi = 19.5;
const abeshiPerMin = 26;
let remain = Math.max(0,1536-abeshi);
let invest = remain * yenPerAbeshi;
let time = remain / abeshiPerMin;
// ---- モード初期分布
let mode = {A:0.50, B:0.27, C:0.17, T:0.06};
// ---- 示唆補正
if(lamp=="yellow") mode={A:0.05,B:0.55,C:0.30,T:0.10};
if(lamp=="yellow_blink") mode={A:0.01,B:0.20,C:0.60,T:0.19};
if(lamp=="gold") mode={A:0.01,B:0.60,C:0.30,T:0.09};
if(lamp=="gold_blink") mode={A:0.00,B:0.15,C:0.65,T:0.20};
if(lamp=="purple") mode={A:0.00,B:0.55,C:0.35,T:0.10};
// ---- 天国否定
if(abeshi > 128) mode.T = 0;
// ---- 深さ補正
if(abeshi>=350) mode.A*=0.75;
if(abeshi>=550) mode.A*=0.55;
if(abeshi>=750) mode.A*=0.40;
if(abeshi>=900) mode.A*=0.25;
// ---- 正規化
let total = mode.A+mode.B+mode.C+mode.T;
for(let k in mode){ mode[k]/=total; }
// ---- ゾーン別当選率
const zoneRate = {
T: {128:0.70},
C: {256:0.32, 448:0.18, 576:0.45},
B: {256:0.18, 448:0.14, 896:0.52},
A: {256:0.12, 448:0.08, 576:0.08, 896:0.06, 1152:0.06, 1536:0.60}
};
// ---- 平均獲得
const pay = {A:520, B:610, C:720, T:850, TEN:650};
function zoneEV(m, zone, rate, p){
if(abeshi >= zone) return 0;
return m * rate * p;
}
let ev =
zoneEV(mode.T,128,0.70,pay.T) +
zoneEV(mode.C,256,0.32,pay.C) +
zoneEV(mode.C,448,0.18,pay.C) +
zoneEV(mode.C,576,0.45,pay.C) +
zoneEV(mode.B,256,0.18,pay.B) +
zoneEV(mode.B,448,0.14,pay.B) +
zoneEV(mode.B,896,0.52,pay.B) +
zoneEV(mode.A,256,0.12,pay.A) +
zoneEV(mode.A,448,0.08,pay.A) +
zoneEV(mode.A,576,0.08,pay.A) +
zoneEV(mode.A,896,0.06,pay.A) +
zoneEV(mode.A,1152,0.06,pay.A) +
zoneEV(mode.A,1536,0.60,pay.TEN);
let evYen = ev*(50/rate) - invest;
let hourly = evYen/(time/60);
document.getElementById("result").innerHTML=`
【モード期待度】
A:${(mode.A*100).toFixed(1)}% / B:${(mode.B*100).toFixed(1)}% /
C:${(mode.C*100).toFixed(1)}% / 天国:${(mode.T*100).toFixed(1)}%
天井まで:${remain}あべし(約${Math.round(time)}分)
平均投資:約${Math.round(invest)}円
期待値:${Math.round(evYen)}円
時給:${Math.round(hourly)}円/h
`;
}