昔のプログラムをちょっと直してみた その2
今日も昨日の続きでプログラム直してみた。
同じく設定のところ。
ではまず変数前から
またコピペの連続です^^
function settei(){//駒の場所と順番の値の確保
for(i=0;i<2;i++){
if(document.hito.aka[i].checked == true){
botan1 = document.hito.aka[i].value;
if(i == 0){
hito1 = 10;
}else if(i == 1){
hito1 = 20;
}
}
if(document.hito.midori[i].checked == true){
botan2 = document.hito.midori[i].value;
if(i == 0){
hito2 = 10;
}else if(i == 1){
hito2 = 20;
}
}
}
for(i=0;i<3;i++){
if(document.hito.ki[i].checked == true){
botan3 = document.hito.ki[i].value;
if(i == 0){
hito3 = 10;
}else if(i == 1){
hito3 = 20;
}else if(i == 2){
hito3 = 30;
}
}
}//駒の色をまとめる
//-0をして、数値をいれる
iro1 = iro1 - 0 + hito1 - 0 + 1;
iro2 = iro2 - 0 + hito2 - 0 + 1;
iro3 = iro3 - 0 + hito3 - 0 + 1;
iro = iro1 + "," + iro2 + "," + iro3;//それぞれのリンクにとばせ!
location.href = "nomal.html"+"?"+iro;
}
えーこれはですね、まずプレイヤーがどの種類かを調べてます。
10->プレイヤー,20->コンピューター,30->なし,となっています。
ちなみに色の方は、
1->赤,2->緑,3->黄,4->青,となっています。
で、そのあとこの2つの数字を足したものを3人分、次のnomal.htmlに引き渡しています。
「-0」で数字にするとか、どこで手に入れた情報だろう?
ちなみに駒の色をまとめてるところで+1しているのは、この時点ではまだ赤は0だからです。
多分nomal.htmlの方で、1だったら赤みたいな判定してるから+1してるんだろうな。
さて改善点。
例によってコピーな部分を減らして変数名を修正してみました。
//駒の場所と順番の値の確保
function set(){
prayer1 = boxSet(document.config.red);
prayer2 = boxSet(document.config.green);
prayer3 = boxSet(document.config.yellow);
//駒の色をまとめる
color = sum(color1,prayer1) + "," + sum(color2,prayer2) + "," + sum(color3,prayer3);//それぞれのリンクにとばせ!
location.href = "nomal.html"+"?"+color;}
//それぞれのプレイヤーの色と種類の値をまとめる
function sum(color,prayer){
return parseInt(prayer) * 10 + parseInt(color) + 1;
}
こんな感じにしてみました!
だいぶ短くなった!!
で、これにともなって、昨日作った
↑これを、
function set(checkbox) {
for(i=0;i<4;i++){
if(checkbox[i].checked == true){
return checkbox[i].value;
}
}
}
↑こんな感じに変えてみました。
function boxSet(checkbox) {
length = checkbox.length;
for(i=0;i<length;i++){
if(checkbox[i].checked == true){
return checkbox[i].value;
}
}
}
なので昨日変えたこの関数呼んでいたところも、関数名だけなのですが
というように変えました。
function initialize(){
color1 = boxSet(document.config.prayer1);
color2 = boxSet(document.config.prayer2);
color3 = boxSet(document.config.prayer3);
}
今回の変更で嬉しかった事は、数字を使ってる所を減らせたこと。
あと昨日より目に見えて短くなっていること。
どうにかならないかなと感じるところは、*10と+1。
今は変えられないけど、いずれ何か方法を考えたい。
とりあえずなるべく短くするために数字2桁で渡すようにしたんだろうな。
わかりやすくないし。。
さて、問題はあと一つの関数。
3×4のチェックボックスをどこも重ならないように処理するやつ。
同じ様な文のはずなんだけど、いまいちどうまとめるか思いつかない;
とりあえずがんばろう〜♪
追記:
//それぞれのリンクにとばせ!
ってあるけど、リンク1個しかないのにそれぞれっておかしいよね。
多分複数あったときの名残かな。
ちゃんと直せってね。。
最初はプレイヤーの種類別にわけようとしてたんだよなー。懐かしい。。