C++을 사용하면서 자료를 다루는 class는 수도 없이 많이 사용될 것이다. 하지만 그 자료가 완전히 메모리에 안전한 인스턴스일 수도 있고, raw pointer일 수도 있을 것이다. 이 때에 맞추어 각 class를 구성하는 방법에 대하여 알아보자. Rule of zero : 소멸자, 복사/이동 생성자, 복사/이동 할당연산자가 정의되어있는 class의 wrapper class는 다음의 꼴을 가진다. class Test { private: std::string s; public: Test(const std::string &s) : s(s) {} }; 소멸자, 복사, 이동 생성자, 복사, 이동 할당연산자가 정의되어있는 class는 OOP 단일 책임 원칙에 따라 새로운 소멸자, 생성자, 할당연산자가 정의되어..
스타포스 역계산기의 v1.1.4가 플레이스토어를 통해 배포되었습니다.플레이스토어 링크 이전 버전과 변경점은 다음과 같습니다.1. 130제와 그 이하 무기를 계산할 수 있습니다. 이번 추가 내용은 130제 이하의 무기류 계산인데요, 140제까지는 25성까지의 스타포스가 적용되지만 138 미만의 아이템부터는 스타포스 수의 제약이 걸려있습니다. 130제는 15성부터 6, 7, 7, 8, 9가 오르고 20성이 최대입니다.그에 반해 120제 이하는 15성이 최대이므로 공격력 계산을 추가할 필요가 없습니다. 하지만 레벨제한이 낮아짐에 따라 그 스타포스만 적용해야하는 것이 아닙니다. 바로 주문의 흔적을 통한 강화 수치가 낮아지는 것인데요, 75미만의 무기는 100%로 1, 70%로 2, 30%로 3, 15%로 5가 ..
안드로이드용 스타포스 역계산기의 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..
- Total
- Today
- Yesterday
- nodeal
- f320k
- C++ 업캐스팅
- CM11
- cyanogenmod
- G2
- CM10.2
- c++11
- Kotlin
- LG
- OOP
- linaro
- d802
- c++ 상속
- g2 korea
- C
- 기타 ETF
- rule_of_three
- C++
- 객체지향
- Java
- rule_of_five
- vector
- dokdo project
- dokdo 4.0.3
- dokdo-project
- c++ struct
- StructuredTaskScope
- 포인터
- f320s
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
