카발 종합 계산기



C_calc

VB6KO

(클릭시 다운로드 가능)

(vb6ko.dll 파일이 없다고 출력되는 경우 C:windowssystem32 에 위 파일을 넣을 것)

퍼갈때는 반드시 어디로 퍼가는지 댓글에 남겨주시고, 출처를 표시하시기 바랍니다.

2009. 8. 22. 업데이트 사항
– 글자색 확인기능 추가
– 패널티 계산기능 추가
– 누적 데미지 계산 기능 중, 단위시간과 데미지의 관계에 오류가 있던 사항을 수정
– 누적 데미지 계산 기능 중, 출력 데이터의 변경.
– 명예등급의 데이터 수정 (17등급 이후로는 데이터가 명확하지 않아 수열을 통해 추정치로 대체)
– 스텟 계산기능 중, 일부 직업에서 특정 스텟이 비정상적으로 상승,하강되던 문제를 수정2009. 8. 12. 업데이트 사항
– 누적 데미지 계산 기능 추가
– 누적데미지 계산 기능 중 데미지 계산을 “쿨타임”기준에서  “시전시간”기준으로 변경
– 명예 등급 계산 추가
– 스킬 비용 계산 기능의 스킬 가격이 제대로 표시되지 않던 문제 수정
– 스킬 비용 계산 기능에서 일부 스킬이 빠져있던 문제 수정
– 데미지 계산기능 중 “크확적용누적평균데미지” 추가
– 명예등급 풀다운 매뉴에 중복된 명예등급이 들어있던 문제를 수정
– 누적 데미지 계산 중 0,-,= 번 스킬의 사용횟수 결과가 10,11,12로 출력되던 문제를 수정

2009. 8. 6. 업데이트 사항
– 스텟 계산 기능 추가

2009. 8. 5 업데이트 사항
– 스킬을 배우는데 필요한 금액이 계산 가능하도록 기능 추가
– 폼이 제대로 언로드 되지않아 프로그램을 종료해도 프로세스상에 계속 상주하고 있는 문제 해결.

일단은 데미지 계산과 피흡량을 계산하는 목적으로 만들었다.
더 많은 옵션을 추가하고 싶으나 아직 아이디어도 별로 떠오르지 않고, 입수된 공식도 없다.

데미지 계산을 위해서는 “패널티”라는 개념이 사용되는데, 필요한 변수는 몬스터 레벨, 케릭터의 레벨, 몬스터의 방어 이 3가지가 필요하다. 몬스터 레벨 자료는 아래의 자료를 참고하면 되는데 몬스터의 방어를 알아내기가 까다롭다.
정확한 자료는 차후에 업데이트 하면서 다시 올릴 예정!
– 업데이트됨

문의사항은 블로그 댓글이나 카발 머큐리서버에서 “대좌” 를 찾을 것.몬스터 레벨 참고 자료

