육각형
60도씩 돌고, 이동거리는 100에서 1씩 감소함.
바람개비
89.5도씩 돌고, 이동거리는 200에서 1씩 감소함.
별
-144도씩 돌고, 이동거리는 200에서 2씩 감소함.
성게
170도씩 돌고, 이동거리는 200에서 2씩 감소함.
오리
179도씩 돌고, 이동거리는 200에서 1씩 감소함.
장미
100도씩 돌고, 이동거리는 200에서 4씩 감소함.
게임에서 사용되는 카드를 클래스로 만든 것이다. 카드의 숫자는 A~K까지이고, 무늬는 4가지로 불변의 값이기 때문에 타입에 안전한 enum 키워드를 이용하여 속성값을 정의하였다. 그리고 적절하지 않을지 모르겠지만 GUI 구현시 데이터와 화면표시가 따로 노는 것을 방지하기 위해 JButton 클래스를 상속하여 실제 카드의 데이터와 화면에 보이는 버튼이 한 몸이 되도록 하였다. Player 클래스에서 카드를 순서대로 정렬하기 위해 Comparable 인터페이스를 구현하였다.
52장의 카드 한 벌을 Deck 이라고 한다. 초기엔 카드를 저장하기 위해 Stack 클래스를 사용하여 구현하였다. 하지만 API 문서에서 Deque 인터페이스를 활용하는 것을 권장하기에 이를 따르기로 했다. 이 클래스의 기능 중에 카드를 섞는 shuffle 메소드를 손쉽게 구현하기 위해 Collections 클래스의 shuffle 메소드를 이용하였고 이 메소드는 인자로 List 인터페이스를 구현한 객체를 필요로 하기 때문에 Deque와 List를 둘다 구현하고 있는 LinkedList 클래스를 사용하였다.
게임에서 유저나 컴퓨터와 같은 플레이어를 정의한 클래스이다. 컴퓨터와 유저의 공통적인 특성들을 모아놓았고 거의 대부분이 구현되어 있다. abstract 키워드로 하위 클래스에서 객체를 생성하도록 유도하였다. Sort 기능도 Collections 클래스의 Sort 메소드를 이용해 손쉽게 구현하였다.
유저를 정의하는 클래스이다. 생성자 파라미터로 유저의 이름을 넣을 수 있고 버릴 카드를 직접 선택할 수 있다.
게임상의 컴퓨터를 정의하는 클래스이다. 유저와는 반대로 이름과 버릴 카드를 선택할 수 없다.
UI를 쉽게 변경할 수 있도록 인터페이스를 정의하였다. 나중에 프로그램을 확장해 자신만의 UI를 만들더라도 쉽게 만들 수 있을 것이다.
위의 클래스들을 이용해 Console 환경으로 구현하였다. GUI 환경을 만들기 전에 테스트 용도로 만들었고 UserInterface 인터페이스를 구현해 UI를 손쉽게 바꿀수 있도록 하였다.
위의 클래스들을 이용해 GUI 환경으로 구현하였다. 보드 게임의 형식을 갖추고 직관적인 인터페이스를 유지하려고 노력하였다. UserInterface 인터페이스를 구현하였다.
콘솔 환경
이름 입력
초기 화면
게임 도중
승리시 화면
자바를 이용한 통합 도서관리 프로그램
도서관 관리자에게 관리를 더욱 효율적이고 용이하게 할 수 있도록 도움을 줌.
좌측 상단의 패널에서 학번, 성명, 연락처 등을 입력후 등록 버튼을 눌러 회원을 추가할 수 있음. 또한 우측 상단의 패널에서 번호와 제목을 입력후 등록 버튼을 눌러 도서를 추가할 수 있음.
툴바의 불러오기 버튼을 눌러 데이터가 저장된 파일을 불러옴. 파일명과 확장자는 임의로 지정할 수 있으나 본 예제에서는 list.dat 파일을 사용하겠음. 마찬가지로 저장도 파일 대화창을 띄움.
하단의 대여목록과 예약목록도 같이 불러옴(본 예제는 처음 사용자를 위함). 올바른 데이터가 들어있지 않은 임의의 파일을 불러왔을 경우 에러메시지 대화창을 띄움.
손님의 경우나 대여가 불가능한 장르의 경우 대여 불가능 메시지를 띄움. 참고로 각 목록의 항목을 클릭하면 그에 맞는 속성값들이 출력됨. 예로 대여목록의 경우 대여일자와 반납기한이 출력됨.
이미 대여된 도서의 경우 예약 기능을 이용할 수 있음. 단, 대여가 불가능한 회원이나 장르는 예약도 불가능함.
도서관 이용시간이 끝났을 경우 데이터를 저장해 다음 개장시 다시 불러올 수 있음. 회원목록, 도서목록, 대여목록, 예약목록이 저장됨.
어디서 본 그림인데 기억이 안난다.
|
|
역사와 비교를 통해 프로그래밍 언어의 기본 원리를 정리한 책이다.
지금껏 프로그래밍 언어를 공부하면서 ‘왜’라는 질문을 품어본 적이 없는데, 이 책이 그 ‘왜’라는 질문과 동시에 그 답을 알려줬다.
프로그래머라면 꼭 한번은 읽어야 하는 책이라고 생각한다.
자세한 내용은 책 소개에서 확인하자.
5명의 범죄자로부터 길러진 ‘화이’가 괴물이 되어가는 이야기이다.
모든 배우들의 캐릭터가 각각의 색을 가지고 있다.
2~3번은 봐야 전체 스토리를 정확히 해석할 수 있을 듯하다.