using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Study_004
{
class APP
{
public APP()
{
Console.WriteLine("2020-04-07 \n\n");
//영웅의 공격력은 몇입니까(1~5)? -1
//범위를 벗어났습니다.
//영웅의 공격력은 몇입니까(1~5)? 10
//범위를 벗어났습니다.
//영웅의 공격력은 몇입니까(1~5)? 3
//영웅의 공격력은 3 입니다.
//몬스터의 체력은 몇입니까(10~20)? 9
//범위를 벗어났습니다.
//몬스터의 체력은 몇입니까(10~20)? 21
//범위를 벗어났습니다.
//몬스터의 체력은 몇입니까(10~20)? 10
//몬스터의 체력은 10 입니다.
//몬스터를 공격하시려면 '공격'을 입력하세요. 공걱
//잘못된 명령어 입니다.
//몬스터를 공격하시려면 '공격'을 입력하세요. 공격
//몬스터를 공격 (-3) 했습니다. (7/10)
//몬스터를 공격하시려면 '공격'을 입력하세요. 공격
//몬스터를 공격 (-3) 했습니다. (4/10) >> 이게 된다면 랜덤수로 크리티컬10% 추가 - 3.3
//몬스터를 공격하시려면 '공격'을 입력하세요. 공격
//몬스터를 공격 (-3) 했습니다. (1/10)
//몬스터를 공격하시려면 '공격'을 입력하세요. 공격
//몬스터를 공격 (-3) 했습니다. (0/10)
//몬스터가 쓰러졌습니다.
//int herohit;
//int monsterHP;
//string monsterMAXHP;
//
//for (; ; )
//{
// var hero = Console.ReadLine();
// if (herohit < 1 || herohit > 5)
// {
// Console.WriteLine("범위를 벗어났습니다.");
// }
// else
// {
// Console.WriteLine("영웅의 공격력은 {0} 입니다.", herohit);
// break;
// }
//}
//for (; ; )
//{
// monsterMAXHP = Console.ReadLine();
// if (monsterHP < 10 || monsterHP > 20)
// {
// Console.WriteLine("범위를 벗어났습니다.");
// }
// else
// {
// Console.WriteLine("몬스터의 체력은 {0} 입니다.", monsterMAXHP);
// break;
// }
//}
//for (; ; )
//{
// Console.WriteLine("몬스터를 공격하시려면 '공격'을 입력하세요. ");
// var attack = Console.ReadLine();
// if (attack == "공격")
// {
// // 몬스터의 체력이 0보다 클경우에는 공격 한다.
// if (monsterHP > 0)
// {
// //몬스터 체력에서 공력격 뺀만큼을 몬스터의 체력 변수 할당
// monsterHP = monsterHP - herohit;
// //몬스터의 남은 체력 전체체력 출력 필요
// // 몬스터 체력이 0보다 작거나 같다면 몬스터의 체력을 0으로 할당
// if (monsterHP <= 0)
// {
// monsterHP = 0;
// }
// Console.WriteLine("몬스터를 공격 (-{0}) 했습니다. ({1}/{2})", herohit, monsterHP, monsterMAXHP);
// //이걸하고나서 몬스터의 체력이 0이거나 0보다 작을 경우 몬스터는 쓰러진다.
// if (monsterHP <= 0)
// {
// break;
// }
// // 상기 두개 조건이 같아서 같이 써야되는게 아닐까 집착했으나, 차례대로 할 필요가 있어 같아도 달리 적을 필요가 있음
// }
// else
// {
// Console.WriteLine("잘못된 명령어 입니다.");
// }
// }
//}
//Console.WriteLine("몬스터가 쓰러졌습니다.\n");
////몬스터가 아이템(장검)을 떨어트렸습니다.
////아이템을 주우시려면 '장검 집어'를 입력하세요. 단검집어
////단검이라는 아이템은 없습니다.
//Console.WriteLine("몬스터가 아이템(장검)을 떨어트렸습니다.");
//for (; ; )
//{
// var item = Console.ReadLine();
// string itemName = arr[0];
// string singleCmd = arr[1];
// // var itemName = arr[0];
// // var singleCmd = arr[1];
// // 1.다른 단어가 들어왔을때 2.장검이라고 말을 했을때
// if (item == "장검 집어")
// {
// Console.WriteLine("장검을 획득 했습니다.");
// break;
// }
// // 이제 각각 단어가 다를때 분류해서 읽어내고 출력해야한다?
// if (arr[0] != "장검")
// {
// Console.WriteLine("{0}이라는 아이템은 없습니다.", itemName);
// if (arr[1] != "집어")
// {
// Console.WriteLine("{0}라는 라는 명령어는 없습니다.", singleCmd);
// }
// }
// // 두개 다 동시에 잘못적었을때
// if ( arr[0] == "장검")
// {
// if (arr[1] != "집어")
// {
// Console.WriteLine("{0}라는 라는 명령어는 없습니다.", singleCmd);
// }
// }
//}
//
//크리티컬은 50% 이고 공격력의 10%를 반영 합니다.
//소수점은 2자리까지 표시 해주세요
//우선 고정값을 주고 생각을 해보자
// 여기서 고정값은 공격력 과 몬스터의 체력만 고정값으로 생각하고
// 변수는 크리티컬의 확률, 그리고 증가한 공격력으로 인한 소수점 발생
/*
int monsterMAXHP2 = 200;
float monsterHP2 = 200;
float attack2 = 10;
//크리터졌을때 변수 선언
float criticalhit = attack2 + (attack2 * 0.01f);
monsterHP2 -= criticalhit;
//크리티컬 확률값 생성 (난수 생성 1~100)
//생성된 난수의 값이 50보다 크다면 클티컬이라 본다
//영웅의 공격력 10%를 더하여 몬스터의 체력에서 뺸다.
//생성된 난수가 50보다 작다면 통상공격
//크리티컬의 유무는 bool 식으로도 표현가능
var rand = new Random();
if (criticalPer > 50)
{
//크리티컬 공격
monsterHP2 = monsterHP2 - (attack2 + (attack2 * 0.1f));
} */
////Random rand = new Random();
////for (; ; )
////{
//// if (critical >= 50)
//// {
//// Console.WriteLine("크리티컬히트! {0} 데미지! ({1)/{2})", criticalhit, monsterHP2 -= criticalhit, monsterMAXHP2);
//// }
//// else
//// {
//// Console.WriteLine("통상공격 {0}/{1}", monsterHP2 -= attack2, monsterMAXHP2);
//// }
////}
//// 소수점 원하는만큼
//float hp = 25.2345f;
//Console.WriteLine(str);
//int n = 0;
//while (n < 5)
//{
//}
//줄넘기를 몇회 하시겠습니까? 3
//줄넘기를 1회했습니다.
//줄넘기를 2회했습니다.
//줄넘기를 3회했습니다.
//줄넘기를 마쳤습니다.
//Console.WriteLine("줄넘기를 몇회 하시겠습니까?");
////입력을 받는다.
//var input = Console.ReadLine();
////입력된 문자열 값을 숫자값으로 변환 (최대값을 확인,비교하기위해)
//int count = 0;
//while (true)
//{
// // 카운터를 센다
// count++;
// // 줄넘기 했습니다 출력
// Console.WriteLine("{0}회 줄넘기를 했습니다." , count);
// // 목표 카운트 보다 카운트가 클경우 멈춤
// if (count >= targetCount)
// {
// Console.WriteLine("줄넘기를 마쳤습니다.");
// break;
// }
//}
// 출력하고 싶은 구구단의 단수를 입력하세요. 2
// 2X1 = 2 ~~~~
// 2X9 = 18
// 출력하고 싶은 구구단의 단수를 입력하세요. -1
// 구구단 프로그램을 종료합니다.
//1.단수 입력
// 2.입력된 단수만큼 9까지 계산 하는걸 출력
// 3.다시 반복하게 표현
// 4.음수 적을 시 종료 출력, 계산 X
//while (true)
//{
// var input = Console.ReadLine();
// //단수는 dan 곱하는 9까지의수는 N
// if (dan < 0)
// {
// Console.WriteLine("구구단 프로그램을 종료합니다.");
// break;
// }
// for (int n = 1; n < 10; n++)
// {
// int result = dan * n;
// Console.WriteLine("{0}X{1} = {2}", dan, n, result);
// }
//}
////// 참고사항
////무한반복
//while (true)
//{
// //탈출 방법
// break;
//}
////유한반복
//for (int i = 0; i < 9; i++)
//{
//}
//영웅의 공격력은 몇입니까(1~5)? -1
//범위를 벗어났습니다.
//영웅의 공격력은 몇입니까(1~5)? 10
//범위를 벗어났습니다.
//영웅의 공격력은 몇입니까(1~5)? 3
//영웅의 공격력은 3 입니다.
//while (true)
//{
// if (attack > 0 && attack < 6)
// {
// Console.WriteLine("영웅의 공격력은 {0} 입니다.", attack);
// break;
// }
// else
// {
// Console.WriteLine("범위를 벗어났습니다.");
// }
//}
//실행할 애니메이션의 이름을 적으세요. idle
//애니메이션의 total 플임은 몇프레임 입니까(6~30)? 6
//애니메이션을 실행하시려면 'Play'라고 입력하세요 Play
//idle 1프레임을 실행
//idle 2프레임을 실행
//idle 3프레임을 실행
//idle 4프레임을 실행
//idle 5프레임을 실행
//idle 6프레임을 실행
//idle 애니메이션 실행을 완료했습니다.
//var title;
//int frame;
// 애니메이션 이름은 적어서 표출 되면 됨
// 토탈프레임을 입력 받고 그만큼 출력되어야함
// Play 라고 적어야 출력이 되어야함
// var title = Console.ReadLine();
// while (true)
// {
// var totalframe = Console.ReadLine();
// var start = Console.ReadLine();
// if (start == "Play" )//&& totalframe > 5 && totalframe < 31)
// {
// for (int i = 0; i > frame; i++)
// {
// Console.WriteLine("{0} {1}프레임을 실행", title, frame);
// }
// break;
// }
// }
//Console.WriteLine("{0} 애니메이션 실행을 완료 했습니다.", title);
//string animName = "idle";
//int totalFrame = 15;
//int currentFrame = 0;
//while (true)
//{
// currentFrame++;
// Console.WriteLine("{0}의 {1}프레임 실행", animName, currentFrame);
// //탈출
// if (currentFrame >= totalFrame)
// {
// break;
// }
//}
//Console.WriteLine("애니메이션 종료");
//string anime = "Attack";
//int totalFrame = 10;
//int currentFrame = 0;
//// 6프레임 "이얍" 표기
//while (true)
//{
// currentFrame++;
// if (currentFrame != 6)
// {
// Console.WriteLine("{0} {1} Frame", anime, currentFrame);
// }
// else// if (currentFrame == 6)
// {
// Console.WriteLine("이얍!");
// }
// if (currentFrame >= totalFrame)
// {
// break;
// }
//}
//Console.WriteLine("Attack 애니메이션 플레이를 완료 했습니다.");
// 애니메이션의 이름 Attack
//Attack 애니메이션의 total frame은 몇입니까? 10
//Attack 애니메이션의 타격 frame은 몇입니까 ? 6
//Attack 애니메이션의 타격 프레임때 쓸 이펙트 효과는? "이얍!"
//애니메이션을 실행하시려면 Play를 입력 하세요 Play
//Attack 1 frame
//Attack 2 frame
//Attack 3 frame
//Attack 4 frame
//Attack 5 frame
//이얍!
//Attack 7 frame
//Attack 8 frame
//Attack 9 frame
//Attack 10 frame
//Attack 애니메이션 플레이를 완료 했습니다.
//string anime = "Attack";
//var totalframe = Console.ReadLine(); //처음 받는 문자 값
//int frame = 0;
//string effect = Console.ReadLine(); // 표현하려고 하는 값
//string start = Console.ReadLine();
//////---------------------------------------------------------------------------- 다른값들어와도 그냥 재생됨. play만 인식해보기
//while (true)
//{
// frame++;
// if (frame == attackframe)
// {
// Console.WriteLine(effect);
// }
// else
// {
// Console.WriteLine("{0} {1} frame", anime, frame);
// }
// if (frame > allframe)
// {
// break;
// }
//}
//Console.WriteLine("애니메이션 플레이 완료");
////------------------------------------------------------------------------------
//while (true)
//{
// frame++;
// if (frame == attackframe)
// {
// Console.WriteLine(effect);
// }
// else
// {
// Console.WriteLine("{0} {1} frame", anime, frame);
// }
// if (frame > allframe)
// {
// break;
// }
//}
//Console.WriteLine("애니메이션 플레이 완료");
//// 추가
//// 줄넘기를 몇회 하시겠습니까? 3
//// 줄넘기를 1회 합니다.
//// 줄넘기를 2회 합니다.
//// 줄넘기를 3회 합니다.
//// 대게 while 의 경우 무기한 반복을 할때,
//// for 의 경우 반복의 값이 정해져있을때 사용하는게 좋음
//int targetCount = 3;
//for (int i = 0; i< targetCount; i++)
//{
// Console.WriteLine("{0}회 줄넘기를 했습니다,", i + 1);
//}
//// for 문으로 쓸수있긴함 유한한 반복이 필요할때 쓰기 좋음
//int count = 0; // 줄넘기 횟수 누적시킬 변수
//while (true)
//{
// count++;
// if (count > targetCount)
// {
// break;
// }
// Console.WriteLine("{0}회 줄넘기를 했습니다.", count);
//}
//// 이런 형식으로 다른 예제를 계속 새로 만들면서 작성 해볼 수 있도록 하기
//// 이 틀 자체는 굉장히 많이 쓰여서 익숙해지는 필요가 있음
// 줄넘기를 몇회하시겠습니까? -1
// 줄넘기를 몇회 하시겠습니까? 3
// 이하 N 회 했습니다. 출력
// 줄넘기를 종료했습니다.
// 무한히 반복된다? 하단 프레임 먼저 적고 생각해보자
//while(true)
//{
// //탈출
//}
//while(true)
//{
// //1.탈출 조건 : 입력한 값이 0보다 클 경우
//}
////2. 입력한 횟수만큼 줄넘기를 함
//if (true)
//{
// //만약에 ~ 한다면
//}
//else
//{
// // 그렇지 않다면
//}
//// 우선 틀을 잡고 한글로 적은 다음 선생님께 이게 맞는 생각인지 말해보자
}
}
}