Come creare labirinti senza percorsi con Java?
Eccoci a mettere in pratica le scorse lezioni:
Crea una matrice bistato o tristate cioè con 2 o 3 valori casuali. Crea la classe grafica che disegna una linea orizzontale verticale o diagonale a seconda dello stato nell’elemento ij esimo nella matrice…
ecco il codice:
Main:
package maze;
import javax.swing.*;
public class Maze {
public static void main(String[] args) {
JFrame t= new JFrame(“Maze”);
t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Tela p = new Tela();
t.add(p);
t.setSize(800, 1000);
t.setVisible(true);
}
}
package labirinto;
import javax.swing.*;
public class Labirinto {
public static void main(String[] args) {
JFrame t= new JFrame(“Labirinto”);
t.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Tela p = new Tela();
p.Riempire();
t.add(p);
t.setSize(800, 1000);
t.setVisible(true);
}
}
Oggetto file TELA:
package maze;
import java.awt.*;
import javax.swing.*;
public class Tela extends JPanel{
public int M[][]=new int [100][100];
public void paintComponent(Graphics g){
super.paintComponent(g);
this.setBackground(Color.WHITE);
g.setColor(Color.black);
// g.drawRect(10,10,700,700);
g.setColor(Color.black);
M=inizializzaMatriceRandom(M,4);
int x=0,y=0;
int px=10;
for(int i=0;i<100;i++)
{
for(int j=0;j<100;j++)
{
x=x+px;
if(M[i][j]==0)
{
g.drawLine(x, y, x, y+10);
//g.fillRect(10+20*j,10+20*i, 2, 20);
}
if(M[i][j]==1)
{
g.drawLine(x, y, x+10, y);
//g.fillRect(10+20*j,30+20*i, 20, 2);
}
if(M[i][j]==2)
{
g.drawLine(x, y, x+10, y+10);
// g.drawArc(x, y, 15, 15, 90, -90);
//g.fillRect(10+20*j,30+20*i, 20, 2);
}
if(M[i][j]==3)
{
g.drawLine(x, y+10, x+10, y);
// g.drawArc(x, y, 15, 15, 90, 90);
//g.fillRect(10+20*j,30+20*i, 20, 2);
}
}
x=0;
y=y+px;
}
}
public int[][] inizializzaMatriceRandom(int m[][],int numerostati)
{ for(int i=0;i<m.length;i++){
for(int j=0;j<m.length;j++){
m[i][j]=(int)(Math.random()*numerostati);
System.out.print(” “+ m[i][j]);
}
System.out.println();
}
return m;
}
}
ecco la versione javascript del codice