Module 06 배열
오늘의 시작 문제!! - Algorithm.java 작성하기(Algorithm.java + Adder.java + Multiplier.java)
public class Algorithm {
// static final int addFrom1to10 = 55;
public static int addFrom1to10() {
int sum = 0;
for(int i = 0; i <= 10; i++) {
sum += i;
}
return sum;
}
public static int sigma(int start, int end, int step) {
return accumulate(new Adder(), 0, start, end, step);
}
public static int pi(int start, int end, int step) {
return accumulate(new Multiplier(), 1, start, end, step);
}
public static int accumulate(Adder binder, int init, int start, int end, int step) {
int result = init;
for(int i = start; i <= end; i+=step) {
result = binder.apply(result, i);
}
return result;
}
public static int accumulate(Multiplier binder, int init, int start, int end, int step) {
int result = init;
for(int i = start; i <= end; i += step) {
result = binder.times(result, i);
}
return result;
}
public static void main(String[] args) {
System.out.println(addFrom1to10());
System.out.println(sigma(1, 10, 1));
System.out.println(pi(1, 10, 1));
}
}


2차원 배열 => type[][]
3차원 배열 => type[][][]
index는 0부터 시작한다***
배열은 3가지 방법으로 생성 가능 O
배열 생성 시,
1. new 키워드를 사용하여 배열 인스턴스를 생성
2. 배열 인스턴스를 생성할 때 모든 차원의 배열 크기를 지정
3. Java 컴파일러는 암시적으로 각 배열 요소를 배열 요소 유형에 따라 기본값으로 초기화
Java의 배열 = 배열의 크기를 표시하는 length 만 가짐
length = 읽기 전용 정수값, 배열에 포함된 요소의 크기
다차원 배열 in Java = 부모 배열이 자식 배열을 포함하고 있는 형태
= 배열의 length 값은 배열에 “포함된” 요소의 수를 나타냄
foreach 문 : 배열 처리를 위한 상세 작업을 추상화 함



























// Tictactoe.java
import java.util.*;
public class Tictactoe {
public static void printGame(String[][] arr){
System.out.println();
//System.out.println("----------------");
for (int i = 0; i < 3; i++) {
System.out.println(" " + arr[i][0] + "| " + arr[i][1] + "| " + arr[i][2]);
if (i != 2) {
System.out.println("-----------");
}
}
}
public static void userPick(String[][] arr, int x, int y){
arr[x][y] = "O";
}
public static void computerPick(String[][] arr){
Random random = new Random();
while(true){
int x = random.nextInt(3);
int y = random.nextInt(3);
if(arr[x][y] == " "){
arr[x][y] = "X";
break;
}
if(gameIsFull(arr) == true){
break;
}
}
}
public static String gameWinner(String[][] arr){
for(int i = 0; i < arr.length; i++){
if(arr[i][0] == arr[i][1] && arr[i][1] == arr[i][2] && arr[i][0] != " " ){
return arr[i][0];
}
if(arr[0][i] == arr[1][i] && arr[1][i] == arr[2][i] && arr[0][i] != " " ){
return arr[0][i];
}
}
if(arr[0][0] == arr[1][1] && arr[1][1] == arr[2][2] && arr[0][0] != " "){
return arr[0][0];
}
if(arr[0][2] == arr[1][1] && arr[1][1] == arr[2][0] && arr[0][2] != " "){
return arr[0][2];
}
return "";
}
public static boolean gameIsFull(String[][] arr){
for(int i =0; i<arr.length; i++){
for(int j=0; j<arr.length; j++){
if(arr[i][j] == " "){
return false;
}
}
}
return true;
}
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String[][] arr = new String[3][3];
for(int i = 0; i < arr.length; i++){
for(int j = 0; j < arr.length; j++){
arr[i][j] = " ";
}
}
printGame(arr);
System.out.println();
boolean gameEnd = true;
while(gameEnd){
System.out.println("선택할 좌표(x, y)를 입력해 주세요.");
int x = sc.nextInt();
int y = sc.nextInt();
if(arr[x][y] != " "){
System.out.println("중복된 자리입니다.");
continue;
}
userPick(arr, x, y);
computerPick(arr);
printGame(arr);
String winner = gameWinner(arr);
if(winner.equals("O")) {
System.out.println("축하합니다. 게임에서 승리하였습니다!");
gameEnd = false;
}
else if(winner.equals("X")) {
System.out.println("아쉽게 게임에서 패배하였습니다.");
gameEnd = false;
}
else if(gameIsFull(arr) == true) {
System.out.println("비겼습니다");
gameEnd = false;
}
}
sc.close();
}
}'✎NHN Academy | JAVA' 카테고리의 다른 글
| NHN Academy - 2024.08.27(Tue) (0) | 2024.08.27 |
|---|---|
| NHN Academy - 2024.08.26(Mon) (0) | 2024.08.26 |
| NHN Academy - 2024.08.22(Thu) (0) | 2024.08.22 |
| NHN Academy - 2024.08.21(Wed) (0) | 2024.08.21 |
| NHN Academy - 2024.08.20(Tue) (0) | 2024.08.20 |