<ステージ等の準備>
●SAMPLEのような配置で、番号入力インプット用テキストフィールド(インスタンス名:inputBox)と、当たり番号表示用ダイナミックテキストフィールド(インスタンス名:atariBox)と、インプットミス警告表示用ダイナミックテキストフィールド(インスタンス名:alertBox)と当たりの賞と賞金額表示用ダイナミックテキストフィールド(インスタンス名:prizeBox)を配置する。
<サンプル>
このページのコンテンツには、Adobe Flash Player の最新バージョンが必要です。
以下の当選番号でお試しください。なお、ご自分のくじに適用し、判定結果に不具合が生じても、当方は一切責任を負いかねます。
1等賞:75-106889
2等賞:52-152692
3等賞:*8-125887
4等賞:**-**7332
5等賞:**-***728
6等賞:**-****15
夏祭り:**-161250
他省略
<スクリプト> (as3.0)
scriptの説明
//当選番号の登録
var t1:String="75-106889";
var t1_kumi:String=t1.substr(0,2);
var t1_p:Number=Number(t1.substr(3,8))+1;
var t1_ps:String = t1_kumi+"-"+t1_p.toString();
var t1_m:Number=Number(t1.substr(3,8))-1;
var t1_ms:String = t1_kumi+"-"+t1_m.toString();
var t2:String="52-152692";
var t3:String="8-125887";
var t4:String="7332";
var t5:String="728";
var t6:String="15";
var t7:String="0";
var n1:String = "161250";
var n2:String = "135948";
var n3:String = "151144";
//当たり番号表示文字のフォーマット(当たり部分は赤く)
var tFormat:TextFormat = new TextFormat();
tFormat.size=25;
tFormat.color=0xffffff;
var tFormat2:TextFormat = new TextFormat();
tFormat2.size=25;
tFormat2.color=0xff0000;
inputBox.restrict="0-9\\-";
hantei_btn.buttonMode=true;
//当たり判定
function hantei(event:MouseEvent):void {
var inputNum:String=inputBox.text;
var testResult:Boolean=patternTest(inputNum);
if (! testResult) {
alertBox.text="入力書式が違います";
display("","","");
} else {
alertBox.text="";
if (inputNum==t1 || inputNum==t1.substr(0,8)+"*") {
display(inputNum,inputNum,"一等賞\n2億円");
} else if (inputNum == t1_ps || inputNum == t1_ps.substr(0,8)+"*") {
display(inputNum,inputNum,"前後賞\n5千万円");
} else if (inputNum == t1_ms || inputNum == t1_ms.substr(0,8)+"*") {
display(inputNum,inputNum,"前後賞\n5千万円");
} else if (inputNum.substr(3, 6) == t1.substr(3, 6) || inputNum.substr(3, 6) == t1.substr(3, 5)+"*") {
display(inputNum,inputNum.substr(3, 6),"組違い\n10万円");
} else if (inputNum == t2 || inputNum == t2.substr(0,8)+"*") {
display(inputNum,t2,"二等賞\n1億円");
} else if (inputNum.substr(3,6) == n1 || inputNum.substr(3,6) == n1.substr(0,5)+"*") {
display(inputNum, n1, "夏祭り賞\n百万円");
} else if (inputNum.substr(3,6) == n2 || inputNum.substr(3,6) == n2.substr(0,5)+"*") {
display(inputNum, n2, "夏祭り賞\n百万円");
} else if (inputNum.substr(3,6) == n3 || inputNum.substr(3,6) == n3.substr(0,5)+"*") {
display(inputNum, n3, "夏祭り賞\n百万円");
} else if (inputNum.substr(1, 8) == t3 || inputNum.substr(1,8) == t3.substr(0,7)+"*") {
display(inputNum,inputNum.substr(1, 8),"三等賞\n1千万円");
} else if (inputNum.substr(5, 4) == t4 || inputNum.substr(5,4) == t4.substr(0,3)+"*") {
display(inputNum,t4,"四等賞\n10万円");
} else if (inputNum.substr(6, 3) == t5 || inputNum.substr(6, 3) == t5.substr(0,2)+"*") {
display(inputNum,t5,"五等賞\n1万円");
} else if (inputNum.substr(7, 2) == t6 || inputNum.substr(7, 2) == t6.substr(0,1)+"*") {
display(inputNum,t6,"六等賞\n1千円");
} else if (inputNum.substr(8, 1) == t7 || inputNum.substr(8, 1) == "*") {
display(inputNum,t7,"七等賞\n300円");
} else {
display("","","はずれ");
}
}
}
hantei_btn.addEventListener(MouseEvent.CLICK, hantei);
//当たり番号表示用テキストフィールドを全文字分作成
for (var i:uint=0; i<9; i++) {
var txtF:TextField = new TextField();
txtF.name="tf"+i;
txtF.x=235+13*i;
txtF.y=85;
addChild(txtF);
}
//当たり番号・賞の表示
var inputStr:String;
function display(inputNum, atariNum, prize) {
for (var i:uint=0; i<9; i++) {
var txtF:TextField=TextField(getChildByName("tf"+i));
txtF.text=inputNum.charAt(i);
inputStr+=inputNum.charAt(i);
if (i<9-atariNum.length) {
txtF.setTextFormat(tFormat);
} else {
txtF.setTextFormat(tFormat2);
}
addChild(txtF);
prizeBox.text=prize;
}
}
//インプット番号の書式チェック
function patternTest(str):Boolean {
var pattern:RegExp=/^\d{2}-\d{5}[\d\*]$/;
return pattern.test(str);
}
1等賞の番号をt1(String)とする
組番号
一字違い番号(上)の数字
一字違い上(組番号+6けた番号)のString
2等賞
2等賞
3等賞(組番号下一桁)
4等賞(6けた番号)
5等賞(下3けた)
インプット文字の限定(数字と-*)
インプットされた番号
書式パターンチェックへ
もし、間違いだったら(false)
間違いなければ(true)
一等の番号と一致するか、最後が*で他が一致していれば、一等賞を表示
判定ボタンにリスナーを設定
各テキストフィールドに
tf1,tf2,,,tf8と名前を付ける
tf1,,,tf8を横に並べる
txtFにtf1,,,tf8を順に割り当てる
そこにインプット番号を順に割り当てる
インプット番号全体をinputStrと定義
当たり番号に該当しない部分
黒字で表示
当たり番号相当部
赤字で表示
当たり等賞・金額を表示
正規表現
<スクリプト> (as2.0)
var t1:String = "75-106889";
var t1_kumi:String = t1.substr(0, 2);
var t1_p:Number = Number(t1.substr(3, 8))+1;
var t1_ps:String = t1_kumi+"-"+t1_p.toString();
var t1_m:Number = Number(t1.substr(3, 8))-1;
var t1_ms:String = t1_kumi+"-"+t1_m.toString();
var t2:String = "52-152692";
var t3:String = "8-125887";
var t4:String = "7332";
var t5:String = "728";
var t6:String = "15";
var t7:String = "0";
var n1:String = "161250";
var n2:String = "135948";
var n3:String = "151144";
var inputStr:String = "";
var tFormat:TextFormat = new TextFormat();
tFormat.size = 25;
tFormat.color = 0xffffff;
var tFormat2:TextFormat = new TextFormat();
tFormat2.size = 25;
tFormat2.color = 0xff0000;
inputBox.restrict = "0-9\\-\\*";
hantei_btn.onRelease = function() {
var inputNum:String = inputBox.text;
if (inputNum == t1 || inputNum == t1.substr(0, 8)+"*") {
display(inputNum,inputNum,"一等賞\n2億円");
} else if (inputNum == t1_ps || inputNum == t1_ps.substr(0, 8)+"*") {
display(inputNum,inputNum,"前後賞\n5千万円");
} else if (inputNum == t1_ms || inputNum == t1_ms.substr(0, 8)+"*") {
display(inputNum,inputNum,"前後賞\n5千万円");
} else if (inputNum.substr(3, 6) == t1.substr(3, 6) || inputNum.substr(3, 6) == t1.substr(3, 5)+"*") {
display(inputNum,inputNum.substr(3, 6),"組違い\n10万円");
} else if (inputNum == t2 || inputNum == t2.substr(0, 8)+"*") {
display(inputNum,t2,"二等賞\n1億円");
} else if (inputNum.substr(3, 6) == n1 || inputNum.substr(3, 6) == n1.substr(0, 5)+"*") {
display(inputNum,n1,"夏祭り賞\n百万円");
} else if (inputNum.substr(3, 6) == n2 || inputNum.substr(3, 6) == n2.substr(0, 5)+"*") {
display(inputNum,n2,"夏祭り賞\n百万円");
} else if (inputNum.substr(3, 6) == n3 || inputNum.substr(3, 6) == n3.substr(0, 5)+"*") {
display(inputNum,n3,"夏祭り賞\n百万円");
} else if (inputNum.substr(1, 8) == t3 || inputNum.substr(1, 8) == t3.substr(0, 7)+"*") {
display(inputNum,inputNum.substr(1, 8),"三等賞\n1千万円");
} else if (inputNum.substr(5, 4) == t4 || inputNum.substr(5, 4) == t4.substr(0, 3)+"*") {
display(inputNum,t4,"四等賞\n10万円");
} else if (inputNum.substr(6, 3) == t5 || inputNum.substr(6, 3) == t5.substr(0, 2)+"*") {
display(inputNum,t5,"五等賞\n1万円");
} else if (inputNum.substr(7, 2) == t6 || inputNum.substr(7, 2) == t6.substr(0, 1)+"*") {
display(inputNum,t6,"六等賞\n1千円");
} else if (inputNum.substr(8, 1) == t7 || inputNum.substr(8, 1) == "*") {
display(inputNum,t7,"七等賞\n300円");
} else {
display("","","はずれ");
}
};
function display(inputNum, atariNum, prize) {
for (i=0; i<9; i++) {
txtF = this.createTextField("tf"+i, i, 235+13*i, 85, 22, 30);
txtF.text = inputNum.charAt(i);
inputStr += inputNum.charAt(i);
if (i<9-atariNum.length) {
txtF.setTextFormat(tFormat);
} else {
txtF.setTextFormat(tFormat2);
}
prizeBox.text = prize;
}
}