- ベストアンサー
ホームページで馬券の組み合わせ表をJavaScriptを使って作るには?
チェックボックスに買う馬の番号の数字をチェックして競馬の組み合わせ点数を表示させるような物を作りたいのですが、何分知識が足りないので作れません。教えて下さい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず、馬券4種(馬連、馬単、三連複、三連単) 対応してます。 馬は18頭立てまでだっけ? #なんか簡単に書こうとして、余計難しくしてしまった #感があるんだけど・・・まぁ参考までに <HTML> <HEAD> <META http-equiv="content-type" content="text/html; charset=Shift_JIS"> <TITLE>馬券組み合わせチェック</TITLE> <SCRIPT LANGUAGE="JavaScript"> <!-- function SetBaken(){ with( document.InputForm ){ var ulist = new Array(); var tnum = 0; var unum = 0; // 結果欄のリセット kekka.value = ""; // 馬券タイプの取得 for(i=0;i<type.length;i++) if( type[i].checked ) tnum = type[i].value; // 馬番の配列を作成 for(i=1;i<19;i++) if( elements['uma'+i].checked ) ulist[unum++] = i; // エラーチェック if( !CheckError( tnum, unum ) ) return false; MatchMake( tnum, unum, ulist ); } } function MatchMake( tnum, unum, ulist ){ var cnt = 0; var buff = ""; if( tnum == 1 || tnum == 2 ){ ie = unum + Number(tnum) - 2; js = 0; for(i=0;i<ie;i++){ if( tnum == 1 ) js = i + 1; for(j=js;j<unum;j++){ if( ulist[i] != ulist[j] ){ buff += f(ulist[i]) + "-" + f(ulist[j]) + "\n"; cnt++; } } } } else { ie = je = ke = unum; is = js = ks = 0; if( Number(tnum) == 3 ) ie = unum -2; for( i=0; i<ie; i++ ){ if( tnum == 3 ){ js = i+1; je = unum-1; } for( j=js; j<je; j++ ){ if( tnum == 3 ) ks = j+1; for(k=ks;k<unum;k++){ if( ulist[i] != ulist[j] && ulist[i] != ulist[k] && ulist[j] != ulist[k] ){ buff += f(ulist[i]) + "-" + f(ulist[j]) + "-" + f(ulist[k]) + "\n"; cnt++; } } } } } buff += " 計 " + cnt + "点"; document.InputForm.kekka.value = buff; } function CheckError( tnum, unum ){ var buff = ""; if( tnum == 0 ) buff += "馬券タイプが選択されていません。\n"; if( unum == 0 ) buff += "馬が選択されてません。\n"; if( buff == "" ){ if( tnum < 3 ){ if( unum < 2 ) buff += "馬の数が馬券のタイプに足りていません。"; } else if( tnum < 5 ) { if( unum < 3 ) buff += "馬の数が馬券のタイプに足りていません。"; } } if( buff != "" ){ alert( buff ); return false; } return true; } function f( num ){ if( num < 10 ) return " " + num; return num; } //--> </SCRIPT> </HEAD> <BODY> <FORM NAME="InputForm"> <INPUT TYPE=radio name=type value=1>馬連 <INPUT TYPE=radio name=type value=2>馬単 <INPUT TYPE=radio name=type value=3>三連複 <INPUT TYPE=radio name=type value=4>三連単 <HR> <INPUT TYPE=checkbox name=uma1> 1 <INPUT TYPE=checkbox name=uma2> 2 <INPUT TYPE=checkbox name=uma3> 3 <INPUT TYPE=checkbox name=uma4> 4 <INPUT TYPE=checkbox name=uma5> 5 <INPUT TYPE=checkbox name=uma6> 6 <INPUT TYPE=checkbox name=uma7> 7 <INPUT TYPE=checkbox name=uma8> 8 <INPUT TYPE=checkbox name=uma9> 9 <BR> <INPUT TYPE=checkbox name=uma10>10 <INPUT TYPE=checkbox name=uma11>11 <INPUT TYPE=checkbox name=uma12>12 <INPUT TYPE=checkbox name=uma13>13 <INPUT TYPE=checkbox name=uma14>14 <INPUT TYPE=checkbox name=uma15>15 <INPUT TYPE=checkbox name=uma16>16 <INPUT TYPE=checkbox name=uma17>17 <INPUT TYPE=checkbox name=uma18>18 <HR> <INPUT TYPE="button" VALUE="作成" onClick="SetBaken()"> <INPUT TYPE="reset" VALUE="クリア"> <BR> <TEXTAREA ROWS=10 cols=50 NAME="kekka" VALUE=""></TEXTAREA> </BODY> </HTML>
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
競馬よく知らないので、勘違いしているかもしれませんが、こんな感じでしょうか ---------------------------------------------------------------- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=SHIFT_JIS"> <title>馬枠連の作成</title> <style> <!-- textarea { font-size: 24pt } --> </style> <script type="text/javascript"> <!-- function combination(f){ var array=document.getElementsByName("waku"); f.result.value=""; for(var i=0;i<array.length-1;i++){ if(!array[i].checked){ continue; } for(var j=i+1;j<array.length;j++){ if(array[j].checked){ f.result.value += array[i].value + '-' + array[j].value + "\n"; } } } } //--> </script> </head> <body> <form name="FORM1"> <script type="text/javascript"> <!-- for(var i=1;i<10;i++){ document.writeln('\<input type="checkbox" name="waku" value="'+i+'" id="waku'+i+'"\>\<label for="waku'+i+'"\>'+String.fromCharCode("0".charCodeAt(0)+i)+'枠\<\/label\>'); } //--> </script> <br> <textarea name="result" rows="10" cols="20" readonly></textarea> <br> <input type="button" value="組み合わせ作成" onclick="combination(this.form)"> <input type="reset" value="リセット"> </form> </body> </html>