int min = Integer.MIN_VALUE; int max = Integer.MAX_VALUE;
 
   
            int min = Integer.MIN_VALUE; int max = Integer.MAX_VALUE;
(int) (hueShift * plasma[y][x]%1)
public void drawPlasma() {
    GreenfootImage gfim = new GreenfootImage(getWidth(), getHeight());
    for (int y = 0; y < plasma.length; y++)
        for (int x = 0; x < plasma[y].length; x++) {
            int hue = (int) (hueShift * plasma[y][x] % 1);
            Color red = new Color(hue, 0, 0);
            Color green = new Color(0, hue, 0);
            Color blue = new Color(0, 0, hue);
            if (hue > 170 background.setColorAt(x, y, red);
            else if (hue > 85) background.setColorAt(x, y, green);
            else background.setColorAt(x, y, blue);
        }
    }
    gfim.drawImage(background, 0, 0);
    setBackground(gfim);
}
import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)
/**
 * @author rosettacode, Spock47
 */
public class PlasmaWorld extends World
{
    
    private float[][] plasma;
    
    private float hueShift = 0;
    public PlasmaWorld() {
        super(600, 400, 1); 
        plasma = createPlasma(getWidth(), getHeight());
    }
    
    private float[][] createPlasma(int w, int h) {
        float[][] buffer = new float[h][w];
        for (int y = 0; y < h; y++)
            for (int x = 0; x < w; x++) {
                double value = Math.sin(x / 16.0);
                value += Math.sin(y / 8.0);
                value += Math.sin((x + y) / 16.0);
                value += Math.sin(Math.sqrt(x * x + y * y) / 8.0);
                value += 4; // shift range from -4 .. 4 to 0 .. 8
                value /= 8; // bring range down to 0 .. 1
                // requires VM option -ea
                assert (value >= 0.0 && value <= 1.0) : "Hue value out of bounds";
                buffer[y][x] = (float) value;
            }
        return buffer;
    }
    
    @Override
    public void act() {
        hueShift = (hueShift + 0.01f) % 1;
        drawPlasma();
    }
    
    private void drawPlasma() {
        final var image = getBackground();
        for (int y = 0; y < getHeight(); y++) {
            for (int x = 0; x < getWidth(); x++) {
                float hue = (hueShift + plasma[y][x]) % 1;
                image.setColorAt(x, y, getColor(hue));
            }
        }
    }
    
    private Color getColor(final float hue) {
        final var awtColor = new java.awt.Color(java.awt.Color.HSBtoRGB(hue, 1, 1));
        return new Color(awtColor.getRed(), awtColor.getGreen(), awtColor.getBlue());
    }
    
}