위와 같이 금수까지 계산해 준다.
https://www.renju.se/renlib/opensrc/
금수 알고리즘은 여기 소스를 보고 참고하였습니다
게임을 초기화합니다. 룰은 그대로 놔둡니다
렌주룰로 설정합니다. 게임을 시작하기 전에 설정해야 합니다.
흑 : 33 ,44 육목 불가
백 : 다 가능
일반룰로 설정합니다. 게임을 시작하기 전에 설정해야 합니다.
흑,백 : 33 ,44 불가, 육목은 완성해도 승리하지 않음
고모쿠룰로 설정합니다. 게임을 시작하기 전에 설정해야 합니다
흑 백 모두 금수 없음
커스텀룰로 설정합니다. 게임을 시작하기 전에 설정해야 합니다
rule 구조는 다음과 같습니다
const rule ={
"sixWin": [false, true], //흑 백 순서대로, true면 육목 만들면 승리
"allow6": [false, true] , //흑 백 순서대로, true면 육목 가능 false면 불가
"allow44": [false, true] , //흑 백 순서대로, true면 44 가능 false면 불가
"allow33": [false, true] , //흑 백 순서대로, true면 33 가능 false면 불가
};
game.setCustomRule(rule);
해당하는 좌표가 오목이 되는지 검사합니다.
해당하는 좌표가 장목이 되는지 검사합니다.
해당하는 좌표가 44가 되는지 검사합니다.
해당하는 좌표가 33이 되는지 검사합니다.
putStone: function(string cord): InvalidPosition|Occupied|Forbid33|Forbid44|Forbid6|PutComplete|WhiteWins|BlackWins
해당하는 좌표에 돌을 넣습니다.
- 잘못된 좌표일 때 ("H22" 같은 경우) : InvalidPosition
- 이미 돌이 있을 때 : Occupied
- 33 금수자리 일 때 : Forbid33
- 44 금수자리 일 때 : Forbid44
- 장목(6목) 금수자리 일 때 : Forbid6
- 흑 승리 : BlackWins
- 백 승리 : WhiteWins
const err = game.putStone("H555") //InvalidPosition
const res =game.putStone("H8") ;// H8에 착수
if(res instanceof PutComplete){ //정상적으로 착수 될 때
if(res instanceof BlackWins){
//흑이 승리한 경우
}
else if(res instanceof WhiteWins){
//백이 승리한 경우
}
else{
//계속 경기가 진행 될 때
}
}
else if(res instanceof PutError){
if(res instanceof InvalidPosition){
//잘못된 좌표일 때
}
else if(res instanceof Occupied){
//이미 돌이 있을 때
}
}
else if(res instanceof Forbid){
if(res instanceof Forbid33){
//33 금수일 때
}
else if(res instanceof Forbid44){
//44 금수일 때
}
else if(res instanceof Forbid66){
//장목 금수 일 때
}
}
console.log(a.getImage()); //이미지 가져오기
되돌리기