MrRex
1
Hello, I’m trying to learn processing but I have an error with my code. Here is my code :
void step() {
float x;
float y;
float r = random(1);
if (r < 0.4) {
x++;
} else if (r < 0.6) {
x--;
} else if (r < 0.8) {
y++;
} else {
y--;
}
}
My error :
“The local variable x may not have been initialized”
Thank you for helping me !
1 Like
just say float x=0 ; in the line you already have
Is this your entire sketch by the way?
The function step wouldn’t run on its own.
You should have a function setup and draw as well. Call step() from draw().
Please look on the website tutorials section, first three text tutorials
1 Like
MrRex
4
It’s not my entire sketch. I’m learning with Daniel Shiffman’s book.
1 Like
kll
5
hi,
-a- please format your code using the </> Preformatted text
button
-b- also post code as short as possible just to show your problem
but complete as in we can copy / paste it into the PDE and it runs…
a running version would be
one cycle
void setup() {
step();
}
float x;
float y;
void step() {
float r = random(1);
print("r "+nf(r,0,2)+" x "+x+" y "+y);
if (r < 0.4) x++;
else if (r < 0.6) x--;
else if (r < 0.8) y++;
else if (r > 0.8) y--;
println(" now: x "+x+" y "+y);
}
or conti
void setup() {}
void draw() {
step();
}
float x;
float y;
void step() {
float r = random(1);
print("r "+nf(r,0,2)+" x "+x+" y "+y);
if (r < 0.4) x++;
else if (r < 0.6) x--;
else if (r < 0.8) y++;
else if (r > 0.8) y--;
println(" now: x "+x+" y "+y);
}
2 Likes
MrRex
6
Can you more explain the code, please ? What’s the difference between “print” and “println” ?
println makes a new line / line break after the text, print doesn’t. It stays in the same line
With a small adjustment we can see it more graphic
PVector walker;
void setup() {size(displayWidth,displayHeight);}
void draw() {
walker = step();
fill(random(255),120);
translate(width/2,height/2);
ellipse(walker.x,walker.y,10,10);
}
float x;
float y;
PVector step() {
float r = random(1);
print("r "+nf(r,0,2)+" x "+x+" y "+y);
if (r < 0.4) x++;
else if (r < 0.6) x--;
else if (r < 0.8) y++;
else if (r > 0.8) y--;
println(" now: x "+x+" y "+y);
return new PVector(x,y);
}
1 Like