Показать сообщение отдельно
  #1 (permalink)  
Старый 30.09.2014, 14:46
Новичок на форуме
Отправить личное сообщение для Эдвард Посмотреть профиль Найти все сообщения от Эдвард
 
Регистрация: 30.09.2014
Сообщений: 4

Помогите упростить скрипт
С целью уменьшения объёма кода хотелось бы использовать массивы и циклы. Но как это грамотно сделать, пока не понимаю, хотя перечитал массу учебников по теме.

function calculator(form)
{
k1 = form.k1.value;
k2 = form.k2.value;
k3 = form.k3.value;

x1 = k1;

switch (x1)
{ 
case "Игра 1 " : a1=1 , a2=1 , a3=""; break;
case "Игра 2 " : a1=1 , a2="" , a3=1; break;
case "Игра 3 " : a1="" , a2=1 , a3=1; break;
case "Резерв " : a1=0 , a2=0 , a3=0; break;
default:  a1="" , a2="" , a3="";
}

x2 = k2;

switch (x2)
{       
case "Игра 1 " : b1=1+a1 , b2=1+a2 , b3=""; break;
case "Игра 2 " : b1=1+a1 , b2="" , b3=1+a3; break;
case "Игра 3 " : b1="" , b2=1+a2 , b3=1+a3; break;
case "Резерв " : b1=0 , b2=0 , b3=0; break;
default:  b1="" , b2="" , b3="";
}

x3 = k3;

switch (x3)
{       
case "Игра 1 " : c1=1+Math.ceil(a1/100)+Math.ceil(b1/100) , c2=1+Math.ceil(a2/100)+Math.ceil(b2/100) , c3=""; break;
case "Игра 2 " : c1=1+Math.ceil(a1/100)+Math.ceil(b1/100) , c2="" , c3=1+Math.ceil(a3/100)+Math.ceil(b3/100); break;
case "Игра 3 " : c1="" , c2=1+Math.ceil(a2/100)+Math.ceil(b2/100) , c3=1+Math.ceil(a3/100)+Math.ceil(b3/100); break;
case "Резерв " : c1=0 , c2=0 , c3=0; break;
default:  c1="" , c2="" , c3="";
}

d1 = Math.ceil(a1/100)+Math.ceil(b1/100)+Math.ceil(c1/100);
d2 = Math.ceil(a2/100)+Math.ceil(b2/100)+Math.ceil(c2/100);
d3 = Math.ceil(a3/100)+Math.ceil(b3/100)+Math.ceil(c3/100);

if (a1=="0") {
var a1 = "Р";
}

if (a2=="0") {
var a2 = "Р";
}

if (a3=="0") {
var a3 = "Р";
}

if (b1=="0") {
var b1 = "Р";
}

if (b2=="0") {
var b2 = "Р";
}

if (b3=="0") {
var b3 = "Р";
}

if (c1=="0") {
var c1 = "Р";
}

if (c2=="0") {
var c2 = "Р";
}

if (c3=="0") {
var c3 = "Р";
}

form.total1.value = a1;
form.total2.value = a2;
form.total3.value = a3;
form.total4.value = b1;
form.total5.value = b2;
form.total6.value = b3;
form.total7.value = c1;
form.total8.value = c2;
form.total9.value = c3;
form.total10.value = d1;
form.total11.value = d2;
form.total12.value = d3;
}
Ответить с цитированием