2013-10-09 34 views
0

我有一段別人寫的代碼,我無法弄清楚如何使代碼與它一起工作。 我應該做一個模具輥和使用顯示1和6之間的數字:在Java中使用外部代碼的模具類

(int)(math.random()*6 + 1); 

提供的代碼是這樣的:

import java.util.*; 

public class Ch3_PrExercise6 

{ 
    static Scanner console = new Scanner(System.in); 
    public static void main(String[] args) 
    { 
    Die die1 = new Die(); 
    Die die2 = new Die(); 
    System.out.println("die1: " + die1.getRoll()): 
    System.out.println("die2: " + die2.getRoll()); 
    System.out.println("After rolling, die1: " + die1.rollDie()); 
    System.out.println("After rolling, die2: " + die2.rollDie()); 
    System.out.println("After second roll, die1: " + die1.rollDie()); 
    System.out.println("After second roll, die2: " + die2.rollDie()); 
    } 
} 

到目前爲止,所有我能想出是:

public class Die 
{ 
    //Sets initial value to 1 
    public int startFace 
    { 
    startFace = 1; 
    } 
    //Roll the die 
    public int rollDie 
    { 
    rollDie = (int)(math.random()*6 + 1); 
    } 
} 

我無法找出其他程序從我的getRoll行想要的東西。我知道rollDie在最後四個打印命令中被調用。

我正在使用Processing 2.20,如果這很重要。

+4

你需要說明你到底在問什麼。我迷路了。 – nhgrif

+0

在'rollDie()'方法中沒有return語句 - 而不是'rollDie =',使用'return';這就是Java產生返回值的方式。在上面的例子中,也沒有必要使用'startFace()'方法。 –

+0

我最好的猜測是'getRoll()'應該返回die的當前'face'值(即最後一次滾動的結果或一些標準值,如果還沒有滾動的話)。但這僅僅是基於我的觀點的猜測,並不適合於SO。 – FGreg

回答

1

我不認爲編譯?你期待rollDie是一個函數,你可以告訴大家,因爲你有

die1.rollDie() 

注意括號:函數調用。

這樣做的功能,並使其返回一個值:

public int rollDie() 
{ 
    int rollResult = (int)(math.random()*6 + 1); 
    return rollResult 
} 
+0

我認爲這個問題是關於'die1.getRoll()'... – iamnotmaynard

+0

我仍然在研究其他代碼在處理代碼時需要的所有內容。但是,是的,你是對的。它目前不編譯。 – user2863980

1

我會給予好評DJNA並接受他的答案。詳細說明一下,我認爲這是你需要的全部:

public class Die 
{ 
    private int face = 1; 

    // Get current value 
    public int getRoll() { 
    return face; 
    } 

    //Roll the die, return new value 
    public int rollDie() { 
    face = (int)(Math.random()*6 + 1); 
    return face; 
    } 

} 
+0

這個任務似乎也意味着骰子記得他們最後一次擲骰子並且支持'getRoll'調用。 – Aurand

+0

你說得對。更新。 – paulsm4

相關問題