를 사용하여 포커 위치를 (어떻게 조작하기 위해) :의 나는 다음과 같은 클래스를 생성한다고 가정 해 봅시다 ENUM
public enum Position {
Dealer(1), //1
SB(2), //2
BB(3), //3
UTG(4), //4
UTG1(5), //5
UTG2(6), //6
UTG3(7), //7
HJ(8), //8
CO(9); //9
//Constructor
int code;
Position(int code) {
this.code = code;
}
}
을 어떻게 괄호 안에 숫자를 사용하여 ENUM을 조작합니까? 예를 들어, 내 포커 테이블 클래스에서 새 플레이어를 시작합니다. 각 플레이어는 Position 매개 변수를 전달합니다. 손이 끝난 후 그래서 처음
player[1].getPosition() = Dealer
player[2].getPosition() = SB
player[3].getPosition() = BB
etc etc etc
는 모든 위치는 하나 이상의 이동해야합니다.
그래서 플레이어 [1]은 CO (9) 위치가 필요합니다.
플레이어 [2]에게 딜러 (1) 위치가 있어야합니다.
플레이어 [3]이 SB (2) 위치를 가져야합니다.
등
나는 1에서 9까지의 숫자를 순환하는 변수로 for 루프를 만들 수 있다는 것을 알고 있지만, PositionENUM 내부의 정수를 기반으로 위치에 액세스하려면 어떻게해야합니까?
편집 : 이미 getters와 setters가 있습니다.
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
그러나 게터와 세터는 각 라운드마다 플레이어의 위치를 올바르게 변경하지 않습니다.
모든 베팅 라운드가 끝나면 각 플레이어의 위치를 변경해야하므로 각 베팅 라운드 후에 각 플레이어의 ENUM 위치를 이동하는 방법을 알아야합니다.
아, 네,이 내부 클래스의 논리가 의미가있는 것 같습니다. 내부의 정수에 ENUM을 바인딩하기 위해 해시 맵을 만드는 영리한 방법. 내부적으로 ENUM을 조작하는 것이 쉽지 않거나 간단한 방법이 아니 었습니다. – krikara
그래, 지금까지 내가 아는 한 자바는 회원 필드 값에 의해 enum 인스턴스를 매핑하는 더 쉬운 방법을 가지고 있지 않다. 실제로이 특별한 경우에 대해서는 실제 정수 값이 아닌 순서에만 관심이 있으므로 Ray 솔루션이 더 나은 선택 일 수 있습니다. – oksayt
이 정적지도는 무엇입니까? 그들은 1에서 n까지 번호가 매겨 지므로 Enum.ordinal() + 1! – Bohemian