본문 바로가기

TIL/Java

Java 행맨 구현

반응형

 

위 사진은 행맨을 Swing-GUI로 구현한 결과물이다 

함수부터 설명하는 것이 나을 것 같다

 

getWordList는 path를 매개변수로 받아서

BufferedReader 클래스로 입력받은 path(=텍스트 파일)를 읽어오고

ArrayList인 word_array(String)에 넣는 후, 리턴해준다 

 

correctWord 함수는 위에서 리턴받은 array를 넣어주고 

랜덤으로 한개의 단어를 뽑아서 그 단어를 리턴해준다 (랜덤 단어를 맞춰야 하기 때문에)

 

그리고 메인에서는 밑에서 만들 생성자를 호출시켜준다 

 

위 함수들을 이용해서, 단어를 하나 뽑고 그 단어를 LowerCase를 이용해서 모든 글자를 소문자로 반환한다

(사용자가 대소문자 구별 안하게 하기 위해서)

 

그리고 GUI 화면 상 '_' (빈칸으로 보이게 하기 위해서)

replace_len과 replace_array를 만드는데

여기서, replace_len은 단지 맨 처음 아무것도 입력하지 않았을 때 띄워주는 용이고

replace_array가 계속해서 띄워주는 용도이다 (ex : a 입력했을 때 단어에 a가 들어가면 a를 다 넣어주고 나머지는 원래 '_'로 출력)

 

그다음 JLabel들을 만든 거는 해당 코드를 보면 쉽게 이해할 수 있을 것이다

(단지 게임 진행에 필요한 라벨들이다)

 

그리고 패널을 총 3개로 나뉘어

맨 위쪽에는 정답을 맞추는 과정인 라벨들을 넣어주고,

센터에는 정답을 못맞출때마다 사진이 한 장씩 바뀌는 행맨 패널

마지막으로 맨 밑에는 사용자가 입력하는 결과를 보여주는 input_panel을 frame에 붙여준다

input_panel에는 사용자가 입력하게 하기 위해서 JTextArea를 넣어주었다 

 

그리고 반복문으로 행맨 사진 7장을(7장으로 제가 그냥 맞춘 겁니다!) 카드 레이아웃 icons에 넣어주고

행맨 패널에 붙여준다 

 

그리고 if문으로 gameOver 가 false가 될 때까지 게임을 구현하고,

그 안에서 반복문으로 정답 단어의 길이까지 사용자가 입력한 글자와 일치하는 것이 있는지 검사했을 때,

일치한다면 일치하는 곳의 위치를 사용자가 입력한 글자로 바꿔주고

만약에 일치하는 글자가 있다면 nextImg를 false로 지정해 사진이 안 넘어가게 구현하였다

 

하지만, 사용자가 입력한 글자가 정답 단어에 존재하지 않을 때는

카운트를  + 1 늘려가면서 이미지를 바꿔주고

만약에 카운트가 7번 즉, 7번 안에 정답을 다 맞히지 못했을 때는

gameOver를 false로 만들어서 게임이 중단되게끔 구현하였다 

반응형

'TIL > Java' 카테고리의 다른 글

Java 전화번호부 만들기  (0) 2021.08.06
Java 학교만들기 (클래스 나누기 복습)  (0) 2021.08.06
Java 사용가능한 비밀번호 출력 (BruteForce)  (0) 2021.08.05
Java Calendar 만들기  (0) 2021.08.04
Java gui button puzzle  (0) 2021.08.04