2013-05-23 4 views
0

전쟁 (카드 게임)을 프로그래밍하기 시작했으며 메소드가 이미 인스턴스화되었으므로 이러한 오류가 계속 발생하는 이유를 알아야합니다.계속 오류가 발생했습니다 : int는 참조 해제 될 수 없습니다. 어떻게 수정해야합니까?

import java.util.*; 

public class CardGame { 
    public static void main(String[] args) { 

     CardDeck CardDeckA = new CardDeck(); 
     //creates a standard card deck with 52 cards 1 - 10, J, Q, K, A diamond, spade, club, heart 


     //Card(int value, int suit) 

     int[] player1 = new int[52]; 
     int[] player2 = new int[52]; 
     int a = player1.length; 
     int b = player2.length; 

     for (int i = 0; a <= 26; i++) { 
      player1[i].deal(); //Error: int cannot be dereferenced 
      //deal(int n):Deals n cards from the top of the CardDeck, returns Card[] 
     } 

     for (int j = 0; a <= 26; j++) { 
      player2[j].deal();//Error: int cannot be dereferenced 
     } 
    } 
} 
+0

'때문에 ints'가 자바에서 역 참조 할 수 없습니다 당신이 그것을 사용하는 방법에 따라

deal 반환 int[]는, 나는 뭔가 비슷한 것이라고 생각한다. 그런 시설은 없습니다. 너는 그것을 만들었다. 너무 현지화되었습니다. 발견 – EJP

+0

2 오류 : 프로그램 \ CardGame \ CardGame.java [선 : 14] 오류 : 오류 : INT는 @EJP 수행하는 방법을 역 참조 할 수 없습니다 INT는 프로그램 \ CardGame \ CardGame.java [17 선] 역 참조 할 수 없습니다 나는 그것을 고친다? – IAmBadAtThis

+0

기준 연산자는 점 ('.')입니다. 그것은'int'에 적용될 수 없습니다.'int i = 0; i.THISISNOTRIGHT;'. – acdcjunior

답변

1

당신은이 방법이없는, 원시 int입니다 player1[i] 때문에

player = CardDeckA.deal(1) 

대신

player1[i].deal() 

같은 것을 같은 방법을 호출해야합니다.

player = CardDeckA.deal(26) 
+0

'CardDeckA.deal (26)'. 그건 그렇고,'CardDeckA'는 나쁜 이름입니다. 원래의 포스터는 그냥 '갑판'이라고 불러야합니다. –

+0

@EricJablow 아, 너무 많은 편집하고 여전히 '거래'다른 개체에서입니다 놓친. 원래 게시물의 코드는 우리가해야 할 일을 알지 못한다면 구제를 넘어서게됩니다 :) 감사합니다! –

+0

신입생의 마술 적 사고, 나는 믿는다. 나는 삼각법 대체를 잊어 버렸기 때문에 제곱근을 덧붙이려고 시도했던 유사한 수학 학생들이있었습니다. –