2011-11-22 35 views
-3

正如你可能從我的其他問題中看到的那樣,我正在設計一個nack和cross的遊戲。我開始設計並編寫測試,我設法讓它們全部通過。所以在技術上,我在測試中玩遊戲。掃描儀輸入是否僅在主要方法中工作?

現在我想讓遊戲與用戶進行一些互動,所以我在遊戲類中插入了主要方法。我已經有了一些方法來確定是否有效。當我嘗試將掃描程序併入已存在的方法中,並使用掃描程序的next()或nextLine()方法時,它不起作用。但是,當我把相同的代碼在主要方法中,它的工作原理,並要求我在控制檯上輸入。

掃描儀只能使用主要方法嗎?如果是的話,我還需要通過控制檯爲我的遊戲輸入什麼選擇?

答案與實例會因理解我的基本能力

下面是我

public static void main (String args []){ 

} 

public boolean playMove (player player, String value, int index) { 
Scanner in = new Scanner (System.in); 
System.out.print("Enter Value"); 
value = in.next(); 

} 

也許我的錯誤是在離開主法的空白。因爲我已經有方法來完成我想要的功能,並且所有的測試都通過了,所以我不想將東西移動到主要方法中。有什麼建議嗎?

謝謝

+2

帶有示例代碼和比「不起作用」更具體的問題將不勝感激,因爲我們缺乏ESP。當然,答案是否定的,你可以在任何地方使用該對象......就像任何其他對象一樣。 –

+2

不,當然不是。那隻會是愚蠢的。代碼請。 (你的問題在於其他地方,並且認爲它與使用*任意*掃描儀對象的位置*有關。) – 2011-11-22 23:01:04

+1

您能否粘貼一些代碼? 「 –

回答

2

工作得很好。

import java.util.Scanner; 

public class ScannerTest { 
    public static void main(String[] args) { 
     System.out.println(test()); 
    } 

    private static String test() { 
     Scanner stdin = new Scanner(System.in); 
     return stdin.nextLine(); 
    } 
} 

我的假設是,你有一個範圍的問題怎麼回事,發佈您的代碼。

/e1
如果您想要發生任何事情,您必須在主要方法中調用它。您不必將主要方法留空,而需要(可能)有game loop。在這種情況下,如果您只想調用該方法,請添加playMove(null, null, 0)以運行您的Scanner

+0

謝謝傑弗裏。請看編輯過的問題 - 也許我的錯誤是將主要方法留空。因爲我已經有方法來完成我想要的功能,並且所有的測試都通過了,所以我不想將東西移動到主要方法中。有什麼建議嗎? – uncleB

+0

@uncleB閱讀我的編輯 – Jeffrey

+0

這意味着我將不得不將playMove()修改器更改爲靜態,因爲它將在主靜態方法中調用。這可以嗎?任何其他方式,我可以使這項工作沒有方法靜態?還有什麼我可以在主要方法中投擲?在此先感謝 – uncleB