gpt4 book ai didi

java - 如何正确调用同一个类中的方法内的方法?

转载 作者:太空宇宙 更新时间:2023-11-04 07:23:17 27 4
gpt4 key购买 nike

我正在处理中编写一些代码,以使用 Monte Carlo algorithm 显示随机游走者。

现在我已经指定了一个步行器类,其中包含两个重要的方法:一个控制运动的step函数和一个控制速度和方向的stepsize函数。

但由于某种原因我无法正确调用step方法中的stepsize方法。结果,程序在屏幕上没有绘制任何内容。代码执行,没有错误。

我的代码:

import java.util.*;

class Walker {
float y;
float x;
float monte_carlo;

Walker() {
x = width/2;
y= height/2;
}

void display(){
stroke(0);
point(x,y);
}

float stepsize (float r1) {
while (true) {
r1 = random(0,10);
float probability = r1;
float r2 = random(0,10);
if (r2 < probability) {
return r1;
}
}
}

void step() {
x += stepsize(monte_carlo);
y += stepsize(monte_carlo);
}
}

Walker w;

void setup() {
size(400,400);
w = new Walker();
background(255);
}

void draw() {
w.display();
w.step();
}

这个问题困扰了我一段时间,如果有人能启发我,我将不胜感激!

最佳答案

Java 是 pass-by-value ,因此您的 stepsize() 方法不会修改您的 monte_carlo 变量。只需在方法中直接使用该变量即可,而不是传入它。

float stepsize () {
while (true) {
monte_carlo = random(0,10);
float probability = monte_carlo;
float r2 = random(0,10);
if (r2 < probability) {
return monte_carlo;
}
}
}

关于java - 如何正确调用同一个类中的方法内的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18962212/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com