[TIL] 배열 연습문제 (오목 만들기)
1) 다음 세 개의 단계를 순차적으로 작성하시오.
1-1. 문자(char) 100개짜리 문자 배열 객체를 생성하시오. 객체 이름은 board로 한다.
1-2. 1-1번 문제에서 생성한 board 배열에 문자 '┼'를 모두 채우시오.(단. 반복할 때 <<이중 for문>>을 사용할 것)
1-3 board 배열을 다음처럼 출력하시오.
┼┼┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼┼┼
public class arrayTestProgram {
public static void main(String[] args) {
{
System.out.println("--<1번 문제 풀이>----------------------");
// 1-1 답안을 작성하시오.
char[] board = new char[100];
// 1-2 답안을 작성하시오.
for (int y = 0; y < 10; y++)
for (int x = 0; x < 10; x++)
board[10 * y + x] = '┼';
// 1-3 답안을 작성하시오.
for (int y = 0; y < 10; y++) {
for (int x = 0; x < 10; x++)
System.out.printf("%c", board[x]);
System.out.println();
}
System.out.println();
}
2) board 배열을 <<"2차원 배열">>로 변경하고, 1번 문제와 동일한 단계의 코드를 작성하시오.
2-1. 문자(char) 100개를 저장할 수 있는 문자 <<이차원 배열>> 객체를 생성하시오. 객체 이름은 board로 한다.
2-2. 2-1번 문제에서 생성한 board 배열에 문자 '┼'를 모두 채우시오.(단. for문은 두개를 사용할 것)
2-3 board 배열을 다음처럼 출력하시오.
┼┼┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼┼┼
┼┼┼┼┼┼┼┼┼┼
{
System.out.println("--<2번 문제 풀이>----------------------");
// 2-1 문제를 풀이하시오.
char[][] board = new char[10][10];
// 2-2 문제를 풀이하시오.
for (int y = 0; y < 10; y++)
for (int x = 0; x < 10; x++)
board[y][x] = '┼';
// 2-3 문제를 풀이하시오.
for (int y = 0; y < 10; y++) {
for (int x = 0; x < 10; x++)
System.out.printf("%c", board[y][x]);
System.out.println();
}
System.out.println();
}
- 2번 문제에서 풀이한 코드를 복사해서 다음처럼 boar의 테두리를 보강하는 코드로 수정하시오.
(주의. 단계별로 코드를 작성한다. 그리고 board 배열의 크기를 10x10 에서 12x12 크기로 변경할 것)
┌┬┬┬┬┬┬┬┬┬┬┐ <- 테두리
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
└┴┴┴┴┴┴┴┴┴┴┘ <- 테두리
{
System.out.println("--<3번 문제 풀이>----------------------");
int width = 12;
int height = 12;
// 3-1 문자형 배열을 12x12 크기의 이차 배열 객체를 작성하시오. 이름은 board로 한다.
char[][] board = new char[height][width];
// 3-2 board 배열을 모두 '┼'로 채우시오.
for (int y = 0; y < height; y++)
for (int x = 0; x < width; x++)
board[y][x] = '┼';
// 3-3 상단/하단/좌측/우측 테두리를 채우는 코드
for(int i=0; i<12; i++) {
board[0][i] = '┬';
board[11][i] = '┴';
board[i][0] = '├';
board[i][11] = '┤';
}
// 3-4 각 꼭지점을 채우는 코드
board[0][0] = '┌';
board[0][11] = '┐';
board[11][0] = '└';
board[11][11] = '┘';
// 3-5 board 이차 배열을 출력하시오.
for(int y=0; y<12; y++) {
for(int x=0; x<12; x++)
System.out.printf("%c", board[y][x]);
System.out.println();
}
}
4-1 다음처럼 오목판을 출력한다.
┌┬┬┬┬┬┬┬┬┬┬┐
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
└┴┴┴┴┴┴┴┴┴┴┘
4-2 다음처럼 오목을 입력 받는다.
위의 오목판에 오목을 두기 위한 위치를 입력하세요. 입력 방법: x sp y >
4-3 다음처럼 오목을 포함한 오목판을 출력한다.
┌┬┬┬┬┬┬┬┬┬┬┐
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼○┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
├┼┼┼┼┼┼┼┼┼┼┤
└┴┴┴┴┴┴┴┴┴┴┘
{
System.out.println("--<4번 문제 풀이>----------------------");
Scanner scan = new Scanner(System.in);
int x_ = scan.nextInt();
int y_ = scan.nextInt();
int width = 12;
int height = 12;
char[][] board = new char[height][width];
for (int y = 0; y < height; y++)
for (int x = 0; x < width; x++)
if(x==x_ && y==y_)
board[y][x]='○';
else
board[y][x] = '┼';
for(int i=0; i<12; i++) {
board[0][i] = '┬';
board[11][i] = '┴';
board[i][0] = '├';
board[i][11] = '┤';
}
board[0][0] = '┌';
board[0][11] = '┐';
board[11][0] = '└';
board[11][11] = '┘';
for(int y=0; y<12; y++) {
for(int x=0; x<12; x++)
System.out.printf("%c", board[y][x]);
System.out.println();
}
}
System.out.println();
- 4번 문제에서 풀이한 코드를 복사해서 할 수 있는 만큼 오목게임을 만들어보시오.
{ System.out.println("--<5번 문제 풀이>----------------------");
int width = 12;
int height = 12;
// 3-1 문자형 배열을 12x12 크기의 이차 배열 객체를 작성하시오. 이름은 board로 한다.
char[][] board = new char[height][width];
// 3-2 board 배열을 모두 '┼'로 채우시오.
for (int y = 0; y < height; y++)
for (int x = 0; x < width; x++)
board[y][x] = '┼';
// 3-3 상단/하단/좌측/우측 테두리를 채우는 코드
for(int i=0; i<12; i++) {
board[0][i] = '┬';
board[11][i] = '┴';
board[i][0] = '├';
board[i][11] = '┤';
}
// 3-4 각 꼭지점을 채우는 코드
board[0][0] = '┌';
board[0][11] = '┐';
board[11][0] = '└';
board[11][11] = '┘';
System.out.print("바둑돌의 위치 : ");
boolean black = true ;
while(true) {
Scanner scan = new Scanner(System.in);
int x_ = scan.nextInt();
int y_ = scan.nextInt();
for(int y=0; y<height; y++)
for(int x=0; x<width; x++)
if(x==x_ && y==y_)
if(black) {
board[y][x]='●';
} else {
board[y][x]='○';
}
for(int y=0; y<height; y++) {
for(int x=0; x<width; x++)
System.out.printf("%c", board[y][x]);
System.out.println();
}
black = !black;
}
}
}
}
Author And Source
이 문제에 관하여([TIL] 배열 연습문제 (오목 만들기)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@psh94/TIL-배열-연습문제1-일차원배열저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)