Search Your Question

Thursday, March 12, 2009

Game Apps

package gameapps;

/**
* @(#)TestProg.java
*
*
* @author
* @version 1.00 2009/3/6
*/

import java.util.*;

public class TestProg
{
int main_arr[][]=new int[3][3];
int con_arr[]=new int[9];
int combi_arr[][];
int counter=0;
Vector vec;

public TestProg()
{
// fillConArray();
// suffleConArray();
vec=new Vector();
fillMainArray();
}

public void printArray(int[][] main_arr)
{
counter++;
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
System.out.print (main_arr[i][j]+" ");
}
System.out.println ();
}
System.out.println ();
System.out.println (counter);
System.out.println ();
}

public void saveInVector(int[][] main_arr)
{
Vector _2d=new Vector();
for(int i=0;i<3;i++)
{
Vector _1d=new Vector();
for(int j=0;j<3;j++)
{
_1d.addElement(main_arr[i][j]);
}
_2d.addElement(_1d);
}

// System.out.println ();
vec.addElement(_2d);
// System.out.println ();System.out.println ();System.out.println ();
// for(int p=0;p<getVector().size();p++)
// {
// int[][] temp=(int[][]) getVector().get(p);
// for(int i=0;i<3;i++)
// {
// for(int j=0;j<3;j++)
// {
// System.out.print (temp[i][j]+" ");
// }
// System.out.println ();
// }
// System.out.println ("---------------------");
// }
}

public Vector getVector()
{
return vec;
}

public void mainWork()
{
int res[]=calculate();

int flag=0;
int count=0;
for (int i = 0; i<res.length; i++)
{
if(res[i]==15)
count++;
}

if(count==6)
flag=1;

if(flag==1)
{
// printArray(main_arr);
saveInVector(main_arr);
}

}

public int[] calculate()
{
int sum[]=new int[6];
for (int i = 0; i<3; i++)
{
sum[i]=horizontalSum(i);
}

for (int i = 0; i<3; i++)
{
sum[i+3]=verticalSum(i);
}

return sum;
}

public int horizontalSum(int row_num)
{
int sum=0;

for(int i=0;i<3;i++)
{
sum+=main_arr[row_num][i];
}

return sum;
}

public int verticalSum(int col_num)
{
int sum=0;

for(int i=0;i<3;i++)
{
sum+=main_arr[i][col_num];
}

return sum;
}

public int[][] fillMainArray()
{
int temp_arr[][]=getCombiConArray();
for(int i=0;i<temp_arr.length;i++)
{
int temp[]=new int[9];
for (int j = 0; j<9; j++)
{
temp[j]=temp_arr[i][j];
}

for(int j=0;j<temp.length;j++)
{
int k=j/3;
int l=j%3;
main_arr[k][l]=temp[j];
}

mainWork();
}

return main_arr;
}

public int[][] getCombiConArray()
{
int temp_arr[]=suffleConArray();
Set set=new TreeSet();
int x=0;

combi_arr=new int[getFactorial(9)][9];

for(int i=0;i<temp_arr.length;i++)
{
for(int j=0;j<temp_arr.length;j++)
{
if(i==j)
continue;
for (int k = 0; k<temp_arr.length; k++)
{
if(j==k || i==k)
continue;
for (int l = 0; l<temp_arr.length; l++)
{
if(i==l || j==l || k==l)
continue;
for (int m = 0; m<temp_arr.length; m++)
{
if(i==m || j==m || k==m || l==m)
continue;
for (int n = 0; n<temp_arr.length; n++)
{
if(i==n || j==n || k==n || l==n || m==n)
continue;
for(int o=0; o<temp_arr.length; o++)
{
if(i==o || j==o || k==o || l==o || m==o || n==o)
continue;

for (int p = 0; p<temp_arr.length; p++)
{
if(i==p || j==p || k==p || l==p || m==p || n==p || o==p)
continue;
for (int q = 0; q<temp_arr.length; q++)
{
if(i==q || j==q || k==q || l==q || m==q || n==q || o==q || p==q)
continue;
combi_arr[x][0]=temp_arr[i];
combi_arr[x][1]=temp_arr[j];
combi_arr[x][2]=temp_arr[k];
combi_arr[x][3]=temp_arr[l];
combi_arr[x][4]=temp_arr[m];
combi_arr[x][5]=temp_arr[n];
combi_arr[x][6]=temp_arr[o];
combi_arr[x][7]=temp_arr[p];
combi_arr[x][8]=temp_arr[q];
x++;
}
}
}
}
}
}
}
}
}

// System.out.println ("X= "+x);

return combi_arr;
}

public int[] suffleConArray()
{
Random rand = new Random();
int[] suf_arr = fillConArray();

int n = 7,temp=0;
for (int i=0;i<9;i++)
{
// Random integers that range from from 0 to n
int x = rand.nextInt(n+1);
temp = suf_arr[i];
suf_arr[i] = suf_arr[x];
suf_arr[x] = temp;
}

// for(int i=0;i<9;i++)
// {
// System.out.println(suf_arr[i]);
// }

return suf_arr;
}

public int[] fillConArray()
{
for(int i=1;i<=9;i++)
con_arr[i-1]=i;

return con_arr;
}

public int getFactorial(int num)
{
int fact=0;
if(num==1)
return 1;
else
{
fact=num*getFactorial(num-1);

return fact;
}
}

// public static void main (String[] args)
// {
// TestProg test=new TestProg();
//
///* for(int i=0;i<test.fillConArray().length;i++)
// System.out.print (test.fillConArray()[i]);
// System.out.println();
//
// System.out.println("Factorial: "+test.getFactorial(9));
//
// test.fillMainArray();*/
// }
}