오전: 내 게임 class 나누기
하나로 합쳐져 있던 걸 나눠봤다.
요랬던게
요래됐슴당~
https://github.com/roqkfchqh/java_miniGame/tree/feature/002/src
여담이지만 커밋을 하다가 내 소중한 클래스 파일들이 다 날아갈 뻔 했다. 왜인지도 모르고 어떻게 고친지도 모르겠다. 그냥 로컬 기록에서 파일 가져와서 다시 푸시 하니까 됐다..
그리고 현재 game.java가 너무 많은 일을 하고 있다.
import java.util.Scanner;
public class Game {
private Grid grid;
private Player player;
private Bomb bomb;
private int score;
private boolean gameOver;
public Game(int gridSize) {
this.grid = new Grid(gridSize);
this.player = new Player(gridSize);
this.bomb = new Bomb(gridSize);
this.score = 0;
this.gameOver = false;
}
public void start() {
System.out.println("보이지 않는 폭탄을 피해 최대한 오래 살아남으세요!");
Scanner scanner = new Scanner(System.in);
while (!gameOver) {
grid.display(player, bomb);
System.out.println("점수: " + score);
System.out.print("이동(WASD, 한글 불가능): ");
char move = scanner.next().toUpperCase().charAt(0);
player.move(move, grid.getSize());
bomb.moveRandom(grid.getSize());
if (player.isCollided(bomb)) {
grid.display(player, bomb);
System.out.println("\uD83C\uDF73 앗! 계란후라이가 되었다..");
gameOver = true;
} else {
score++;
}
System.out.print("\033[H\033[2J");
System.out.flush();
}
System.out.println("최종 점수: " + score);
System.out.println("게임 종료");
}
}
game.java를 이동 관리 인터페이스와 이벤트 발생 인터페이스로 나눌 수 있을 것 같은데 조금 막막했다.
그래서 인터페이스 구조를 어떻게 가져갈 지 찾다가 디자인 패턴이란 것을 알게 됐고, 정리하다가 시간이 다 갔다!!!
https://roqkfchqh.tistory.com/42
이 많은 걸 외?워?야되나??요???
오전2~오후1: 개인과제 lv1
레벨1은 쉽게 구현할 수 있었다. 3주차 숙제와 게임을 만들어 본 게 큰 도움이 됐다. 거의 복사 붙여넣기랑 예외처리만 했다.
굳
오후1: 프로그래머스 택배 상자
https://roqkfchqh.tistory.com/45
레벨 1이 배열을 이용한 단순구현과 수학 위주라면,
레벨 2는 "너 기본적인 알고리즘/자료구조를 알고 있니?" 하는 느낌이다. 코딩 잘하는 친구 말로는, 문제를 보고 어떤 알고리즘이나 자료구조를 써야 하는지 파악하는 것이 제일 어렵다고 했는데, 이 문제는 누가 봐도 스택이어서 자료구조 공부도 할 겸 풀어봤다.
문제 길이에 좀 쫄았는데 생각보다 쉬웠다.
오후2~: 개인과제 lv2
일과가 거의 다 끝났는데 할 게 없어서 4주차 예외처리 강의 듣고 레벨2도 조금 손대봤다.
근데, 레벨 2가 생각보다 만만치 않아서 stack에 이어서 queue도 공부하기로 했다.
밤:알고리즘
음.. 알고리즘 공부 하다가 딥한 내용이 궁금해서 e북을 질러버렸다..
무려 50000원.. 내배캠 4일치다 흐악!!!!
원래 e북 하나 갖고 있는 게 있었는데 너무 설명을 대충 해서 참을수가없었다
그래도 이런 건 한번 사두면 두고두고 평생 볼 것 같당 'ㅅ'
속았다!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 표지사기 당했다.
큐 문제인 줄 알고 풀었는데 예전에 슬쩍 훑은 슬라이딩 윈도우 옆에 있던 투 포인터를 쓰는 문제인 것 같다 ㅠㅠ
알고리즘을 공부하기 전에 내 머리만으로 구현하기에는 좀 벅찬 것 같다. 굉장히......못생긴 코드를 쓰다가(블로그엔 안올릴거다 ㅠ) 포기했다. 이참에 내일 공부해서 풀어야겠다.