Hi all,
I am a student CS at a Highschool in the Netherlands and I need some help;This is what it’s supposed to be but I can’t find the original code anymore
I’ve been trying to export this processing code from ‘processing’ to an SVG file so I can plot it with the axidraw. It just doesn’t work. I don’t exactly know why, and would like some help.
As of right now I can’t see the code if I press ‘play’ on processing but it does load the program. I need to open it in Inkscape, but I don’t know how and my teacher also doesn’t know how to do it. I hope someone can help.
This is the code:
//I coppied this code for school work, it is NOT mine it’s Yoruks
// Simple 2D Maze Creator
// by Yoruk, taken from on old QBasic code made by me
// Published on the Instructables website, June 2014
// send comments to yoruk16_72 at yahoo dot fr
//memory allocations
import processing.svg.*;
int M;
int N;
int X;
int Y;
int K;
int Dir;
int Ka;
int[][] L ; //the maze
boolean[][] pDR; //right walls
boolean[][] pDS; //down walls
boolean CaseTrouvee ;
boolean PasContreUnbord;
int Xdep ;
int Ydep ;
boolean Possibilite ;
boolean GenerationTerminee;
void setup() {
size(500, 500, SVG, "filename.svg"); //window size in pixels
M=30; //maze size : columns
N=30; //rows
pDR = new boolean[M+5][N+5];
pDS = new boolean[M+5][N+5];
L = new int[M+5][N+5];
for (int i = 1; i <= N; i = i+1) {
for (int j = 1; j <= M; j = j+1) {
pDR[j][i] = true ; //close every walls
pDS[j][i] = true;
}
}
X = 1;
Y = 1 ; //start coordinates. Don't touch !
Xdep = X;
Ydep = Y;
K = 1 ;
L[X][Y] = K;
GenerationTerminee=false;
while (GenerationTerminee==false) {
print("debut boucle X:");
print(X);
print(" Y:");
print(Y);
print(" K:");
println(K);
//exec ok
// ligne 5
//check if there is a possibility around the actual cell
Possibilite = false;
if (X < M ) {
if (L[X + 1][Y] == 0) {
Possibilite = true;
}
}
if (X > 1 ) {
if (L[X - 1][Y] == 0 ) {
Possibilite = true;
}
}
if (Y < N ) {
if (L[X][Y + 1] == 0) {
Possibilite = true;
}
}
if (Y > 1) {
if (L[X][Y - 1] == 0) {
Possibilite = true;
}
}
if (Possibilite==true) {
println("possibilite vraie");
CaseTrouvee = false;
while (CaseTrouvee == false) {
Dir = int(random(4))+1; //1 up 2 right 3 down 4 left
print("On tente direction : ");
println(Dir);
//check if the cell is visited or if it is near a boundary
switch (Dir) {
case 1:
if (L[X][ Y - 1] == 0 && Y !=1 ) {
pDS[X][Y - 1] = false; //open the wall
Y = Y - 1;
CaseTrouvee=true;
}
break;
case 2:
if (L[X + 1][ Y] == 0 && X !=M) {
pDR[X][Y] = false;
X = X + 1;
CaseTrouvee=true;
}
break;
case 3:
if (L[X][Y + 1] == 0 && Y !=N ) {
pDS[X][Y] = false;
Y = Y + 1;
CaseTrouvee=true;
}
break;
case 4:
if (L[X - 1][Y] == 0 && X !=1) {
pDR[X - 1][Y] = false;
X = X - 1;
CaseTrouvee=true;
}
break;
}
println("Cellule pas encore trouvee");
}
print("cellule ok:");
println(K);
K = K + 1 ;//cellule cible trouvée
L[X][Y] = K;
Ka = K;
print ("on est maintenant a x:");
print(X);
print (" y:");
println(Y);
}
else {
//no possibility :move backwards
Ka = Ka - 1;
println("recul");
for (int i = 1; i < N; i = i+1) {
//find previous cell
for (int j = 1; j < M; j = j+1) {
if (L[j][i] == Ka) {
X = i;
Y = j;
println("case precedente trouvee");
}
}
}
}
println("hit boucle");
if (X == Xdep && Y == Ydep) {
GenerationTerminee=true;
}
} //calculation done
background(255);
rectMode(CORNERS) ;
//maze drawing
noFill();
int tX = (width-5) / M;
int tY = (height-5) / N ;//compute the step size
if (tX > tY) {
tX = tY;
}
rect (0, 0, M * tX, N * tX) ; //draw boundary
for (int i = 1; i <= N; i = i+1) {
for (int j = 1; j <= M; j = j+1) {
if (pDS[j][i] == true)
{
line (j * tX, i * tX, j * tX - tX, i * tX) ;
}
if (pDR[j][i] == true)
{
line (j * tX, i * tX, j * tX, i * tX - tX);
}
}
}
noLoop(); // Run once and stop
}
//file end