2014-01-15 2 views
1

안녕 얘들 아. 여기 내 첫 번째 게시물이므로 가능한 경우 부드럽게 처리하십시오.[한국어] [HOMEWORK] Pickomino Game

나는 Pickomino라는 보드 게임의 Java 버전을 만들어야합니다. 이 게임에서는 닭고기, 주사위를 던져 테이블에서 벌레를 수집합니다. 테이블에는 16 장의 카드가 있습니다. 한 플레이어가 카드를 선택하면 카드를 "스택 더미"에 넣고 테이블에서 제거합니다.

내 "주요 방법"에는 표에서 점수를 얻기위한 코드가 있지만, 100 % 올바르게 표시되지는 않지만 더 나은 솔루션을 통해 의견을 듣고 싶습니다.

if (player1.canIPick(pickedDice)){ 
     switch (sumOfDice) { 
      case 21: 
      case 22: 
      case 23: 
      case 24: 
       player1.setPoints(1); 
       break; 
      case 25: 
      case 26: 
      case 27: 
      case 28: 
       player1.setPoints(2); 
       break; 
      case 29: 
      case 30: 
      case 31: 
      case 32: 
       player1.setPoints(3); 
       break; 
      case 33: 
      case 34: 
      case 35: 
      case 36: 
       player1.setPoints(4); 
       break; 
     } 
    } 

사람이 포인트를 테이블에서 카드를 선택하고 얻는 경우에 첫째, 그것은 잘못된 원인입니다,이 코드에 좋아하지 않는 두 가지가 있으며, 다른 플레이어가 같은 카드를 선택할 수 있습니다. 마찬가지로 내가 말했듯이, 그것은 나의 주요한 방법의 일부이고 나는 그것을 좋아하지 않는다. 그래서 나는 다른 클래스의 배열을 생성하고 거기에서 카드로 접근 할 수 있다고 생각했지만, 나는 이것에 약간의 문제가있다. . 나를 도와 줄 수있는 다른 제안이 있습니까? 배열이 작동합니까 아니면 잘못된 방식입니까?

감사합니다.

+0

정확히/작동하지 않는 것은 무엇입니까? 게시 된 코드는 귀하의 질문에서 말하는 카드를 참조하지 않습니다. – JNYRanger

+0

2 개의 숫자가 표시된 카드를 상상해보십시오. 하나의 번호는 카드에 대한 액세스 권한을 부여하는 번호이며 내 * 사례 *의 번호입니다. * setPoint() 메소드 *의 숫자는 플레이어가 얻는 포인트 (= 웜)의 수입니다. 내가 1 번 선수이고 25 점을 얻었다면 2 점을 얻습니다. 내 코드에서 25 점을 얻은 경우 2 점을 얻게됩니다. 이것은 잘못된 것입니다. 보드에서 그 카드를 더 이상 선택할 수 없습니다. – Akumu

답변

1

정확히 어떻게이 게임이 실행되는지 잘 모르겠습니다. 하지만 나는 테이블 위에 누워있는 카드 배열을 만드는 것을 제안합니다. 새 게임이 시작될 때 값을 재설정하십시오.

ArrayList<Integer> cardsOnTable = new ArrayList<Integer>(); 

for(int i = minPoint; i<=maxPoint;i++) { 
    cardsOnTable.add(i); 
} 

카드를 제거 할 때 해당 카드가 여전히 테이블에 있는지 (목록에 있음) 확인할 수 있습니다.

또는 Integer 및 Boolean과 함께 HashMap을 사용하고 카드를 가져 오면 부울을 나타낼 수 있습니다.

+0

그건 좋은 소리. 나는 그것을 시도 할 것이고 나는 다시 올 것이다. 감사. – Akumu