ぐるぐる回る
2354 ワード
public class Test
{
/**
* @param args
*/
public Test(int size)
{
if (size > 0)
{
iSize = size;
for (int i = 0; i < size; i++)
{
List<Integer> tmp = new ArrayList<Integer>();
arr.add(tmp);
for (int j = 0; j < size; j++)
{
tmp.add(1);
}
}
rotate();
}
}
public void print()
{
for (int i= 0; i <iSize; i ++)
{
List<Integer> tmp = arr.get(i);
for (int j = 0; j < iSize ; j++)
{
System.out.print(format(tmp.get(j)));
}
System.out.println();
}
}
private String format(Integer i)
{
String sSize = iSize * iSize + " ";
int whiteSpace = sSize.length() - i.toString().length();
String sResult = i.toString();
for (int j=0; j < whiteSpace ; j++)
{
sResult += " ";
}
return sResult;
}
public static void main(String[] args) throws Exception
{
//URL url = new URL("file:D:/view1.txt");
//System.out.println(url.getPath());
Test t = new Test(9);
t.print();
}
private void addCol(int iCount, int flag)
{
List<Integer> tmp = arr.get(iRow);
for (int i = 0; i < iCount ; i++)
{
iCol = iCol + 1*flag;
tmp.set(iCol, ++iTick);
}
}
private void addRow(int iCount, int flag)
{
for (int i =0; i < iCount; i++)
{
iRow = iRow + 1*flag;
List<Integer> tmp = arr.get(iRow);
tmp.set(iCol, ++iTick);
}
}
private void rotate()
{
int flag = 1;
addCol((iSize - 1), flag);
for (int i = (iSize - 1) ; i > 0 ; i--)
{
addRow(i, flag);
flag = flag * (-1);
addCol(i, flag);
}
}
private int iTick = 1;
private int iRow = 0;
private int iCol = 0;
private int iSize = 0;
private List<List<Integer>> arr = new ArrayList<List<Integer>>();
}