Coding/Java 삽질기2020. 5. 14. 08:54

자연스러운 카드 이동 화면 구현

카드를 마우스로 드래그 하여 이동할 경우, 드래그를 시작한 마우스의 좌표(smx, smy) 와

카드의 좌측 상단 포인트 (scx, scy)에서 가로, 세로 차이 W (scx - smx), H (scy - smy)를 구합니다.

그리고 마우스를 드래그 하는 동안 마우스 커서 위치에 카드를 그려야하는데,

현재의 마우스 좌표 (mx, my) 에서 위 에서 구한 W, H 의 거리만큰 이동한

(cx = mx - W, cy = my - H)를 시작 점으로 하여 카드 이미지를 그려주면,

자연스러운 카드 이동 화면을 구현 할 수 있습니다.  

 

참고소스:

https://github.com/chobocho/solitaire/commit/cf83dcc10c0c890aaf0cda1f73323a33f7092d87

Posted by chobocho

댓글을 달아 주세요

Coding/Java 삽질기2020. 4. 12. 01:18

몇 년 전에 만들었던, 마작 게임을 껍데기만 빼고 다 바꿔 보았다.

PlayStore:  https://play.google.com/store/apps/details?id=com.chobocho.ColorMatch

Source code: https://github.com/chobocho/ImageMatch

마작 게임 스크린 샷

 

1. 전체 패키지 구조는 아래와 같다

간단한 패키지 구조도

 

2. 이중 마작게임의 State diagram은 아래와 같이 구상 했다.

스테이트 다이어그램

 

3. 그리고 아래와 같이 Class diagram 을 작성했다.

 

Posted by chobocho

댓글을 달아 주세요

Coding/Java 삽질기2020. 4. 5. 22:37

이번 주말도 방콕을 하면서, 10년전에 만들었던 게임을 Java와 Android 버전으로 개선해 보았다.

10년전 코드를 보면서 참 부끄러웠고, 지금도 별반 차이게 없는게 안타까웠다.  ㅠㅜ 

Android Mahjong 버전 (안드로이드 마작)

PlayStore:  https://play.google.com/store/apps/details?id=com.chobocho.ColorMatch

Source code: https://github.com/chobocho/ImageMatch

 

Posted by chobocho

댓글을 달아 주세요

Coding/Java 삽질기2020. 4. 3. 00:43

지난주에 만들었던 솔리테어 게임을 Android로 포팅해 보았다.

Download:  https://play.google.com/store/apps/details?id=com.chobocho.solitaire

Java 솔리티어 게임 만들기 : https://chobocho.tistory.com/2461434?category=9608

Source code : https://github.com/chobocho/solitaire2

 

chobocho/solitaire2

Android solitaire. Contribute to chobocho/solitaire2 development by creating an account on GitHub.

github.com

Posted by chobocho

댓글을 달아 주세요

Coding/Java 삽질기2020. 4. 1. 01:09

주말에 만들었던 Freecell을 안드로이드 용으로 포팅을 해보았다.

Download : https://play.google.com/store/apps/details?id=com.chobocho.cardgame

https://chobocho.tistory.com/2461436

 

[Java] Freecell 만들기 (자바 프리셀 만들기)

이번주도 봄이 왔으나 집에서 방콕을 하면서, 프리셀 게임을 만들어 보기로 했다. Source cdoe 위치: https://github.com/chobocho/freecell 실행파일: 어떻게 만들었나 1. Class 다이어그램 2. GUI 설계 3...

chobocho.tistory.com

UI 해상도만 손봐주면 되어서 2시간 정도면 될 줄 알았는데... 삽질을 하다보니 4시간이나 걸렸다. ㅠㅜ

Source : https://github.com/chobocho/freecell/tree/master/src/cardgame

 

chobocho/freecell

Freecell game. Contribute to chobocho/freecell development by creating an account on GitHub.

github.com

Posted by chobocho

댓글을 달아 주세요

Coding/Java 삽질기2020. 3. 28. 11:17