Lv Monster HP
1 니퍼러그 65
1 갈리 65
1 맨티스 65
3 래비트혼 104
3 자이언트 비틀 104
3 트로글로 104
5 스코러그 143
5 레드 갈리 143
5 트로글로 파이터 143
6 스코러그+ 326
7 링스혼 182
7 갈리 캡틴 127
7 엘더 트로글로 127
9 좀비 메이드 221
9 데저트 폭스 221
9 트로글로 워리어 221
12 좀비 215
12 데저트 하운드 280
12 다이어 보어 280
15 링스혼 좀비 338
15 자이언트 스네이크 338
15 플랜트 토드 338
18 휴즈 비틀 397
18 버그자드 397
20 링스혼 좀비 리더 436
21 아르마쿠 455
21 팬서혼 455
23 아르마쿠+ 988
23 하이자드 988
24 블랙 스네이크 1028
24 버그맨더 514
24 플랜트 팬서혼 514
24 자이언트 스파이더 514
27 스켈레톤 572
27 머미 572
30 스켈레톤 워리어 631
30 머미 블레이더 631
30 휴즈 스파이더 631
31 스켈레톤 메이지 455
31 머미 워리어 650
34 바바야가 496
34 알키오니스 709
37 하운드 좀비 767
37 아키테릭스 767
40 팬서혼 좀비 826
40 클레이 가고일 826
40 모스커터 826
40 아키테릭스+ 1652
41 에이프 845
44 에이프 좀비 904
44 비터리프 904
44 모스커터+ 1808
45 에이프+ 1846
47 모스사이더 962
50 고스트 1021
50 앤트라러그 715
50 리글리프 1021
51 크랙 터틀 874
52 크랙 크랩 1271
53 크랙 토드 1295
54 페리톤 1318
55 고스트+ 2684
56 버그샤크 1365
57 버그돌피 1388
58 스톤 가고일 1412
59 구울 1435
59 페리톤+ 2870
60 쉐이드 1021
60 러그 퀸 1459
60 모스커터 퀸 1459
61 팬텀 워커 1037
61 버그샤크+ 2964
62 팬텀 크루 1054
63 플레임 하운드 1529
64 다크 솔져 1552
65 오토캐논-Op 1103
67 스톤 골렘 1622
67 하운드 S-01 1622
70 다크 블레이더 1693
70 메카 에이프 1693
70 오토캐논-Op+ 3386
72 메카 에이프 아쳐 1420
72 하운드 Sp 4058
75 메카맨더 1478
75 메카 에이프+ 4222
77 메카 버팔로 2166
77 메카 에이프 아쳐+ 4332
80 일렉트릭 버드 1574
80 메카맨더+ 4496
82 메카 버팔로+ 5262
83 메카자드 2662
85 일렉트릭 버드+ 5450
87 오토캐논-Ex 1951
88 메카자드+ 5636
91 라이혼 좀비 2912
92 오토캐논-Ex+ 5886
96 고스트 블레이더 2148
96 라이혼 좀비+ 6136
99 익스커베이터-알파 6324
100 오크 19158
100 부르크(오크) 38316
101 좀비 파이터 3224
101 고스트 블레이더+ 6448
101 블러디 라이혼 좀비 6448
101 샌드 라이혼 3224
103 오크 메이지 19716
106 좀비 슬래터 3380
106 좀비 파이터+ 3380
106 고스트 어쌔신 6760
106 베놈 토드 81120
106 라이호나 3380
108 라다크(오크 메이지) 41304
109 그레이 오크 20844
111 좀비 나이트 3536
111 좀비 슬래터+ 3536
111 좀비 워리어 7072
111 그리폰 7072
112 그레이 오크 메이지 21402
114 지다쉬(오크) 43560
115 레이크 자드 21966
115 아이스 좀비 하운드 21966
116 버서크 구울 3692
116 좀비 나이트+ 3692
116 좀비 슬레이어 7384
116 블레이드 페리톤 7384
117 파쉬크(그레이 오크 메이지) 44676
118 놀 22524
119 포가르(그레이 오크) 45432
120 발루(레이크 자드) 45804
121 뱀파이어 서번트 3848
121 버서크 구울+ 7696
121 좀비 프라임 나이트 7696
121 놀 메이지 23088
121 아이스 바바야가 21966
124 브레이브 놀 23652
126 데스 솔져 4004
126 뱀파이어 서번트+ 8008
126 퓨리우스 구울 8008
126 피라우로(놀 메이지) 48048
127 브레이브 놀 메이지 24210
127 아이스 좀비 레이디 21966
127 스크리머 10983
127 아이스 구울 10983
127 아그리야(아이스 바바야가) 43932
130 트롤 24774
131 데스 자이언트 4160
131 데스 솔져+ 8320
131 뱀파이어 스튜어드 8320
131 하크(놀) 49920
132 레히피(브레이브 놀 메이지) 50292
133 하피 슬레이브 25332
133 아이스 구울 워리어 21966
133 크림슨 배트 10983
133 아넬리온(아이스 좀비 레이디) 43932
135 에르그두수(트롤) 51420
136 스펙터 3021
136 데스 자이언트+ 8632
136 데스 서전트 8632
136 하피 워리어 25896
136 프로즌 좀비 왓쳐 21966
138 에투르(하피 슬레이브) 52536
139 크루얼 하피 슬레이브 26460
139 블러디 배트 21966
139 뷔쉐크라(아이스 구울 워리어) 43932
141 레이스 3130
141 스펙터+ 4472
141 데스 자이언트 캡틴 8944
141 카쉬나르(하피 워리어) 53664
142 크루얼 하피 워리어 27018
145 오우거 27582
145 프로즌 좀비 파이터 21966
145 레트투스(블러디 배트) 43932
146 엘더 스펙터 9256
147 리크(크루얼 하피 워리어) 55908
148 미노타우루스 28140
150 좀비 워해머 왓쳐 21966
150 좀비 워해머 10983
150 좀비 워액스 왓쳐 21966
150 좀비 워액스 10983
150 좀비 크러쉬 왓쳐 21966
150 좀비 크러쉬 10983
150 하쉬나크(오우거) 57036
150 그리쉬나크(오우거) 57036
151 프로즌 좀비 슬래터 21966
151 프로즌 스톤 골렘 21966
151 엑시언 스톤 골렘 43932
151 피어스 좀비 하운드 43932
151 프로즌 워리어 43932
157 프로즌 좀비 나이트 21966
157 프로즌 슬레이어 43932
160 좀비 워해머 캡틴 43932
160 좀비 워액스 캡틴 43932
160 좀비 크러쉬 캡틴 43932
163 프로즌 프라임 나이트 43932
163 플레시 골렘 43932
165 웨어울프 87864
165 페르츠 폰 자텔레르안 87864
168 지그드리스 파엘로(미노타우루스) 127536
170 좀비 제네럴 87864
174 리버스 페르츠 폰 자텔레르안 87864
175 메르가헤프 87864

