Java
-
[Tetris] AutomatorJava 2022. 5. 2. 17:20
Mac 기본(?) 어플리케이션인 automator 컴퓨터에서 필요한 작업을 자동으로 수행해주는 녀석이다. Tetris 파일을 어플리케이션으로 실행하기 위해서 이 앱을 사용해보았다. jar 파일을 실행하기 위해 필요한 터미널 명령어를 자동으로 실행해주도록 했다. 1. Automator 실행 -> 응용프로그램 선택 2. 쉘 스크립트 실행 선택 3. 쉘에서 실행할 명령어 입력 jar 파일이 있는 폴더로 이동해서 java -jar 명령어로 jar 파일을 실행하도록 한다. 4. 원하는 이름으로 저장 5. icon 변경하기 5-1 icon으로 쓸 이미지 command+c 5-2 응용 프로그램 폴더에서 방금 만든 어플리케이션을 선택하고 command + i 5-3 이름 왼쪽의 아이콘을 누르고 command+v 를 누..
-
[Tetris] ObjectMapperJava 2022. 4. 30. 19:34
기존에는 Tetris 게임의 scoreboard 처리를 txt 파일 I/O로 처리했었다. 하지만 이 방식이 project를 jar 파일로 만들고 나면 잘 작동하지 않는다는 것을 알게된 후 JSON 파일로 바꾸기로 결심했다. 바뀌는 점을 최소화하기 위해 기존 클래스의 함수 이름을 그대로 사용했다. JSON(Javascript Object Notation) "키:값" 쌍으로 이루어진 데이터 객체를 전달하기 위해 사람이 읽을 수 있는 텍스트를 사용하는 포맷 직렬화(Serialize): 객체들을 문자열로 바꾸어주는것, Object -> String 역직렬화(Deserialize): 데이터가 모두 전송된 이후 문자열을 기존의 객체로 회복시켜주는 것 String -> Object ObjectMapper: JSON ..
-
[Java] 유닛테스트 작성하기Java 2022. 4. 26. 21:06
학교 소프트웨어 공학 과목에서 진행하고 있는 테트리스 프로젝트 처음 해보는 팀프로젝트인데 막상 해보니 제일 힘든건 유닛테스트 작성하기였다. 그렇지만 오늘 유닛테스트를 작성해보니 생각치도 못한 버그를 발견할 수 있었다. 다음에도 작성할 일이 생길 것 같아서 적어본다. 프로젝트 우클릭 -> New -> Other -> Java -> JUnit -> JUnit Test Case 이때 Junit 패키지를 다운로드 하지 않았다면 다운로드 해주어야 한다. Next 눌러주고 Name 항목에 테스트 하려는 클래스명+Test 적어준다음 Class under test 항목에 테스트 하려는 클래스를 Browse 해서 선택해준다. Ok를 눌러주면 JUnit test class가 생성된다. @Test 어노테이션을 붙여주고 As..
-
[Java] 화면 전환, 애니메이션 (Hangman5)Java 2022. 2. 9. 23:05
START 페이지를 만들고 애니메이션을 넣은 화면 전환을 구현하였다. 화면 전환은 StackPane 을 사용하였다. 씬빌더를 사용해서 시작 화면을 만들었고 시작화면과 연결되는 controller인 StartPageController에 화면 전환을 넣었다. public class startPageController implements Initializable { @FXML private Button startBtn; @FXML private Text mainText; @Override public void initialize(URL location, ResourceBundle resources) { } @FXML public void gameStart(ActionEvent event) { startBtn...
-
[Java] button, textField CSS (Hangman4)Java 2022. 2. 9. 20:33
Hangman project 의 Button 과 text-field 디자인을 CSS로 바꾸어보았다. https://getcssscan.com/css-buttons-examples CSS Scan - The fastest and easiest way to check, copy and edit CSS Goodbye to "Inspect Element" — Visualize the CSS of any element you hover over, instantly, and copy its entire rules with a single click. getcssscan.com 위 사이트는 여러가지 CSS 버튼 스타일을 제공하고 있다. #wordMeaningArea .scroll-pane { -fx-hbar-poli..
-
[Java] Dictionary API (Hangman3)Java 2022. 2. 6. 23:40
오늘은 Dictionary API를 사용해서 영단어의 뜻을 불러오는 것을 구현했다. 링크: https://api.dictionaryapi.dev/api/v2/entries/en/ 부분에 궁금한 영단어를 입력하면 뜻, 발음, 유래 등이 나온다. 위 사진은 hello라는 단어로 검색을 했을 때의 결과이다. 뜻만 알고싶은데 문장이 좀 길어서 String으로 받아서 "definition"의 인덱스를 검색하고 해당 인덱스 다음에 가장 빨리 나오는 쌍따옴표의 인덱스를 검색해서 그 사이에 있는 뜻만 substring으로 잘랐다. private String wordMeaningURL = "https://api.dictionaryapi.dev/api/v2/entries/en/"; public String getWordM..
-
[Java] Hangman2Java 2022. 2. 5. 20:00
오늘을 기본 레이아웃을 수정했고 이것저것 잡다한 에러들을 수정하였다. 우선 첫번째로는, 게임이 시작되기 전에는 글자를 제출하는 버튼을 클릭할 수 없도록 수정하였다. Enter 버튼의 기본 설정을 disable = "true"로 설정해놓았고, START 버튼을 눌러 게임이 시작된 후에 submitBtn.setDisable(false);"로 버튼을 누를 수 있게끔 수정하였다. hangman.fxml 파일 다음으로는 행맨이 죽었을 때, 살았을 때의 표정이 각각 다르게 나오도록 설정하였다. 게임을 이긴 경우에는 행맨의 얼굴과 몸 전체가 나타날 수 있도록 구현했고, 진 경우에는 이미 행맨의 몸이 전부 나온 상태이므로 얼굴만 X로 표현되도록 구현했다. 얼굴은 그냥 ': )' 와 'X' 표시를 90도 돌려서 표정이 ..
-
[JAVA] 무작위로 단어 가져오기(Hangman1)Java 2022. 2. 4. 20:11
유튜브 하던 중에 우연히 발견한 Random word api. https://random-word-api.herokuapp.com/home https://random-word-api.herokuapp.com/word?number=1000 ?number = ??? 부분으로 단어의 개수를 지정할 수 있고 지정된 개수만큼의 단어가 뜬다. 또는 swear=0 으로 욕설인 단어는 나오지 않도록 출력할 수도 있다. ["단어1","단어2","단어3","단어4"] 이러한 형식으로 랜덤한 단어를 정한 개수만큼 불러올 수 있다. 나는 다음과 같이 URL class로 링크를 걸어두고 BufferedReader로 html 안의 값을 불러왔다. 그 다음 substring(1,length()-1)로 대괄호를 지워버리고 split..