[숫자 맞추게 하기 플래시 액션스크립트 코드]-그렇잖아도 clisp에 비해 긴 코드인데 이것저것
인터페이스 등을 덕지덕지 덧붙이고 하다보니 코드가 길어졌다.
핵심이랄 수 있는 숫자 추측하는 알고리즘의 경우 위 clisp은 절반씩 나눠 가며 찾는 방식인데 이
절반씩 나눠 찾기 방식이 너무 단조롭게 느껴져 액션스크립트 코드에서는 일단 대충 찍고 그 안에서 다시
찍어 가며 찾는 방식을 택했다.
var max:uint=100;
var min:int=1;
var tempNum:uint;
var tryNum:uint=0;
function preGame(){
screenM.gotoAndStop("start");
screenM.startGame.addEventListener(MouseEvent.CLICK,startGame);
}
function startGame(e:MouseEvent){
screenM.gotoAndStop("game");
//screenM.startGame.removeEventListener(MouseEvent.CLICK,startGame);
GameInit();
}
function backTitle(e:MouseEvent){
max = 100; min = 1; tryNum = 0;
preGame();
}
function GameInit(){
guessMyNumber();
bigger.gotoAndStop("on");
smaller.gotoAndStop("on");
ok.gotoAndStop("on");
newGame.gotoAndStop("off");
title.gotoAndStop("off");
bigger.addEventListener(MouseEvent.CLICK,bigHandle);
smaller.addEventListener(MouseEvent.CLICK,smallHandle);
ok.addEventListener(MouseEvent.CLICK,okHandle);
newGame.addEventListener(MouseEvent.CLICK,newGuess);
title.addEventListener(MouseEvent.CLICK,backTitle);
}
function guessMyNumber(){
comBar.minBar.scaleX = min/100;
comBar.maxBar.scaleX = 1-(max/100);
comBar.minNum.x = 370*(min/100);
comBar.maxNum.x = 370-(370*(1-max/100));
comBar.minNum.txt.text = min-1;
comBar.maxNum.txt.text = max+1;
//tempNum = Math.floor((max+min)/2); //clisp코드와 비슷한 분할 찾기
방식
tempNum = Math.floor(Math.random()*(max-min))+min;
//범위내 찍기 방식
NumText.text = String(tempNum);
expText.text ="인가요?";
tryNum++;
checkNumber();
}
function checkNumber(){
if(min == max){
tempNum = max;
rightNumber();
}
}
function bigHandle(e:MouseEvent){
min = tempNum + 1;
guessMyNumber();
}
function smallHandle(e:MouseEvent){
if(max>0){ max = tempNum - 1; }
guessMyNumber();
}
function okHandle(e:MouseEvent){ rightNumber(); }
function rightNumber(){
NumText.text ="^_^";
expText.text =tempNum+"이었군요.\n"+tryNum+"번만에
맞췄네요.";
bigger.gotoAndStop("off");
smaller.gotoAndStop("off");
ok.gotoAndStop("off");
newGame.gotoAndStop("on");
title.gotoAndStop("on");
bigger.removeEventListener(MouseEvent.CLICK,bigHandle);
smaller.removeEventListener(MouseEvent.CLICK,smallHandle);
}
function newGuess(e:MouseEvent){
max = 100; min = 1; tryNum = 0;
bigger.gotoAndStop("on");
smaller.gotoAndStop("on");
ok.gotoAndStop("on");
newGame.gotoAndStop("off");
title.gotoAndStop("off");
comBar.minBar.scaleX = 0;
comBar.maxBar.scaleX = 0.01;
comBar.minNum.x=0;
comBar.maxNum.x=370;
comBar.minNum.txt.text = 1;
comBar.maxNum.txt.text = 100;
guessMyNumber();
bigger.addEventListener(MouseEvent.CLICK,bigHandle);
smaller.addEventListener(MouseEvent.CLICK,smallHandle);
}
preGame();
13/01/12 토
|