위와 같이 금수까지 계산해 준다.
https://www.renju.se/renlib/opensrc/
금수 알고리즘은 여기 소스를 보고 참고하였습니다
게임을 초기화합니다. 규칙은 그대로 놔둡니다
렌주룰로 설정합니다. 게임을 시작하기 전에 설정해야 합니다.
일반룰로 설정합니다. 게임을 시작하기 전에 설정해야 합니다.
고모쿠룰로 설정합니다. 게임을 시작하기 전에 설정해야 합니다
커스텀룰로 설정합니다. 게임을 시작하기 전에 설정해야 합니다
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 (쌍삼) | 흑 : 불가, 백 : 불가 | 흑 : 가능, 백 : 가능 | 흑 : 불가, 백 : 가능 |
해당하는 좌표가 오목이 되는지 검사합니다.
해당하는 좌표가 장목이 되는지 검사합니다.
해당하는 좌표가 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){
//장목 금수 일 때
}
}
a.getImage(); //이미지 가져오기
되돌리기