데미지 계산공식 출저 :
http://www.playforum.net/cabal/board.comm?action=read&iid=10452003&pageNo=3&num=2412&query=%EB%8D%B0%EB%AF%B8%EC%A7%80&field=all
몬스터 레벨 자료 출저 :
http://cabal.g-report.com/bbs/board.php?bo_table=cabal_tip&wr_id=888&sca=&sfl=wr_subject&stx=%B7%B9%BA%A7&sop=and

Hello World on PSP

Recentely, I am interesting in PSP CFW(Playstation Portable Custom FirmWare)
So I tried to make homebrew for PSP.

I was going to google to find PSP SDK (Software Developer Kit) and finally, I found it.
If you who read this post need it, go to http://sourceforge.net/project/showfiles.php?group_id=114505

To execute “Hello World” Program in PSP, you need a source code as follow.

——————————————————————————-

#include <pspkernel.h>
#include <pspdebug.h>

#define TRUE 1
#define FALSE 0
#define printf pspDebugScreenPrintf

PSP_MODULE_INFO(“Xeriars”, 0, 1, 1);
PSP_MAIN_THREAD_ATTR(THREAD_ATTR_USER | THREAD_ATTR_VFPU);

int g_bExit = FALSE;

int ExitcallBack(int arg1, int arg2, void *common);

int main (int argc, char *argv[]) {
int cbid; // Callback ID

pspDebugScreenInit();

cbid = sceKernelCreateCallback(“Exit Callback”, ExitCallBack, NULL);
sceKernelRegisterExitCallback(cbid);

printf(“Hello Worldn”); // LCD Display

while(g_bExit == FALSE);
sceKernelExitGame();
return 0;
}

int ExitcallBack(int arg1, int arg2, void *common) {
printf(“%x %x”, arg1, arg2);
g_bExit = TRUE;
return 0;
}

——————————————————————————-

And you must compile it to get EBOOT.PBP
EBOOT.PBP is equivalent *.EXE on Windows OS. It will be executed in PSP
First, save(=overide) it at C:devkitProdevkitPSPpspsdksamplestemplateelf_templatemain.c

