2014-11-12 3 views
1

초보자 용 코딩 기술을 테스트하기 위해 포켓몬 유형의 게임을 만들려고합니다. 그러나 나는 약간의 문제에 부딪쳤다.다른 메서드에서 String에 어떻게 액세스합니까?

내가 프로그램을 실행하면 2 개의 공격 (태클 및 천둥 쇼크)이 나타나는 창이 나타납니다. 태클은 한 번 클릭하면 작동하지만 천둥 충격은 두 번 클릭해야합니다. 이것은 pikaAtkType()이 두 경우에 사용되기 때문입니다.

제대로 작동하려면 메서드의 "picked"문자열과 메시지 상자를 비교해야합니다.

제 질문은 pikaAtkType() 메서드에서 "picked"에 액세스하여 if 문에 넣는 방법입니다. 따라서 Thunder Shock에 대해 "OK"를 두 번 누르지 않고도 메시지 상자 입력을 비교할 수 있습니다. (I는 간단한 방법으로이 작업을 수행하고자, 나는 코딩에 있지 최선입니다.)

if (Encounter().equals("Attack")) { 
    if (pikaAtkType().equals("Tackle")) { 
     pikaDMG = 3; 
    } else if (pikaAtkType().equals("Thunder Shock")) { 
     pikaDMG = 4; 
    } 
} 

방법 pikaAtkType() (이러한 코드의 단지 조각을 기억) :

static String pikaAtkType() { 
    String[] choices = {"Tackle", "Thunder Shock", "", ""}; 
    String picked = (String)JOptionPane.showInputDialog(
     null, 
     "Select Attack: ", 
     "Attack!", 
     JOptionPane.QUESTION_MESSAGE, 
     null, 
     choices, 
     choices[0]); 
    return picked; 
} 
+0

다른 방법. [클래스 필드] (https://docs.oracle.com/javase/tutorial/java/javaOO/index.html)를 확인하십시오. – m0skit0

답변

3

을 귀하의 질문을 이해한다면, 한 가지 해결책은 "공격"을 한 ​​번 받고 로컬 변수에 저장하는 것입니다. 당신은

public class Pokemon { 
    String picked = ""; 

    static void pikaAtkType() 
    { 

     String[] choices = {"Tackle", "Thunder Shock", "", ""}; 
     String picked = (String) JOptionPane.showInputDialog (null, "Select Attack: ", "Attack!",  JOptionPane.QUESTION_MESSAGE, null, choices, choices [0]); 
     this.picked = picked; 
    } 
} 

을 집어 일치 한 클래스의 필드를 만들 수 있습니다

if (Encounter().equals ("Attack")) 
{ 
    String attack = pikaAtkType(); 
    if (attack.equals ("Tackle")) 
    { 
    pikaDMG = 3; 
    } 
    else if (attack.equals ("Thunder Shock")) 
    { 
    pikaDMG = 4; 
    } 
+1

정말 고마워,이게 해결 됐어! :디 – bobbybob

0

뭔가 등, 그럼 당신은 단지 이동 : 당신은, 당신은 알아낼 수 없습니다

if (Encounter().equals ("Attack")) { 
    pickAtkType(); 
    if (picked.equals ("Tackle")) 
    { 
    pikaDMG = 3; 
    } 
    else if (picked.equals ("Thunder Shock")) 
    { 
    pikaDMG = 4; 
    } 
관련 문제