aboutsummaryrefslogtreecommitdiff
path: root/structure/Grid.java
blob: 042d41c5815cc5db49247eefa8cdc3f671f26179 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
package structure;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Random;

import javafx.util.Pair;

public class Grid {

	
	
	private ArrayList<Router> grid=new ArrayList<>();
	private ArrayList<ArrayList<Integer>> links=new ArrayList<>();
	
	private Random rand = new Random();
	
	/**
	 * Build a 3x3 Grid
	 */
	public Grid(){
			
		// Build Grid
		for(int i=0;i<9;i++){
			this.grid.add(new Router());
		}
		
		// First line
		this.buildLinkWithRandomWeight(grid.get(0), grid.get(1));
		this.buildLinkWithRandomWeight(grid.get(1), grid.get(2));

		// Second line
		this.buildLinkWithRandomWeight(grid.get(3), grid.get(4));
		this.buildLinkWithRandomWeight(grid.get(4), grid.get(5));
		
		// Third line
		this.buildLinkWithRandomWeight(grid.get(6), grid.get(7));
		this.buildLinkWithRandomWeight(grid.get(7), grid.get(8));
		
		// First column
		this.buildLinkWithRandomWeight(grid.get(0), grid.get(3));
		this.buildLinkWithRandomWeight(grid.get(3), grid.get(6));
		
		// Second column
		this.buildLinkWithRandomWeight(grid.get(1), grid.get(4));
		this.buildLinkWithRandomWeight(grid.get(4), grid.get(7));
		
		// Third column
		this.buildLinkWithRandomWeight(grid.get(2), grid.get(5));
		this.buildLinkWithRandomWeight(grid.get(5), grid.get(8));

	}
	
	
	private void buildLinks(){
		
		// Link1
		ArrayList<Integer> link1=new ArrayList<>();
		link1.add(0);link1.add(1);link1.add(2);link1.add(5);link1.add(4);link1.add(3);link1.add(6);link1.add(7);link1.add(8);
		this.links.add(link1);
		
		// Link2
		ArrayList<Integer> link2=new ArrayList<>();
		link2.add(0);link2.add(1);link2.add(2);link2.add(5);link2.add(4);link2.add(7);link2.add(8);
		this.links.add(link2);
		
		// link3
		ArrayList<Integer> link3=new ArrayList<>();
		link3.add(0);link3.add(1);link3.add(2);link3.add(5);link3.add(8);
		this.links.add(link3);
		
		// link4
		ArrayList<Integer> link4=new ArrayList<>();
		link4.add(0);link4.add(1);link4.add(4);link4.add(5);link4.add(8);
		this.links.add(link4);
		
		// link5
		ArrayList<Integer> link5=new ArrayList<>();
		link5.add(0);link5.add(3);link5.add(4);link5.add(5);link5.add(8);
		this.links.add(link5);
		
		// link6
		ArrayList<Integer> link6=new ArrayList<>();
		link6.add(0);link6.add(3);link6.add(4);link6.add(7);link6.add(8);
		this.links.add(link6);
		
		// link7
		ArrayList<Integer> link7=new ArrayList<>();
		link7.add(0);link7.add(3);link7.add(6);link7.add(7);link7.add(8);
		this.links.add(link7);
		
		// link8
		ArrayList<Integer> link8=new ArrayList<>();
		link8.add(0);link8.add(3);link8.add(6);link8.add(7);link8.add(4);link8.add(5);link8.add(8);
		this.links.add(link8);
		
		// link9
		ArrayList<Integer> link9=new ArrayList<>();
		link9.add(0);link9.add(3);link9.add(6);link9.add(7);link9.add(4);link9.add(1);link9.add(2);link9.add(5);link9.add(8);
		this.links.add(link9);
		
		// link10
		ArrayList<Integer> link10=new ArrayList<>();
		link10.add(0);link10.add(3);link10.add(4);link10.add(1);link10.add(2);link10.add(5);link10.add(8);
		this.links.add(link10);
		
		// link11
		ArrayList<Integer> link11=new ArrayList<>();
		link11.add(0);link11.add(1);link11.add(4);link11.add(3);link11.add(6);link11.add(7);link11.add(8);
		this.links.add(link11);
	}
	
	
	private void buildLinkWithRandomWeight(Router router1, Router router2){
		router1.buildLink(router2, rand.nextInt(50));
	}
	
	
	

	
	
}