Subha
Posts: 16
Nickname: nikki
Registered: Sep, 2003
|
|
Re: LinkedList
|
Posted: Oct 5, 2003 1:06 PM
|
|
Hi, I am able to run my program to get the results i want.but i have a problem with the delay statement i think.I am not able to set it right.It would be really grateful if you can help me out with that.I am sending my program again. Thanks a ton!
import java.io.*;
import java.net.*;
import java.util.*;
import java.lang.*;
class uavmaze1
{
public static void main(String args[])
{
System.out.println("UAVs Starts to move");
int i=1, delayCount;
int initCount = 0;
while (i!=6)
{
if(i==1) {
System.out.println("I # " + i);
ThreadHandler thread = new ThreadHandler(i,initCount);
thread.start();
}
else
{
initCount++;
System.out.println("I # " + i);
ThreadHandler thread = new ThreadHandler(i,initCount);
thread.start();
}
for(delayCount=0;delayCount<=190;delayCount++)
{
delayCount = delayCount++;
}
//increment i to label the next connection
i++;
}
}
}
//define the thread class for handling new connection
class ThreadHandler extends Thread
{
public int number; //label for the connection
public LinkedList[][] uavArray;
public int row, col;
private int index,jndex;
OutputStreamWriter out;
private int initCount;
public int globalTime;
public int a;
public int siz;
public ThreadHandler(int id, int indexCount)
{
number = id;
initCount = indexCount;
row = 1;
col = 1;
}
public void newInit()
{
//Declare and initialize the array
uavArray = new LinkedList[11][11];
for(index=1;index<=10;index++)
for(jndex=1;jndex<=10;jndex++)
{
uavArray[index][jndex] = new LinkedList();
uavArray[index][jndex].addFirst(new Integer(0));
}
index =0;
//All points start from coordinate (1,1)
globalTime = 1;
//open a file and its handle for updation
try {
FileOutputStream fout = new FileOutputStream("uavFile.txt");
OutputStreamWriter out = new OutputStreamWriter(fout, "8859_1");
}
catch (IOException e) {
System.err.println(e);
}
}
public void UAVCoordinates(int number, int posRandom)
{
//Generate Random number between 1 And 8
System.out.println("Inside UAV # " + number);
globalTime++;
switch (posRandom) {
case 1:
//Decrease both row and col -- NW
if(row==1)
row=10;
else
row = row - 1;
if(col==1)
col=10;
else
col = col - 1;
//System.out.println("UAV : " + number + " NW - Row :" + row + " Col: " + col + "\n");
siz = (uavArray[row][col].size());
a = ((Integer)(uavArray[row][col].get(siz-1))).intValue();
uavArray[row][col].addLast(new Integer(globalTime - a));
break;
case 2:
//Decrease row -- North
if(row==1)
row=10;
else
{
row = row - 1;
col = col;
}
//System.out.println("UAV : " + number + " N - Row :" + row + " Col: " + col + "\n");
siz = (uavArray[row][col].size());
a = ((Integer)(uavArray[row][col].get(siz-1))).intValue();
uavArray[row][col].addLast(new Integer(globalTime - a));
break;
case 3:
//Decrease row and Increase col - NE
if(row==1)
row=10;
else
row = row - 1;
if(col==10)
col = 1;
else
col = col + 1;
//System.out.println("UAV : " + number + " NE - Row :" + row + " Col: " + col + "\n");
siz = (uavArray[row][col].size());
a = ((Integer)(uavArray[row][col].get(siz-1))).intValue();
uavArray[row][col].addLast(new Integer(globalTime - a));
break;
case 4:
//Increase col - East
if(col==10)
col = 1;
else
col = col + 1;
//System.out.println("UAV : " + number + " E - Row :" + row + " Col: " + col + "\n");
siz = (uavArray[row][col].size());
a = ((Integer)(uavArray[row][col].get(siz-1))).intValue();
uavArray[row][col].addLast(new Integer(globalTime - a));
break;
case 5:
//Increase Row And Col -- SE
if(col==10)
col = 1;
else
col = col + 1;
if(row==10)
row = 1;
else
row = row + 1;
//System.out.println("UAV : " + number + " SE - Row :" + row + " Col: " + col + "\n");
siz = (uavArray[row][col].size());
a = ((Integer)(uavArray[row][col].get(siz-1))).intValue();
uavArray[row][col].addLast(new Integer(globalTime - a));
break;
case 6:
// Increase row -- South
if(row==10)
row = 1;
else
row = row + 1;
//System.out.println("UAV : " + number + " S - Row :" + row + " Col: " + col + "\n");
siz = (uavArray[row][col].size());
a = ((Integer)(uavArray[row][col].get(siz-1))).intValue();
uavArray[row][col].addLast(new Integer(globalTime - a));
break;
case 7:
//Increase row and Decrease Col -- SW
if(row==10)
row=1;
else
row = row + 1;
if(col==1)
col=10;
else
col = col - 1;
//System.out.println("UAV : " + number + " SW - Row :" + row + " Col: " + col + "\n");
siz = (uavArray[row][col].size());
a = ((Integer)(uavArray[row][col].get(siz-1))).intValue();
uavArray[row][col].addLast(new Integer(globalTime - a));
break;
case 8:
//Decrease col -- W
if(col==1)
col=10;
else
col = col + 1;
//System.out.println("UAV : " + number + " W - Row :" + row + " Col: " + col + "\n");
siz = (uavArray[row][col].size());
a = ((Integer)(uavArray[row][col].get(siz-1))).intValue();
uavArray[row][col].addLast(new Integer(globalTime - a));
break;
default:
}
}
public void run()
{
int inCount=0,i,j,k;
while(inCount!=1000)
{
if(initCount==0)
{
initCount=1;
newInit();
}
//System.out.println("Inside RUN # " + number);
Random generator = new Random();
int posRandom = generator.nextInt(7) + 1;
UAVCoordinates(number,posRandom);
inCount++;
}
System.out.println("\n\n");
System.out.println("*******************************************************");
for(i=1;i<=10;i++)
for(j=1;j<=10;j++)
System.out.println("No of visits to location ( " + i + "," + j + ") >> " + uavArray[i][j] + "\n");
} //run closes
} //class threadhandler closed
|
|