java - 如何制作计数器?

标签 java oop counter

我有一个 OOP 项目,我必须在其中对网格中小动物的 Action 进行编程。

这就是我现在拥有的。

public class Frog implements Critter {
    //below is what letter represents the Frog in the grid.  Works fine.
    public char getChar() {
        return 'F';
    }

public int getMove(CritterInfo info) {
    //need to count the moves to determine how far to move
    int countF;
    countF++;
    int moveF2 = 0;
    if (countF % 3 == 1) {
        int moveF = (int)(Math.random() * 100);
        moveF2 = moveF;
        countF = 0;
    } 
    else {
        if (moveF2 < 25) {
            return NORTH;
        }
        else if (moveF2 < 50) {
            return SOUTH;
        } 
        else if (moveF2 < 75) {
            return EAST;
        }
        else {
            return WEST;
        }
    }
}

Frog 应该选择一个随机方向,朝该方向移动 3 步,重复。

我不知道如何制作一个计数器来计算移动次数。我想到了:

public int getMove(CritterInfo info) {
    int countF = 0;
    countF++;
    int moveF2 = 0;
    if (countF % 3 == 1) {
        int moveF = (int)(Math.random() * 100);
        moveF2 = moveF;
        countF = 0;
    }
    else {
        ...(cut)
    }
 }

但是上面的代码显然不起作用,因为它每次运行时都会将 countF 重置为 0。

最佳答案

你的countF变量是一个局部变量,因此每次调用该方法时它都会被初始化为0。你需要将其设为字段变量。如果它是字段变量,那么它将属于对象而不是方法。这意味着它只会在创建对象时被初始化为0。

int countF = 0;

public int getMove(CritterInfo info) {
    countF++;
    int moveF2 = 0;
    if (countF % 3 == 1) {
        int moveF = (int)(Math.random() * 100);
        moveF2 = moveF;
        countF = 0;
    } else {
    }
}

关于java - 如何制作计数器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21198561/

相关文章:

不能从 class.__dict__ 调用 python 类方法

c++ - 使用虚拟方法设计类

counter - Dropwizard 度量如何在不结转计数器值的情况下对操作进行计数

java - 在具有多个允许签名的 Android 服务上实现签名级安全性

java - 从java启动一个exe

javascript - 如何正确委托(delegate)类原型(prototype)

PHP 到 Excel : fill the output Excel file with a loop

java - 窗口监听器不起作用

java - 如何在不使用数组或为您解析单词的方法的情况下找到字符串中最长的单词

php - 如何使用 php/mysql 计算进入同一页面的不同链接上的点击次数