Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class Aufgabe2 {
- public static void main (String[] args) {
- int N = Integer.parseInt(args[0]); //Größe des Feldes
- int T = Integer.parseInt(args[1]); //Versuche
- int Z = Integer.parseInt(args[3]);
- int deadEnds = 0;
- for(int i = 0; i < Z; i++) {
- for(int t=0; t < T; t++) {
- boolean[] [] a = new boolean[N][N];
- int x=N/2, y=N/2; //Startposition
- while(x>0 && x<N-1 && y>0 && y<N-1) {
- a[x][y] = true; //falls ..
- if(a[x-1][y] && a[x+1][y] && a[x][y-1] && a[x][y+1]) //..alle Nachbarn schon
- { deadEnds++; break; } //..besucht, dann Sackgasse..
- //..gefunden, while sofort verlassen
- //sonst:
- double r= Math.random(); //zufellig einen freien Nachbarn..
- if (r<0.25) {if(!a[x+1][y]) x++;} //..im Osten..
- else if(r<0.5 ) {if(!a[x-1][y]) x--;} //..Westen..
- else if(r<0.75) {if(!a[x][y+1]) y++;} //..Norden oder..
- else if(r<1 ) {if(!a[x][y-1]) y--;} //..Sueden besuchen..
- }
- }
- System.out.println(100.*deadEnds/T + "% Sackgasse");
- }
- System.out.println((100.*deadEnds/T)/Z);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement