ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 심심해서 만든 바람의나라 종합계산기 - 개발중지
    바람의 나라 2007. 3. 30. 12:12
    반응형

    사용자 삽입 이미지

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

    뭐 심심해서 만들어본 바람의나라 종합계산기다.
    공식은 인터넷에 있길래 요즘 학교에서 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("\t\t바람의나라 종합 계산기 by 혈폭사신(Xeriars) - Ver 0.1b\n\n\n\n");
     mainm:
     printf("[1] 방어력 계산기\n");
     printf("[2] 천명 경험치 계산기\n");
     printf("[3] 공성 경험치 계산기\n");
     printf("[4] 비율 계산기\n");
     printf("[0] 종료\n\n");
     printf("사용하시려는 계산기 번호를 입력하세요. : ");
     scanf("%d", &select);
     selectob:
     // 방어력 계산기
     if (select == 1) {
      system("cls");
      printf("[1] 방어력 계산기\n\n");
      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] 천명 경험치 계산기\n\n");
      recalc:
      printf("현재 체력을 입력하여 주십시요. : ");
      scanf("%f", &health);
      printf("현재 마력을 입력하여 주십시요. : ");
      scanf("%f", &mana);
      if ((health + mana*2) > 6150000 || (health + mana*2) < 0 )
      {
       printf("계산할수 있는 입력범위를 초과하셨습니다. 다시 입력하여 주십시오.\n");
       goto recalc;
      }
      printf("체력 : %ld 마력 : %ld\n", (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] 공성 경험치 계산기\n\n");
      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 마력 : %ld\n", (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] 비율 계산기\n\n");
      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("\n\n** 이용하여 주셔서 감사합니다! ** \n");
     return 0;
    }

    반응형

    댓글 4

Copyright 2006-2021. Xeriars.com All rights reserved .