본문 바로가기

TIL/Java

(30)
Java 통아저씨 게임 만들기 왼쪽 화면은 콘솔에 출력된 게임 진행과정이다 player 클래스에서는 생성자로 이름을 받고 게임이 끝났을 때, 결과를 win/lose로 나누어서 전적 관리를 한다 그래픽 클래스는 말 그대로 콘솔에 보기 쉽게 출력하기 위해서 만든 클래스이다 printTong 함수는 찌를 수 있는 공간이라면 즉, 빈 공간인 경우에는 0을 출력 그렇지 않다면 X를 출력해준다 그리고 15개씩 끊기 위해서 가정문으로 15개가 한 줄에 채워졌을 때 \n을 넣어준다 통아저씨 클래스에서는 주석처리를 잘해놔서 따로 부연설명 X 메인에서는 Scanner를 통해 유저들을 등록해주고 통아저씨의 구멍을 30개로 지정한 후에 게임을 시작한다 턴을 넘기는 과정이 생각보다 단순하면서 어려웠는데 플레이어 2명이 각각 0,1이라고 생각했을 때 0 % ..
Java 전화번호부 만들기 위 사진은 메인에서 원하는 정보들을 전화번호부에 넣었을 때, 콘솔에 출력되는 화면이다 Info 생성자에서는 이름과 나이, 핸드폰 번호를 매개변수로 받고 (toString은 콘솔에 어떤 걸 출력할지 나타내준다) compareTo 함수는 Comparable를 이용해 전화번호부에 있는 것들과 이름이 같지 않다면 핸드폰 번호순으로 정렬하고 이름이 같다면 이름순으로 정렬하게 만들어준다 그리고 새로운 그룹을 추가할 때, 만약 phonebook이 매개변수로 받는 새로운 그룹 이름을 가지고 있다면 "이미 존재하는 그룹입니다"를 콘솔에 출력해주고 return false를 해준다 반대로 만약 이미 존재하지 않다면 전화번호부에 추가해주고 추가된 내용을 콘솔에 출력해준다 위에 함수는 주석 처리된 내용의 함수들!
Java 학교만들기 (클래스 나누기 복습) 예전에 한걸 다시 복습하면서 보게 되면, '왜 이걸 힘들어했지..?' 싶을 정도이다 못 올린 TIL들이 3개 정도 있어서 뒤늦게라도 복습 차원 차 포스팅한다 학교 만들기는, 클래스를 나누어 상속받으면서 이클립스 콘솔에 출력해보는 연습용 문제였다 옆에 사진처럼, 랜덤으로 이름을 만들고 각 학생들의 성적표를 출력해주는 문제이다 Student 클래스를 만들어서 각 반에서 상속받아 진행한다 이름들을 배열로 지정하고, generateRandomName 함수는 이용해서 각각의 배열에서 랜덤으로 뽑은 이름들을 더해주고 리턴해준다 마찬가지로, generateRandomScore 함수는 맥스 스코어를 이용해서 학생들의 점수를 랜덤으로 뽑아줄 때 필요한 함수이다 그리고 생성자에는 이름을 함수로 받고, 공통과목인 국어와 영..
Java 행맨 구현 위 사진은 행맨을 Swing-GUI로 구현한 결과물이다 함수부터 설명하는 것이 나을 것 같다 getWordList는 path를 매개변수로 받아서 BufferedReader 클래스로 입력받은 path(=텍스트 파일)를 읽어오고 ArrayList인 word_array(String)에 넣는 후, 리턴해준다 correctWord 함수는 위에서 리턴받은 array를 넣어주고 랜덤으로 한개의 단어를 뽑아서 그 단어를 리턴해준다 (랜덤 단어를 맞춰야 하기 때문에) 그리고 메인에서는 밑에서 만들 생성자를 호출시켜준다 위 함수들을 이용해서, 단어를 하나 뽑고 그 단어를 LowerCase를 이용해서 모든 글자를 소문자로 반환한다 (사용자가 대소문자 구별 안하게 하기 위해서) 그리고 GUI 화면 상 '_' (빈칸으로 보이게..
Java 사용가능한 비밀번호 출력 (BruteForce) - 비밀번호의 길이를 입력받으면 다음 문자로 만들 수 있는 모든 해당 길이의 비밀번호를 출력시켜라 -> 영어 대/소문자 -> 숫자 -> 특수문자 (숫자로 표현 가능한 것들만)
Java Calendar 만들기 createSchedule 함수는 매개변수로 해당 연도와 월을 입력받고 ​ Scanner를 통해 사용자에게 저장하고 싶은 스케줄의 날짜와 내용을 입력받은 후에 LocalDate 함수를 이용해 매개변수로 입력받은 년도와 월 그리고 사용자가 입력한 날짜를 변수 schdule_day에 저장한다 (이 부분은 나중에 불러들일 때 사용할 예정인데 아직은 미사용) ​ 그리고 sch라는 String타입 Array배열을 만들어서 사용자가 입력한 스케줄내용을 저장한다 ​ 그 후, FileOutputStream을 이용해서 스케줄에 해당하는 날짜와 입력내용을 지정해놓은 "schedule.txt"로 보낸다 ​ 그리고 반복문을 통하여 사용자가 입력한 내용을 콘솔창에 확인용으로 보여준다 ​ pirntHoilday 함수는 위와 마찬..
Java gui button puzzle 오늘은 swing의 gui를 이용하여 숫자 퍼즐을 만드려고 한다 위 사진은 gui title의 icon 변경을 위해 첨부하였다 ​ 전체적인 설계로는, 숫자를 입력받은 게임사이즈로 퍼즐게임을 만드는데 만약 3을 입력받으면, 3 * 3 = 9 개의 퍼즐을 만드는 방식으로 진행된다 ​ 그렇게 숫자패드가 생성되면, 그 숫자들을 섞어주고 각각의 버튼을 클릭하였을 때 위아래 양옆으로 빈칸이 존재한다면 그 빈칸과 text만 바꾸는 식으로 진행된다 ​ 자세한 설명은 코드와 함께 설명할 예정 ! 메인 클래스 GridPuzzle() 첫 번째로, Jframe을 상속시키고 클래스 내에서, 기본 생성자와 게임 사이즈를 입력받을 수 있는 생성자를 만들었다 ​ 매개변수로 아무 값도 안 들어오면 기본적인 생성자로 3*3=9 개의 퍼..
Java 행사 이벤트 출력하기 어떤 옷가게에서 할인 행사를 짝수번째 목요일마다 진행한다고 한다 년도를 입력하면 해당 연도의 모든 할인 날짜를 출력해주는 프로그램을 만들어보세요 ​ 콘솔에 출력한 화면 ​ ​ getFirstEventDay 라는 함수를 만들고 매개변수로 사용자가 입력한 year를 받는다는 계획을 세우고 시작하였다 ​ Calender 함수를 이용해서 event라는 변수를 만들고 set함수를 사용하여 event를 사용자가 입력한 년도의 1월 1일로 지정하였다 그리고 다시 한번 set 함수를 사용하여 그 주의 목요일로 event를 설정하였고 하지만, 년도가 작년도로 넘어가는 경우가 생기기 때문에 (2018년 1월 1일이라 가정하였을때, 1월 1일이 금요일이라면 2017년 12월 31일이 목요일이 될 수 있는 경우들이 있다 ) ..