이번주도 봄이 왔으나 집에서 방콕을 하면서, 프리셀 게임을 만들어 보기로 했다.

Source cdoe 위치:  https://github.com/chobocho/freecell

Freecell 실행 화면

실행파일:

freecell_td1.2.zip
0.12MB


어떻게 만들었나

1. Class 다이어그램

Freecell class diagram

2. GUI 설계

3. 실행 화면

Posted by chobocho

댓글을 달아 주세요

Coding/Java 삽질기2020. 3. 24. 22:28

IntelliJ에 포함된 OpenJDK의 위치는 아래와 같습니다.

C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2019.3.2\jbr\bin
 
 
Posted by chobocho

댓글을 달아 주세요

Coding/Java 삽질기2020. 3. 24. 01:50
봄이 왔으나 집에서 방콕을 하면서, 솔리테어 게임을 만들어 보기로 했다.
간만에 뭔가를 만들어 보려니, 생각만큼 속도가 나오지 않았으나,
꾸역꾸역해서 일단 만들어 보았다.
 
 
게임 동작 화면
실행파일:
 

어떻게 만들었나?

1. UML 그리기

Solitaire 게임의 핵심 부분의 UML을 그려보면 아래와 같습니다.

2. Testcase 설계

구현을 시작하기 전에, 구현을 위한 Testcase를 작성합니다.

Testcase 작성시, 명료성을 위하여 아래와 같이 각각의 카드 덱에 번호를 붙입니다.

솔리테어 덱의 번호

그리고 아래와 같이 위 이미지를 기준으로 Testcase를 작성합니다.

Testcase 작성에 시간이 걸리기는 하지만, 미리 작성해 두면, 디버깅 및 테스트 시간을 아낄 수 있고,

버전 발행시 기본적인 기능 오류를 발견하지 못하는 일을 방지 할 수 있습니다.

솔리테어 체크 리스트 중 일부

3. 코드 구현

1) Card class

https://github.com/chobocho/solitaire/blob/master/src/com/chobocho/card/Card.java

2) Deck class

https://github.com/chobocho/solitaire/tree/master/src/com/chobocho/deck

 

Posted by chobocho

댓글을 달아 주세요

Coding/Java 삽질기2020. 3. 20. 00:30
IntelliJ 에서 "Cannot find or load main class"  메시가 보이는 경우
 
main 함수가 있는 파일의 폴더에서 
-> 마우스 우 클릭
-> Mark Directory as
-> Sources Root 를 클릭 하면 된다.
 
 
 
Posted by chobocho

댓글을 달아 주세요

Coding/Java 삽질기2020. 1. 23. 23:30

Android 제비뽑기 앱 만들기 (II)

간만에 마음에 여유가 생겨, 앱을 약간 수정하였습니다. ^^

결과물 
Source code:  https://github.com/chobocho/choose_one 
Play store:  https://play.google.com/store/apps/details?id=com.chobocho.chooseone 

앱의 목적 
  
2명이상의 사용자들 중 한 명을 뽑아 준다 (사다리 타기) 
  
사용 예:  커피 쏘기 
앱의 기본 동작 설계

 

앱의 요구 사항 분석 
  
앱을 실행 후 2명 이상이 화면에 손가락을 올리면, 3초 뒤에 한 명을 선택해 준다 
손가락을 올려 둔 상태에서 3초 안에 손가락을 떼거나, 추가하면 다시 3초를 센다 
손가락을 올려 둔 상태에서 3초 안에 손가락을 모두 떼면, 동작을 멈춘다 
60초 동안 아무도 손가락을 올리지 않으면 자동으로 앱이 종료 된다

  
기초 설계
 
앱의 동작을 위하여 내부적으로 IDLE, SELECTING, SELECTED 3개의 State를 가지는 State machie 을 구상하였다.
State의 변화는 아래와 같다. (편의 상 시간의 변화를 tick이란 단어로 표시했다.)

Posted by chobocho

댓글을 달아 주세요