2016-11-22 2 views
0

Я бы хотел, чтобы этот метод назывался «roll», чтобы каждый раз ссылаться на мой int, называемый «spacePoints». Он работает, однако, он начинается от 100 каждый раз. Мне нужно, чтобы он начинался там, где точки были оставлены при каждом вызове метода.Looping and Ceeping the count

int spacePoints = 100; 

public void roll(){ 
    pointsRolled = ((int) (Math.random() * 10)+ 1); 
    if (pointsRolled % 3 ==0){ 
    System.out.println("You must fight!!!"); 

    } else { 
     spacePoints = spacePoints- pointsRolled; 
    System.out.println("You have " + spacePoints + " to go."); 

    } 

    } 
+0

У вас недостаточно кода. Ничто не показывает, что оно будет начинаться со 100 при каждом вызове 'roll()'. – John3136

+1

Как вы называете метод? Из вашего фрагмента у вас есть «spacePoints» как поле класса и декрементирует его «pointRolled», когда он не делится на три. Если вы не создаете новый экземпляр вашего класса каждый раз, когда вы вызываете метод «roll», он будет «отслеживать» «spacePoints» этим полем класса. – GameSalutes

ответ

0

Ваш вопрос немного неясно, как @ упоминалось John3136, но я держу пари, что вам нужно, чтобы узнать больше о статическом ключевом слове и понять class members.

+0

Эй, похоже, работает после использования статического. Спасибо! –

1

Я полагаю, вы создали несколько экземпляров класса, который содержит метод roll(). Поскольку в противном случае в противном случае (один экземпляр класса) значение spacePoints будет изменено после каждого вызова.
Итак, чтобы решить вашу проблему, вы должны позвонить roll() только на том же экземпляре, и таким образом spacePoints, который будет связан с тем же экземпляром, будет обновлен от вызова к вызову.

MyObject obj = new MyObject(); 
obj.roll(); 
obj.roll(); 
obj.roll(); 
+0

Он никогда не будет вызываться, если для spacePoint установлено значение 100. Вы уверены в своем состоянии 'while'? Измените свой вопрос и разместите больше кода, это может быть полезно. – davidxxx

+0

Это ошибка. Я хотел сказать, while (spacePoints> 0) {game.roll();} –