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
102
103
104
105
106
107
108
109
110
111
112
113
114
華麗大賽計分程式!

使用前請注意:
。只能正確檢測到每一回合擲骰格式皆為【訓練家 名字】+11bz,且評審分為最後一骰的回覆
。同一回覆有其他自訂表符、角色發言與表演敘述沒問題
。以下情況可能造成檢測失誤:
 【】替換為其他符號
 同一回覆內的BZ數超過正常擲骰數
 同一回覆內有其他噗浪隨機骰(dice之類的)
 訓練家名牌與11bz不在同一回覆內
 其他掛有名牌的回覆內也有噗浪隨機骰(單骰影響不大,但大概會造成回合數怪怪的)

教學:
。將華麗競賽噗另開分頁
。在該分頁中快樂按下F12,會跳出開發者工具
。點選右上的Console
。將本噗浪貼最下面的一整串程式碼複製貼上,按下enter
。撘啦!

。本程式僅供計算參考,若有疑慮請自行驗算
。歡迎回報錯誤!

---<以下請全數複製貼上>---

let colorList = ['黑','紅','藍','綠'];
let bzSrc = ['https://emos.plurk.com/c5022c482debf1e676b85ed27a2dfcf4_w27_h27.png',
'https://emos.plurk.com/c718165a2a5a82544b19e16e7e8b60b1_w27_h27.png',
'https://emos.plurk.com/5d60d668f7ac4be891ede34aa26d0e7c_w27_h27.png',
'https://emos.plurk.com/8c44aa62f1d54b659dbdeb8d5cbef332_w27_h27.png']

function judge(){
let bigPlurk = document.getElementsByClassName('bigplurk')[0];
let emoticons = bigPlurk.getElementsByClassName('emoticon_my');
for(i=0;i<emoticons.length;i++){
let emoSrc = bzSrc.indexOf(emoticons[i].src);
if(emoSrc > -1){
contests(emoSrc);
}
}
}

function contests(judge){
let judgeColor = judge;
let judgeScore = [0,0,1,3,5,10];
let trainers = [];

let allResponse = document.getElementsByClassName('response')


for(r=0;r<allResponse.length;r++){

let response = allResponse[r].getElementsByClassName('text_holder')[0];
let responseHtml = response.innerHTML;

let trainer = responseHtml.substring(responseHtml.indexOf('【'),responseHtml.indexOf('】')+1);

if(response.getElementsByClassName('emoticon').length > 10){

function isTrainer(trainers) {
return trainers.name === trainer;
}

if (!trainers.find(isTrainer)) {
trainers.push({name: trainer, scores: []})
}

let getBz = response.getElementsByClassName('emoticon');
let scoreList1 = [0,0,0,0];
let scoreList2 = [0,0,0,0];
let judge;
let singalScore = 0;

for(i=0;i<10;i++){
let bzColor = parseInt(getBz[i].getAttribute('rndnum'))-1;
if(i<5){
scoreList1[bzColor]++;
}else{
scoreList2[bzColor]++;
}
}

for(i=0;i<4;i++){
singalScore += judgeScore[scoreList1[i]];
singalScore += judgeScore[scoreList2[i]];
let sameColor = Math.min(scoreList1[i],scoreList2[i]);
if(sameColor == 3){
singalScore += 3;
}else if(sameColor == 4){
singalScore += 5;
}else if(sameColor == 5){
singalScore += 10;
}
}

if(parseInt(getBz[10].getAttribute('rndnum'))-1 == judgeColor){
singalScore += 3;
}

trainers.find(isTrainer).scores.push(singalScore);
}
}

let result = '';
for(i=0;i<trainers.length;i++){
let trainerName = trainers[i].name;
let trainerScores = trainers[i].scores.join(' + ')
let trainerTotal = ' = ' + trainers[i].scores.reduce((a, b) => a + b, 0);
result += trainerName + trainerScores + trainerTotal + '\n';
}
alert(result);

}

judge();