Un labirinto nella vostra mente?…coding e grafica.

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

https://js.do/mpalladino/labirinto

Comments

comments

One thought on “Un labirinto nella vostra mente?…coding e grafica.”

  1. Your browser does not support the HTML5 canvas tag.

    var c = document.getElementById(“myCanvas”);
    var ctx = c.getContext(“2d”);
    var n=250;

    var matrix = [];
    for(var i=0; i<n; i++) {
    matrix[i] = [];
    for(var j=0; j<n; j++) {
    matrix[i][j] = Math.floor(Math.random() * 2);
    document.getElementById("demo").innerHTML=matrix[i][j] ;
    }
    }

    for(var i=0;i<n;i++){
    for(var j=0;j<n;j++){if(matrix[i][j]==0){ctx.fillRect(10+20*j,10+20*i,2, 20);ctx.stroke();}
    else{ctx.fillRect(10+20*j,30+20*i,20, 2);ctx.stroke();}}
    }

Leave a Reply

Your email address will not be published.