게임의 규칙을 확인하시고, 아래 함수들을 채운 후, 대결상대를 선택하고, 게임시작 버튼을 누르면 배틀이 시작됩니다.
가위는 1, 바위는 2, 보는 3
가위는 보를 이기고, 바위는 가위를 이기고, 보는 바위를 이깁니다.
가위로 이기면 1점, 바위로 이기면 2점, 보로 이기면 3점 획득
코드배틀은 내가 작성한 코드와 상대가 작성한 코드가 일대일로 대결하는 방식이며, 언어는 JAVASCRIPT 입니다.
코드를 작성하고, 대결상대를 RANDOM, LEVEL1, LEVEL2, LEVEL3, 온라인 상대 중에서 선택한 후 게임시작 버튼을 누르면 대결이 시작됩니다.
대결은 game이며, 1 game은 5 round로 구성되고, 1 round는 100 turn으로 구성됩니다.
각 game, round, turn의 시작과 끝에서 onGameStart, onRoundStart, onTurnStart, onTurnEnd, onRoundEnd, onGameEnd 함수가 호출되며, 사용자는 각 함수에 자신의 로직을 구현하면 됩니다.
게임의 규칙에 맞게 기본 전략을 세우고, 상대의 패턴을 분석하여 onTurnStart에서 최선의 선택을 반환하는 것이 승리의 핵심요소입니다.
/**
* 코드는 JAVASCRIPT 로 작성해 주세요.
*/
var myRecentChoice;
/**
* 게임이 시작되면 호출됩니다.
* 게임 중에 사용할 변수들의 초기화를 여기서 합니다.
*/
function onGameStart() {
// printLog(string)는 플레이 영역 하단의 게임 로그 영역에 텍스트를 출력하는 함수입니다.
printLog("onGameStart!");
}
/**
* 라운드가 시작되면 호출됩니다.
* 1번의 게임은 5번의 라운드를 실행합니다.
*/
function onRoundStart() {
printLog("onRoundStart!");
}
/**
* 턴이 시작되면 호출됩니다.
* 1번의 라운드는 100번의 턴을 실행합니다.
* @return 1(가위) or 2(바위) or 3(보)
*/
function onTurnStart() {
printLog("onTurnStart!");
// 1 or 2 or 3 중 랜덤 선택
myRecentChoice = Math.floor((Math.random() * 3) + 1);
return myRecentChoice;
}
/**
* 턴이 끝나면 호출되며, 턴의 결과를 받아봅니다.
* @param result
* result.win: -1(졌을때) or 0(비겼을때) or 1(이겼을때)
* result.opponentchoice: 이번 턴에 상대가 리턴한 값
* result.winscore: 이번 라운드에서 턴을 이겨서 획득한 점수가 몇점인가
* result.losescore: 이번 라운드에서 턴을 져서 잃은 점수가 몇점인가
*/
function onTurnEnd(result) {
printLog("onTurnEnd! win:"+result.win+", opponent's choice:"+result.opponentchoice+", my choice:"+myRecentChoice);
}
/**
* 라운드가 끝나면 호출되며, 라운드의 결과를 받아봅니다.
* @param result
* result.win: -1(졌을때) or 0(비겼을때) or 1(이겼을때)
* result.wincnt: 이번 게임에서 몇번의 라운드를 이겼는가
* result.losecnt: 이번 게임에서 몇번의 라운드를 졌는가
*/
function onRoundEnd(result) {
printLog("onRoundEnd! win:"+result.win+", wincnt:"+result.wincnt+", losecnt:"+result.losecnt);
}
/**
* 게임이 끝나면 호출되며, 게임의 결과를 받아봅니다.
* @param result
* result.win: -1(졌을때) or 0(비겼을때) or 1(이겼을때)
*/
function onGameEnd(result) {
printLog("onGameEnd! win:"+result.win);
printLog("----------------------------");
}