Second, we are readied for compile. Click the Button Start -> Run -> cmd.exe
and type a command as follow

——————————————————————————-
cd
cd devkitProdevkitPSPpspsdksamplestemplateelf_template
make
——————————————————————————-
If you are setted nomally, you will get a EBOOT.PBP
At Last, Copy your EBOOT.PBP at ms0:/psp/game/test and run in PSP

Congratulation. lol

헬파이어 데미지 계산기 – 개발중지

바람의 나라를 접게되어 개발이 중지 되었습니다.최근에 바람의나라 동향을 살펴보니
주술사 계열의 대표마법인 헬파이어가 업그레이드 가능하도록 패치되었다.

이에 따라 공식과 쿨타임이 달라지게 되었는데, 오늘 토요일이고 하니 잠깐 짬을 내서 비베로 계산기를 만들어 보았다.
비베를 오랜만에 써서그런지 기억도 잘 안나고.. 많이 까먹은 상태에서 만들어서 버그도 있을지 모르겠다.

나중에 시간이 또 나면 바람의나라 종합계산기 for GUI 0.3 에 나머지 마법을 추가하여 배포할 예정.



계산이 가능한 마법 목록.

헬파이어
지옥염화
지옥진화
지옥멸화
지옥겁화
삼매진화
삼매멸화
삼매겁화

File Information.

원본 파일명 : Hellfire.exe
원본 파일 크기 : 28,672 bytes
CRC-32 : 00BFF5D6
MD5 : 25933394986493BB179C74D7B4179C0C
SHA1 : 37DBF05715EF186EE61EA017206B933B1839F7B1

위 정보와 다른 파일이라면 변형되었을 가능성이 있으므로 주의.

만약 vb6ko.dll을 찾을수 없다는 메시지가 나올 경우는 vb6ko.dll 파일을 c:windowssystem32에 복사한다.

Conveyor Calculator for Windows



Conveyor 설계시 구동하기 위해서 Sprocket의 치수(齒數)를 결정해야하는데,
매번 계산기를 두들기는게 귀찮아서 만든 프로그램.

필수입력사항 부분에 간단히 필요한 숫자만 넣어주면 나머진 자동으로 계산해서 알려준다.

일반적으로는 계산하기 버튼만 누르면 맨 위에 있는 textbox에 결과값이 나오며
실제 속도를 보정하고 싶을때 Sprocket만 조정하여 주면 되므로
(다른 값을 바꾸려면 필수 입력사항 값을 변화 해주면 되며
이때 필수 입력 사항의 “Sprkt1 치수” 의 값은 무시 된다.)
Sprkt1,2의 값을 적절히 바꾸면 원하는 속도값을 얻을 수 있다.



계산 공식
컨베이어 속도  = Motor RPM / 감속비 * 3.14 * ØD1 * (Sprkt1 / Sprkt2)

convcal

(클릭하면 다운로드 받습니다.)

만약 vb6ko.dll을 찾을수 없다는 메시지가 나올 경우는 다음 파일을 c:windowssystem32에 복사한다.

vb6ko

(클릭하면 다운로드 받습니다.)

Ver 0.2 수정사항.

1. 속도보정계산시 필수입력사항의 스프라켓 치수에 영향을 받던 문제 해결.
2. 속도보정계산시 애러메시지가 없어서 강제종료 되던문제 해결.
3. 결과삭제버튼 추가.

버그문의는 댓글로..
이 프로그램은 제작자 허락없이 배포는 가능하나 출처를 남겨주시고 판매하는 것은 금합니다.

바람의나라 종합계산기 for GUI ver 0.2 – 개발중지



바람의 나라를 접게되어 개발이 중지되었습니다.

바람의나라 종합계산기가 두번째 버전으로 업데이트 하였습니다.

업데이트 사항

1) 일부 제기되었던 버그 수정.
2) 내구보호율 계산기능 구현.
3) 강화 성공율 계산기능 구현.

