'STUDY/Java'에 해당되는 글 1건

  1. 마방진

마방진



마방진 슈도코드



	public void solMagicSquare() {
		rowInitial = 0;// x가 0
		columnInitial = squareSize / 2;// y가 중앙
		
		magicSquare = new int[squareSize][squareSize];
		resultMagicSquare = new int[squareSize][squareSize];
		
		// 마방진 초기위치 설정
		magicSquare[rowInitial][columnInitial] = 1;
		// 마방진 구하기
		for (int i = 2; i <= squareSize * squareSize; i++) {// 총 N x N개이므로 , 초기값은
															// 넣어 졌으므로 2부터
			// 먼저 이동
			rowInitial = rowInitial - 1;
			columnInitial = columnInitial - 1;
			// 이동후 조건 검색
			if (rowInitial < 0) { // 세로 음수
				if (columnInitial >= 0) { // 가로 정상 세로 음수일때 ( 윗쪽이탈 )
					// 세로축을 마방진 크기의 가장 아래쪽으로 이동
					rowInitial = squareSize - 1; // x = n-1
				} else { // 가로 음수 세로 음수 (왼쪽 윗쪽 이탈)
					rowInitial = rowInitial + 2;
					columnInitial = columnInitial + 1;
				}

			} else { // 세로 정상
				if (columnInitial < 0) {// 가로 음수
					// 가로축을 가장 오른쪽으로 이동
					columnInitial = squareSize - 1;
				} else {
					if (magicSquare[rowInitial][columnInitial] > 0) {// 이동하려는
																		// 위치에
						// 원래 위치의 바로 아래쪽으로 이동
						rowInitial = rowInitial + 1 + 1; // 원래 있던곳에서 아래로 한칸 이동
						columnInitial = columnInitial + 1;

					}
				}
			}
			magicSquare[rowInitial][columnInitial] = i;
			this.resultMagicSquare = magicSquare;
		}
	}






.