Jeu de société Java


Fondamentalement, je crée un jeu de société en java et j'ai réussi à créer des cellules, en utilisant des tableaux, pour ressembler à une grille 10x10. Maintenant, je les ai numérotés, ils vont de gauche à droite de haut en bas (comme photo)
Je crée un jeu similaire à un jeu de serpents et échelles mais ayant sa propre torsion.

La question est: Comment créer une planche en zigzag similaire à une planche snakes & ladder?

Voilà à quoi il ressemble actuellement: entrez la description de l'image ici

Le code ci-dessous est de ce qui est nécessaire pour créer des tableaux et imprimez - les et numérotez-les.


Objet nommé Jeu:

private Cell[][] cell =  new Cell[10][10];

public Game(String nameIt)
{
     super(nameIt);
     JPanel x = new JPanel(); 

 x.setLayout(new GridLayout(10, 10, 2, 2)); 
 for (int r = 0; ir< 10; r++) 
  for (int c= 0; c < 10; c++) 

  x.add(cell[r][c] = new Cell(r, c, this));

}

Objet nommé cellule:

private int row;
private int col;
private int cellNum;
static int count = 0;


public Cell(int row, int column, Game guy) 
{

    this.ro = row;
    this.col = column;
    this.parent = guy;

    count = count+1;
    cellNum = count;

    setBorder(new LineBorder(Color.BLUE, 1));   // Set cell's border
}

protected void paintComponent(Graphics p) 
{
    super.paintComponent(p);

    p.drawString(String.valueOf(" " + cellNo), 24, 24);

}
Author: YouSof, 2014-01-25

1 answers

Ok donc je n'écrirai pas le code exact pour vous, mais je vais vous montrer un exemple de la façon de le faire avec un tableau 2D régulier. Je n'ai qu'un compilateur C++ disponibles actuellement, mais il devrait être assez clair:

Donc, fondamentalement, vous devez parcourir les lignes de la fin au début . C'est pourquoi la première boucle extérieure que vous passez de 9 à 0. Cela commencera à la rangée du bas et se terminera à la rangée du haut, inversant ainsi.

for (int i = 9; i >= 0; i--) {

    // now the trick to making a "zig-zag" is to alternate between two ways
    // of printing out each row. if i is even, you print out from right to left

    if (i % 2)
        for (int j = 9; j >= 0; j--)
            cout << numbers[i][j] << "\t";

    // and if i is odd, you print it out from left to right
    else
        for (int j = 0; j < 10; j++)
            cout << numbers[i][j] << "\t";

    cout << endl;

}

Résultat: entrez la description de l'image ici

 5
Author: Oleksiy, 2014-01-24 22:15:22