-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathstatis.js
101 lines (101 loc) · 3.77 KB
/
statis.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
var statis = {
modeOn : false,
tryCount : 0, //한 장비당 강화 시도 카운트
start : 0,
goal : 0,
restore : 0,
numOfTry : 0, //통계낼 장비의 수
destroyCount : 0
}
var statisResult = {
max : 0,
min : 0,
sum : 0
}
var statisArr = new Object();
statisArr.useMeso = new Array();
statisArr.tryCount = new Array();
function resetArr() {
statisArr.useMeso.splice(0);
statisArr.tryCount.splice(0);
}
function showStatis() {
for (var i = 0; i < statis.numOfTry; i++) {
console.log(i + "번째 시도");
console.log("\t사용 메소 : " + addComma(statisArr.useMeso[i]));
console.log("\t강화 횟수 : " + statisArr.tryCount[i]);
}
console.log("\n\n평균 사용 메소 : " + addComma(Math.round(statisResult.sum / statis.numOfTry)));
console.log("\n\n최대 사용 메소 : " + addComma(statisResult.max));
console.log("\n\n최저 사용 메소 : " + addComma(statisResult.min));
document.getElementById('statisResult').innerHTML = "<p>평균 사용 메소 : "
+ addComma(Math.round(statisResult.sum / statis.numOfTry)) + "</p><br><p>최대 사용 메소 : "
+ addComma(statisResult.max) + "</p><br><p>최저 사용 메소 : " + addComma(statisResult.min) +"</p><br>"
+ "<p>평균 파괴 횟수 : " + (statis.destroyCount == 0 ? "0" : ((statis.destroyCount / statis.numOfTry).toFixed(3))) + "</p><br>";
console.log(statis.destroyCount);
console.log(statis.numOfTry);
}
function startStatis() {
statis.modeOn = true;
resetArr();
for (var i = 0; i < statis.numOfTry; i++) {
reset()
itemState.currentStar = statis.start;
while(itemState.currentStar < statis.goal) {
force();
}
forceValue.totalUseCost += forceValue.destroyCount * statis.restore;
statisArr.useMeso[i] = forceValue.totalUseCost;
statisArr.tryCount[i] = forceValue.tryCount;
if (statisResult.max < forceValue.totalUseCost) {
statisResult.max = forceValue.totalUseCost;
}
if (forceValue.totalUseCost < statisResult.min || i == 0) {
statisResult.min = forceValue.totalUseCost;
}
statisResult.sum += forceValue.totalUseCost;
}
statis.modeOn = false;
showStatis();
reset();
showInfo();
}
function setStatis() {
statis.start = Math.floor(Number(document.getElementById('statisStartStar').value));
statis.goal = Math.floor(Number(document.getElementById('statisGoalStar').value));
statis.numOfTry = Math.floor(Number(document.getElementById('statisNumOfTry').value));
statis.restore = Math.floor(Number(document.getElementById('statisRestore').value));
statis.destroyCount = 0;
if (isNaN(statis.start + statis.goal + statis.numOfTry + statis.restore)) {
alert("오류 :입력된 값이 숫자가 아닙니다.");
console.log(statis.start);
console.log(statis.goal);
console.log(statis.numOfTry);
console.log(statis.restore);
return;
}
if (statis.start >= statis.goal) {
alert("오류 : 시작값은 목표값보다 작아야합니다");
return;
}
if (statis.start < 0) {
statis.start = 0;
console.log("오류 : 시작값 0 미만. 시작값에 0 넣음.");
}
if (statis.goal > 25) {
statis.goal = 25;
console.log("오류 : 목표값 25 초과. 목표값에 25 넣음.");
}
if (statis.numOfTry < 1) {
statis.numOfTry = 1;
console.log("오류 : 시행횟수 0 미만. 시행횟수에 1 넣음.");
}
if (statis.restore < 0) {
statis.restore = 0;
console.log("오류 : 복구비용 0 미만. 복구비용에 0 넣음.");
}
statisResult.max = 0;
statisResult.min = 0;
statisResult.sum = 0;
startStatis();
}