파일 위조 방지용 코드 (이 코드와 소지중인 파일의 코드가 잘못되었다면 위,변조된것이므로 해킹파일 주의.)
파일 크기 : 120KB (122,880 바이트)
CRC-32 : 60E1767C
MD5 : 17A04DC2E69BB3F40F44A569C68CDBF7
SHA-1 : 1E1AD46F2D8426C85984877EF63AF6BBA8D3DF7D
(인터넷에서 CRC 체크 관련을 찾아보시면 됩니다.)

bcalc

(클릭하시면 다운로드 받습니다.)

만약 vb6ko.dll을 찾을수 없다는 메시지가 나올 경우는 다음 파일을 c:windowssystem32에 복사한다.

vb6ko

(클릭하시면 다운로드 받습니다.)

고전적인 C언어 프로그램… 구구단!

예전에 C언어 수업을 들을때 작성한 프로그램이다.

수업시간에 예제 실습하라길래 귀찮은 내용이고 해서

다음시간까지 제출해야할 구구단을 출력하는 프로그램(리포트)을 작성하고 있다가

괜시리 교수한테 걸려서 세로열로 그냥 쭉 구구단을 출력하는 프로그램이 아닌

구구단을 가로로 출력하도록 만들도록 특별히 주문(?) 받았다..-_-;;

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main() {

int i,j,times;
system(“cls”);
for(i=1;i<=9;i++) {
for(j=2;j<=5;j++) { // 2~5단까지 구한다.
times = j * i;
if (j == 5) printf(“%d * %d = %dn”, j,i,times);
/* 첫번째 턴에서의 마지막단은 5단이므로
n으로 줄바꿈을 해주어야 단수가 밀리지 않고 출력된다. */
else printf(“%d * %d = %dt”, j,i,times);
}
}
printf(“n”);
for(i=1;i<=9;i++) {
for(j=6;j<=9;j++) { // 6~9단까지 구한다.
times = j * i;
if (j == 9) printf(“%d * %d = %dn”, j,i,times);
else printf(“%d * %d = %dt”, j,i,times);
}
}
getch(); // windows 체제에서 도스창이 한번 껌뻑이고 끝내는것을 막기 위함.
return 0;
}

음음.. 고전이야 고전…
간단하게 이중루프를 이용해서 나타내었다.

[펌] 10000000까지의 소수 표와, 구하는 프로그램의 속도를 높여보자.

10000000까지의 소수는 직접 적어드릴수는 없습니다.

10000000까지의 소수의 개수는 정확하게  664579개입니다.

이 글에서는, 소수 구하는 프로그램 소스는 가르쳐 드리지 않습니다.

중간중간에 써드리는 소스 만으로도 충분히 짜맞추실수 있기 때문이죠.

소수 구하는 법을 아시는 분만 보시기 바랍니다.

C++ 배우시는 분들이라면 소수 구하기는 80% 이상 해보셨을 겁니다.

일반적으로, 100 정도밖에 안 구해 보셨을텐데요..

그렇기 때문에 속도 차가 별로 나지가 않죠.

하지만, 구하는 범위가 아주 넓어진다면 어떨까요??(이런.. 드라군 놀이가 생각나는걸..)

시간차가 많이 날겁니다.

죄송한 말씀이지만, C++를 처음 다루시는 분들이라면 정중히 뒤로 버튼을 누르라고 할께요.

소수 구하는 프로그램을 짤때의 실수 유형을 봅시다!

[1차원 배열을 사용해서 푸는 분들..]

배열을 사용하는 방법은 작은 수에서는 상관이 없지만,

10만이 넘어가는 경우에는 오류가 납니다.

배열을 쓰시면 안되고, Check라는 변수를 만드세요!

Check=0;

if(i%j==0) Check=1;

Check방을 0으로 초기화합니다. 그리고, i를 j로 나눕니다(꼭 i, j가 아니여도 됩니다.)

그리고, i를 j로 나눴을대 나머지가 0이라면 결국 나누어 떨어진다는 말이므로,

Check방을 1로 만듭니다. 그리고 그 아래부분에 이런 코드를 삽입해보죠.

