Removing class from code

Hello,

I wrote this code a while ago. Now I need to get the methods loose and get the class out of the code, How do I do this?

Thank you!

int speelveldPosX, speelveldPosY;
int speelveldSizeX, speelveldSizeY;
int vakSize;
int gatSize;
int speelveldWidth, speelveldHeight;
Vakje[][] vakjes;
int vakjesOver;
boolean lost, win;
int inhoudspeelveldvakjes;

//maakt speelscherm aan
void speelSchermStart() {
  speelveld = new int[aantalSpeelvak * aantalSpeelvak];
  spelerAanDeBeurt = 0;
  spelPauze = 0;
  aantalGevondenSchatten = 0;
  aantalBommen = aantalSpeelvak;
  speelveldSizeX = aantalSpeelvak;
  speelveldSizeY = aantalSpeelvak;
  vakSize = schermSchaal/3;
  gatSize = 2;
  
  lost = false;
  win = false;

  speelveldWidth = speelveldSizeX * (vakSize + gatSize) - gatSize;
  speelveldHeight = speelveldSizeY * (vakSize + gatSize) - gatSize;

    for(int i = 0; i < aantalObjecten; i++) {
    speelveld[i] = i < aantalSchatten ? 1 : i < aantalSchatten + aantalDepots ? 2 : 3;
    println(speelveld[i]);
  }
  shuffleVakjes();
  maakVakjes();
}

//shuffeled alle objecten
void shuffleVakjes() {
  int i, j, n;
  for (i = speelveld.length - 1; i > 0; i--) {
        j = floor(random(i + 1));
        n = speelveld[i];
        speelveld[i] = speelveld[j];
        speelveld[j] = n;
  }
}

//voegt de objecten toe aan het speelscherm
void speelSchermMaken() {
  for(int y = 0; y < speelveldSizeY; y++) {
   for(int x = 0; x < speelveldSizeX; x++) {
     vakjes[x][y].show();
     inhoudspeelveldvakjes = speelveld[x + y * aantalSpeelvak];
     vakjesOver = (speelveldSizeX * speelveldSizeY) - aantalObjecten;
    if (inhoudspeelveldvakjes == 1) {
     vakjes[x][y].plantSchatten();
      } else if (inhoudspeelveldvakjes == 2) {
        vakjes[x][y].plantDepots();
      } else if (inhoudspeelveldvakjes == 3) {
        vakjes[x][y].plantKoning();
      } else if (inhoudspeelveldvakjes == 0) {
        vakjes[x][y].plantLeeg();
      }
  }
 }
  if (lost || win) {
    speelSchermRunning = false;
  }
}

// geeft het aangeklikte vakje weer
void weergeven(int x, int y) {
  if (x < 0 || y < 0 || x >= speelveldSizeX || y >= speelveldSizeY) {
    return;
  }
  if (vakjes[x][y].isClicked()) {
    return;
  }
  
  vakjes[x][y].reveal();
  
  if(vakjes[x][y].getValue() == 1 || aantalBommen == 0) {
    lost = true;
  } else if (vakjes[x][y].getValue() == 2) {
    aantalGevondenSchatten++;
    vakjesOver--;
  } else if (vakjes[x][y].getValue() == 3) {
    aantalBommen = aantalBommen + 2;
    vakjesOver--;
  } else {
    aantalBommen--;
    vakjesOver--;
    if (vakjesOver == 0) {
      win = true;
    }
  }
}

//maakt de vakjes op het speelscherm
void maakVakjes() {
  vakjes = new Vakje[speelveldSizeX][speelveldSizeY];

  speelveldPosX = (int)(width / 2 - speelveldWidth / 2.0);
  speelveldPosY = (int)(height / 2 - speelveldHeight / 2.0);
  int x = speelveldPosX;
  int y = speelveldPosY;

  for (int j = 0; j < speelveldSizeY; j++) {
    for (int i = 0; i < speelveldSizeX; i++) {
      vakjes[i][j] = new Vakje(x, y, vakSize, vakSize);
      x += vakSize + gatSize;
    }
    x = speelveldPosX;
    y += vakSize + gatSize;
  }
}

class Vakje {
  private int x, y, breedte, hoogte;
  private int value;
  private boolean geklikt;

  Vakje (int x, int y, int w, int h) {
    this.x = x;
    this.y = y;
    breedte = w;
    hoogte = h;
    value = 0;
    geklikt = false;
  }
//tekent de vakjes
  void show() {
    noStroke();

    if (geklikt) {
      if (value == 1) {
        fill(kleurKoning); // 1 = de koning
        rect(x, y, breedte, hoogte);
        fill(200);
        textAlign(CENTER);
        textSize(hoogte * 0.9);
        text("K", x + breedte / 2, y + (hoogte / 2) + (0.73 * textAscent() / 2));
      } else if (value == 2){ // 2 =  schat
        fill(kleurSchat);
        rect(x, y, breedte, hoogte);
        fill(200);
        textAlign(CENTER);
        textSize(hoogte * 0.9);
        text("S", x + breedte / 2, y + (hoogte / 2) + (0.73 * textAscent() / 2));
      } else if (value == 3) { // 3 = bommendepots
        fill(kleurDepot);
        rect(x, y, breedte, hoogte);
        fill(200);
        textAlign(CENTER);
        textSize(hoogte * 0.9);
        text("D", x + breedte / 2, y + (hoogte / 2) + (0.73 * textAscent() / 2));
      } else if (value == 0) {
        fill(kleurLeegvak); // leeg vakje
        rect(x, y, breedte, hoogte);
      } 
    } else {
      fill(120);
      rect(x, y, breedte, hoogte);
      //fill(#0000CD);
      //rect(735, y, breedte, hoogte);
    }
  }
  
  boolean isClicked() {
    return geklikt;
  }
  
  void reveal() {
    geklikt = true;
  }
  
  int getValue() {
    return value;
  }
  
  void plantKoning() {
    value = 1;
  }
  
  void plantSchatten() {
    value = 2;
  }
  
  void plantDepots() {
    value = 3;
  }
  void plantLeeg() {
    value = 0;
  }
}

Why would you? It would make your Sketch so much worse…

I know right, but i can’t use classes in this assignment, thats a requirement. now I have to write without it, but I’m stuck with that.

I see.

You have one class: Vakje

It’s used in a 2D array : Vakje[][] vakjes;

The grid has in each cell an object based on the class.

Class is a container for many variables.

So you can make many grids, for each variable from the class one grid

int[][] vakjesX ;
int[][] vakjesY ;
int[][] vakjesbreedte ;
int[][] vakjeshoogte ;

etc.

the data for one CELL are now distributed over these grids.

Example

Let’s look at

//tekent de vakjes
  void show() {
    noStroke();

would be

//tekent de vakjes
  void show(int a, int b) {
    noStroke();

This line :

would become:

text("K", vakjesX[a][b] + vakjesbreedte[a][b] / 2, y + (vakjeshoogte[a][b] / 2) + (0.73 * textAscent() / 2));

When a and b are your grids indexes