안드로이드용 스타포스 역계산기의 v1.1.3이 배포되었습니다. 플레이스토어 링크 이전 버전과 변경점은 다음과 같습니다.1. 140제 무기를 계산할 수 있습니다.2. 역계산 알고리즘을 개선했습니다. 사실 중요한건 2번인데요, v1.1.2까지는 역계산이 아닌 계산 시뮬레이션에 의한 방법이였다면이번 업데이트를 통해 온전히 역계산이 가능하게 되었습니다. [v1.1.2와 현재도 사용하고 있는 스타포스 강화 메소드] private static int enchant200(int attack, int currentStars) { if (currentStars < 15) return attack + (attack / 50) + 1; switch (currentStars) { case 15: case 16: return ..
기어코 만들었습니다. 플레이스토어 기존에 존재하던 스타포스 역계산기는 일단 너무 오래됐고 서비스가 제대로 되지도 않으며웹에 의존하는 방식이라 어쩔 수 없이 지출되는 서버비용을 개발자가 수지타산이 안맞아 포기한 것 같습니다. 그와 다르게 전부 네이티브에서 작동되는 애플리케이션이며 인터넷 연결을 필요로 하지 않습니다. (설치 권한 중 네트워크 연결이 포함된 것은 광고때문입니다) 애플리케이션 기능은 다음과 같습니다. 1. 추옵에 관계없는 계산이 가능합니다.메이플스토리가 장비 확인시 추가옵션 표시가 분리되었기 때문에 순수히 강화만으로 올라간 수치를 확인하기 쉬워졌습니다. 따라서 추가옵션은 계산에 전혀 필요하지 않습니다. 2. 실제 사용되는 주문서를 기반으로 유추합니다.주문의 흔적을 이용하는 강화와 고자본 유저사..
다른 클래스(B)에서 어떤 작업을 할 때 특정 작업이 끝난 이후에 동작을 외부(A)에서 설정하고자 할 때가 있을 것이다. B에 A에서 필요한 메소드를 정의하고 내용은 전부 인수로 넘겨주는 방법을 활용하는 경우가 있다. 하지만 Thread와 같이 비동기 작업을 하면서 특정 작업을 기다린 후에 어떤 동작을 하고자 한다면 어떡해야할까? 흔히 사용되는 방법이 Listener를 등록하는 방법이다.public class Main { public static void main(String... args) { TestThread testThread = new TestThread(); testThread.setOnThreadFinishedListener(() -> System.out.println("Thread fini..
150제 파프니르 무기160제 앱솔랩스 무기200제 아케인셰이드 무기 각 무기의 '주문의 흔적' 작 별 스타포스 강화 수치입니다. 주문의 흔적은 각 100%, 70%, 30%, 15%로 시행했을때며 모두 완작 기준입니다.그렇다면 각각 주흔작으로 올라가는 수치는 +27, +45, +63, +81이 되겠네요. (각 Sheet별 C에 해당)특별히 아케인셰이드는 매지컬 11 리턴작을 추가하였습니다. 레벨제한과 상관없이 각 무기는15성까지 '추옵을 제외한' 현재 공격력/마력을 50으로 나눈 수 + 1만큼 공격력/마력이 늘어납니다.정리하면, [1, 15]의 n성에서 늘어나는 공격력/마력 A(n)은[A(n-1)/50] + 1 (단, [x]은 x를 넘지 않는 최대 정수) 입니다.수정1 ) A(0)는 작을 마친 상태의 ..
문제의 중요한 조건은 두 터렛의 좌표와 거리를 이용해서 원의 외부, 외접, 내접, 내부, 일치를 판별하는 것이다. 두 터렛 사이의 거리가 각 터렛에서0) 마린까지의 거리가 일치하고 두 터렛의 위치가 일치하면 일치1) 마린까지의 거리의 합보다 크면 외부2) 마린까지의 거리의 차보다 작으면 내부3) 마린까지의 거리의 합과 같으면 외접4) 마린까지의 거리의 차와 같으면 내접5) 마린까지의 거리의 차보다 크고 합보다 작으면 두 점에서 만난다. 원래대로라면 두 점 사이의 거리는 전부 제곱근을 이용해야하지만 제곱근을 구하는 것 보다 반대쪽을 제곱하는 편이 유리하니 이 방법을 사용하도록 한다. testcase는 반드시 0이상의 정수이므로 unsignedr1, r1은 자연수지만 뺄셈에서 결과를 위해 signed 굳이 ..
GitHub 링크 대단한 설명이 필요할지는 모르겠다. 1. 새로운 Socket 연결이 들어오면 accept된 Socket을 새 Thread(SocketThread)에 넘기고2. SocketThread에서는 들어온 명령어를 CLOSE만 구분하고 CLOSE가 아니라면 CommandServer에 넘기고 wait3. CommandServer는 명령어를 구분하여 적절한 Command를 알려주고 CommandThread에 작동을 넘긴다.4. CommandThread에서의 Command 작동 결과 (perform()의 결과)는 CommandServer의 resultList에 저장되고 기다리던 SocketThread에 notify5. UUID를 이용하여 기다리고 있던 SocketThread는 notify되면 결과(JS..
C와 C++에서의 구조체 차이와 연속되었다고 생각하자. 크게 말로 설명하는거보다 코드로 보는 것이 더 편할 우리를 위해 표와 코드만을 준비할 수 있었지만 접근 한정자 차이때문에 생기는 문제만 있다고 생각해도 좋다. 1. 구조체에서 접근 한정자가 정의되어있지 않다면 public이고 클래스에서는 private이다. 하지만 클래스에서 이런 짓은 하지 말자. 알더라도 명시적으로 범위로 접근 한정자를 정해줄 수 있는데 왜 이러는 것인가. 물론 Java와 같이 package-private한 기능이 있는 것도 아니고, 그냥 이럴 경우 private밑에 써주도록 하자. struct MyStruct { int variable; // public }; class MyClass { int variable; // privat..
별로 길게 이야기 할 것도 없는 주제다. 사실 인터넷 찾아보면 금방 찾을 수도 있는 내용이지만 나를 위해 표로나 정리해보고자 했다. C C++ 멤버함수 선언 불가능 가능 struct MyStruct { void member_function(); // C는 불가능 }; 구조체 내부 변수 초기화 불가능 가능 struct MyStruct { int variable = 0; // C는 불가능 }; 초기화시 struct 키워드 필요 불필요 struct MyStruct {}; void foo() { struct MyStruct my_struct = ~~; // C MyStruct my_struct = ~~; // C++ } 정적 멤버 변수 또는 함수 불가능 가능 struct MyStruct { static int ..
- Total
- Today
- Yesterday
- linaro
- LG
- rule_of_three
- c++ 상속
- 포인터
- Java
- C++ 업캐스팅
- inline class
- d802
- PipelineContext
- vector
- dokdo 4.0.3
- f320s
- dokdo-project
- c++ struct
- 객체지향
- G2
- dokdo project
- CM10.2
- nodeal
- C++
- Kotlin
- f320k
- c++11
- C
- cyanogenmod
- OOP
- g2 korea
- rule_of_five
- CM11
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |