Win a copy of Re-engineering Legacy Software this week in the Refactoring forum
or Docker in Action in the Cloud/Virtualization forum!

# Games in java

Fernando hiar
Greenhorn
Posts: 29
I want to know, I have a game in java about the snake, I have snake with 40 Points and I put all points in a variable called MAX_POINT who is the body the snake and the tail I´ll put inside the variable i = tail of snake. I want to know What´s this expression does: i = (i+1) % MAX_POINTS in the JPanel I know i will increment the tail point and one, but why need to take a rest of division in the body of snake, I have this doubt.

Thank you,

Freakjar.

salvin francis
Bartender
Posts: 1263
10
Fernando hiar wrote: I´ll put inside the variable i = tail of snake.

What value does 'i' hold ? I am not able to understand...

Fernando hiar
Greenhorn
Posts: 29
Fernando hiar wrote:I want to know, I have a game in java about the snake, I have snake with 40 Points and I put all points in a variable called MAX_POINT who is the body the snake and the tail I´ll put inside the variable i = tail of snake. I want to know What´s this expression does: i = (i+1) % MAX_POINTS in the JPanel I know i will increment the tail point and one, but why need to take a rest of division in the body of snake, I have this doubt.

Thank you,

Freakjar.

The value is an int, i´ll put a body snake inside of array e I have a variable tail and the head the rest is the body I´ll put a variable tail in i and I did the expression, I want to know what´s this expression does: i = (i+1) % MAX_POINTS, the max points is the body snake and i is the tail snake..... i want to know because I get the rest of division, but what´s behave in the JPanel this expression.

salvin francis
Bartender
Posts: 1263
10
lets take a simple example:

output

as you might understand, the i value increments itself... but when it crosses MAX_POINTS - 1, it returns to 0

a similar output is seen when changing the expression to:

output:

Raj kanthrm
Greenhorn
Posts: 1
Actually % symbol returns the remainder value. That is, if you put 5%2 means it will return 1. Because the quotient is 2 here and the remainder is 1.
Same way, if you put 2%5 means, you will get 2 as the answer. Because here the quotient is 0 & the remainder is 2. So your (i+1)%MAX_VALUE always return i+1 upto i=38. When i=39, the expression (i+1)%MAX_VALUE becomes (39+1)%40 which is equal to 0. Also when i=40, the result is 41%40=1

Thank you

Maneesh Godbole
Saloon Keeper
Posts: 11021
12
Raj AbigQuestion wrote: