Skip to content

saroro1/omoklib

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

omoklib

image

image

위와 같이 금수까지 계산해 준다.

https://www.renju.se/renlib/opensrc/

금수 알고리즘은 여기 소스를 보고 참고하였습니다

사용법 및 메소드

reset: function() : void

게임을 초기화합니다. 룰은 그대로 놔둡니다

setRenjuRule: function() : void

렌주룰로 설정합니다. 게임을 시작하기 전에 설정해야 합니다.

흑 : 33 ,44 육목 불가

백 : 다 가능

setNormalRule: function() : void

일반룰로 설정합니다. 게임을 시작하기 전에 설정해야 합니다.

흑,백 : 33 ,44 불가, 육목은 완성해도 승리하지 않음

setGomokuRule: function() : void

고모쿠룰로 설정합니다. 게임을 시작하기 전에 설정해야 합니다

흑 백 모두 금수 없음

setCustomRule: function(rule : object) : void

커스텀룰로 설정합니다. 게임을 시작하기 전에 설정해야 합니다

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);

isFive: function(string cord): boolean

해당하는 좌표가 오목이 되는지 검사합니다.

isOverLine: function(string cord): boolean

해당하는 좌표가 장목이 되는지 검사합니다.

isDoubleFour: function(string cord): boolean

해당하는 좌표가 44가 되는지 검사합니다.

isOverLine: function(string cord): boolean

해당하는 좌표가 33이 되는지 검사합니다.

putStone: function(string cord): InvalidPosition|Occupied|Forbid33|Forbid44|Forbid6|PutComplete|WhiteWins|BlackWins

해당하는 좌표에 돌을 넣습니다.

아래는 PutError를 상속받는 클래스입니다

  1. 잘못된 좌표일 때 ("H22" 같은 경우) : InvalidPosition
  2. 이미 돌이 있을 때 : Occupied

아래는 Forbid를 상속받는 클래스입니다

  1. 33 금수자리 일 때 : Forbid33
  2. 44 금수자리 일 때 : Forbid44
  3. 장목(6목) 금수자리 일 때 : Forbid6

아래는 PutComplete를 상속받는 클래스입니다

  1. 흑 승리 : BlackWins
  2. 백 승리 : 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()); //이미지 가져오기

각 클래스 구조는 아래를 참고해주세요

undo: function(): Undo

되돌리기

getPeriod: function(): number

getBoard: function(): number[][]

getTurn: function(): "b"|"w"

getHistory: function(): string[]

getImage: function(showForbid : boolean): string

getImageWithMove: function(showForbid : boolean): string

오프닝 룰 관련 (오프닝 룰이 아니면 쓰지 마세요)

setStoneByForce: function(cord : string, stone : "b" | "w"): void

clearStoneByForce: function(cord : string): void

About

오목(렌주룰 같은 금수도 가능)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published