if(Check==1) break;

한번이라도 나누어 떨어졌다면, 밖으로 튕겨 버리세요.

(계속 해봤자 소수가 아니기 때문에 시간 낭비입니다.)

그러면, 본격적으로 들어갑시다!

[나누는 수를 몇까지 해야 할까?]

일반적으로 소수는 에라토스테네스의 체 방법을 사용하죠.

하지만, 이 방법은 시간이 조금 오래 걸린다는 단점이 있습니다.

하지만, 가장 쉬운 방법이기도 하죠.

쉽고, 빠르게 하는 방법이 있을까요?

예! 있죠, 나누는 수의 범위를 바꿉시다.

다음 코드를 볼까요?

for(i=2;i<=10000000;i++){
check=0;
for(j=2;j<=i;j++){

check방은 아까 설명 드렸을 겁니다. 초기화 시키는 것이죠.

다중 for문을 사용했는데요, i 나누기 j 를 해서 값을 구할 것입니다.

초보자 분들이시라면 저렇게 짜셨을 겁니다.

그러면, for(j) 부분을 살펴 봅시다~!

그 부분이 나누는 수 부분이 되겠지요.

소수를 판별하려면 어디까지 다 나눠보아야 할까요?

5라는 수가 있습니다. 일반적으로, 이 수가 소수인지 아닌지 판별하려면

2부터 4까지 모두 나눠보게 되죠.

(자기 자신과 1은 나누어 떨어지기 때문에 생략해야 합니다.)

5÷2, 5÷3, 5÷4    <= 3번 계산을 하게 됩니다.

물론, 3번 정도야 0.01초도 안걸리지만, 숫자가 무지하게 커진다면 어떨까요?

저같은 경우는 1000만까지의 소수를 구해보려고 합니다.

1000만개를 모두 나눠 보아야 할텐데, 언제 다 하겠습니까..

그래서, 더 효과적인 방법을 찾아보자는 겁니다.

1. for(j=2;j<=i/2;j++)

이 방법은 아까 전보다는 시간을 2배 절약할 수 있습니다.

이 방법도 정답이 틀리지는 않죠.

왜냐하면, 어떤 수의 2분의 1보다  약수는 1개밖에(자기 자신) 없기 때문이죠.

어떤 수의 2분의 1보다 큰 약수가 2개라면

1개는 자기 자신이고, 나머지 1개는 어떤수의 2분의 1보다는 큰수.

0

정도로 식이 만들어지겠네요.

j 의 값들 중에서, 자연수는 존재하지가 않기 때문에, 이렇게 해도 된다는 것입니다.

하지만, 이것보다 효과적인 방법이 있을까요?

예! 있습니다!

바로, 그 수의 제곱근 까지만 구해보면 됩니다.

이것은 제가 직접 증명은 못해드리지만, 적당히 해보시면 답이 똑같다는 것을 알수 있습니다.

제곱근은  대략 √  요녀석을 말합니다.

제곱근 함수를 쓰시려면, #include 로 하나를 더 불러와야 하는데요,

math.h  를 불러와야 합니다.

#include[math.h] 처럼요.

[는 <로 바꿔주셔야 하는거 아시죠?

sqrt(a)

라고 쓰시면, a 의 제곱근이 구해집니다.

그러면, 이렇게 변신하겠죠.

for(j=2;j<=sqrt(i);j++){

그러면 얼마나 속도가 향상될까요?

제가 위의 세방법의 시간을 모두 재봤습니다.

1번째 방법 : 측정 불가 (1시간 이상)

2번째 방법 : 27분

3번째 방법 : 1분 24초 -_-;;

엄청난 차이가 있습니다.

프로그래밍을 잘하려면 수학적 능력도 필요하다는 것을 절실히 느끼게 해주는 문제이네요.

심심해서 만든 바람의나라 종합계산기 – 개발중지



바람의나라를 접게되어 개발 중지 되었습니다.

뭐 심심해서 만들어본 바람의나라 종합계산기다.
공식은 인터넷에 있길래 요즘 학교에서 c도 배우고 있겠다 싶어서 만들어보았다.

흠흠.. 약간 어설픈감이 있긴하다만 그냥저냥 괜찮게 쓸수 있을듯.

소스파일은 다음과 같다. (혹시 읽기 불편하신분은 첨부파일 참고)

#include <stdio.h>
#include <math.h>

int def,cont,select,mleft,vtype;
float dcalc,fst_flr,snd_flr,thd_flr,health,mana,clr_flr,calcsum,exresult,excalc,extime,tdiv;
long damre,dam = 1000000;

int main () {
system(“cls”);
printf(“tt바람의나라 종합 계산기 by 혈폭사신(Xeriars) – Ver 0.1bnnnn”);
mainm:
printf(“[1] 방어력 계산기n”);
printf(“[2] 천명 경험치 계산기n”);
printf(“[3] 공성 경험치 계산기n”);
printf(“[4] 비율 계산기n”);
printf(“[0] 종료nn”);
printf(“사용하시려는 계산기 번호를 입력하세요. : “);
scanf(“%d”, &select);
selectob:
// 방어력 계산기
if (select == 1) {
system(“cls”);
printf(“[1] 방어력 계산기nn”);
input:
printf(“현재방어력을 입력하여 주십시요. : “);
scanf(“%d”, &def);
if (def > 200 || def < -200) {
printf(“입력범위를 초과하셨습니다. 범위는 -200 ~ +200까지 입니다.n”);
goto input;
}

dcalc = 100 – pow((double)(def + 200) / 20,2);
damre = dam – (dam * (dcalc / 100));

printf(“방어력이 %d일때는 %f%의 감소율이 생기며n”, def, dcalc);
printf(“데미지 %ld을 받았을때 %ld만큼의 데미지만 받습니다.n”, dam, damre);
goto checkcon;
}
if (select == 2)
{
system(“cls”);
printf(“[2] 천명 경험치 계산기nn”);
recalc:
printf(“현재 체력을 입력하여 주십시요. : “);
scanf(“%f”, &health);
printf(“현재 마력을 입력하여 주십시요. : “);
scanf(“%f”, &mana);
if ((health + mana*2) > 6150000 || (health + mana*2) < 0 )
{
printf(“계산할수 있는 입력범위를 초과하셨습니다. 다시 입력하여 주십시오.n”);
goto recalc;
}
printf(“체력 : %ld 마력 : %ldn”, (long)health, (long)mana);
fst_flr = (health * 2 + mana * 3.4) * 4 * 16;
snd_flr = (health * 2 + mana * 3.4) * 8 * 16;
thd_flr = (health * 2 + mana * 3.4) * 12 * 16;
clr_flr = (health * 2 + mana * 3.4) * 250;
calcsum = (fst_flr + snd_flr + thd_flr + clr_flr) / 100000000;
printf(“첫번째 스테이지 클리어시 %ld의 경험치를 받고n”, (long)fst_flr);
printf(“두번째 스테이지 클리어시 %ld의 경험치를 받고n”, (long)snd_flr);
printf(“세번째 스테이지 클리어시 %ld의 경험치를 받고n”, (long)thd_flr);
printf(“천명 퀘스트 클리어시 %.0lf의 추가경험치를 받아n”, (double)clr_flr);
printf(“총 %f억의 경험치를 얻습니다.n”, calcsum);
goto checkcon;
}
if (select == 3)
{
system(“cls”);
printf(“[3] 공성 경험치 계산기nn”);
recal:
printf(“현재 체력을 입력하여 주십시요. : “);
scanf(“%f”, &health);
printf(“현재 마력을 입력하여 주십시요. : “);
scanf(“%f”, &mana);
if ((health + mana*2) > 6150000 || (health + mana*2) < 0 )
{
printf(“계산할수 있는 입력범위를 초과하셨습니다. 다시 입력하여 주십시오.n”);
goto recal;
}
rein:
printf(“탁조,연노차,발석차인경우 1, 충차인경우 2를 입력하여 주십시오. : “);
scanf(“%d”, &vtype);
if (vtype != 1 && vtype != 2)
{
printf(“입력이 올바르지 않습니다.n”);
}
printf(“몇분동안 공성경험치를 얻을것인지 입력하여 주십시오. : “);
scanf(“%d”, &mleft);
printf(“몇초당 한발을 쏘실것인지 입력하여 주십시오. (소수입력가능) : “);
scanf(“%f”, &tdiv);
printf(“체력 : %ld 마력 : %ldn”, (long)health, (long)mana);
extime = mleft * 60;
if (vtype == 1) {
excalc = (health * 2 + mana * 3.4);
exresult = (excalc * (extime / tdiv)) / 100000000;
printf(“탁조,연노차,발석차인경우 한발당 %.0f의 경험치를 얻으며n”, excalc);
printf(“%d분동안 돌릴시 총 경험치는 %.0f억의 경험치를 얻습니다. n”, mleft, exresult);
goto checkcon;
}
if (vtype == 2) {
excalc = (health * 2 + mana * 3.4) * 2;
exresult = (excalc * (extime / tdiv)) / 100000000 ;
printf(“충차인경우 한발당 %.0f의 경험치를 얻으며n”, excalc);
printf(“%d분동안 돌릴시 총 경험치는 %.0f억의 경험치를 얻습니다. n”, mleft, exresult);
goto checkcon;
}
}
if (select == 4)
{
int contype,cratio,cash;
float cratio2,cashre;
printf(“[4] 비율 계산기nn”);
retype:
printf(“바돈 → 캐시 환산은 1번, 캐시 → 바돈 환산은 2번을 입력하여 주십시오 : “);
scanf(“%d”, &contype);
if (contype != 1 && contype != 2)
{
printf(“입력이 올바르지 않습니다.n”);
goto retype;
}
if (contype == 1)
{
printf(“캐시로 환산할 바돈금액을 입력하여 주십시오. : “);
scanf(“%d”, &cash);
printf(“바돈비율1을 입력하여 주십시오. (300:1.1이면 300입력) : “);
scanf(“%d”, &cratio);
printf(“바돈비율2을 입력하여 주십시오. (300:1.1이면 1.1입력, 소수입력가능) : “);
scanf(“%f”, &cratio2);
cashre = (cash * cratio2) / cratio;
printf(“바돈가격이 %d원이고 비율이%d:%.2f 일때n” ,cash,cratio,cratio2);
printf(“캐시로 환산하면 %.0f전 입니다.n” ,cashre);
goto checkcon;
}
if (contype == 2)
{
printf(“바돈으로 환산할 캐시금액을 입력하여 주십시오. : “);
scanf(“%d”, &cash);
printf(“캐시비율1을 입력하여 주십시오. (300:1.1이면 300입력) : “);
scanf(“%d”, &cratio);
printf(“캐시비율2을 입력하여 주십시오. (300:1.1이면 1.1입력) : “);
scanf(“%f”, &cratio2);
cashre = cash * cratio / cratio2;
printf(“캐시가격이 %d원이고 비율이%d:%.02f 일때n” ,cash,cratio,cratio2);
printf(“바돈으로 환산하면 %.0f전 입니다.n” ,cashre);
goto checkcon;
}
}
if (select == 0)
{
goto eof;
}
else { printf(“입력하신 번호가 올바르지 않습니다.n”);
goto mainm;
}
checkcon:
printf(“계속 계산 하시려면 1, 메인메뉴는 9, 종료는 0번을 입력하세요. : “);
scanf(“%d”, &cont);
if (cont == 1) { goto selectob; }
if (cont == 9) { goto mainm; }
if (cont == 0) { goto eof; }
if (cont != 1 && cont != 9 && cont != 0) {
printf(“입력하신 번호가 올바르지 않습니다.n”);
goto checkcon;
}
eof:
printf(“nn** 이용하여 주셔서 감사합니다! ** n”);
return 0;
}