C#/수업내용

2020.04.07. 수업내용 - 소수점 자리 나타내기, 크리티컬 데미지(for, if)

dev_sr 2020. 4. 7. 12:55

 

 

1. 영웅의 공격력 범위를 설정한다(범위를 벗어나면 계속 요청한다)

2. 몬스터의 체력 범위를 설정한다(범위를 벗어나면 계속 요청한다)

3. 50% 확률로 크리티컬 데미지(+10%)가 적용된다 (Random)

4. 소수점은 2번째 자리까지 나타낸다 (String.Format({0:00#}))

5. '문자열 띄어쓰기 문자열' 을 입력받아 정확하게 '장검 집어'를 입력하지 않을 경우 계속 요청한다.(Split)

 

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
            //1. 영웅의 공격력, 몬스터 체력 범위 설정(맞을때까지) / 몬스터 공격 입력/크리티컬 데미지
 
 
            float damage = 0f;
            float monsterMaxHp = 0f;
 
 
            for (; ; )
            {
                Console.Write("영웅의 공격력은 몇입니까 (1~5)?  ");
                damage = Int32.Parse(Console.ReadLine());
 
                if (damage >= 1 && damage <= 5)
                {
                    Console.WriteLine("영웅의 공격력은 {0} 입니다. ", damage);
                    break;
                }
 
                else
                {
                    Console.WriteLine("범위를 벗어났습니다");
                    continue;
                }
 
            }
 
 
            for (; ; )
            {
                Console.Write("몬스터의 체력은 몇입니까? (10~20) ");
                monsterMaxHp = Int32.Parse(Console.ReadLine());
 
                if (10 > monsterMaxHp || 20 < monsterMaxHp)
                {
                    Console.WriteLine("범위를 벗어났습니다.");
                    continue;
                }
 
                else
                {
                    Console.WriteLine("몬스터의 체력은 {0} 입니다", monsterMaxHp);
                    break;
                }
 
 
            }
 
            float monsterHp = monsterMaxHp;
 
 
 
            for (; ; )
            {
 
                Random random = new Random();
                int critical = random.Next(02);
 
                Console.Write("몬스터를 공격하시려면 '공격'이라고 입력하세요 ");
                var attackOrder = Console.ReadLine();
 
                if (attackOrder == "공격")
                {
 
                    if (critical == 0)
                    {
                        monsterHp -= damage * 1.1f;
 
                        if (monsterHp <= 0)
                        {
                            monsterHp = 0;
                            string output3 = String.Format("몬스터를 쎄게 공격(-{0})했습니다. ({1:0.00#}/{2})", damage * 1.1f, monsterHp, monsterMaxHp);
                            Console.WriteLine(output3);
                            Console.WriteLine("몬스터가 쓰러졌습니다");
 
                            break;
                        }
 
 
                        string output1 = String.Format("몬스터를 쎄게 공격(-{0})했습니다. ({1:0.00#}/{2})", damage * 1.1f, monsterHp, monsterMaxHp);
                        Console.WriteLine(output1);
                    }
 
                    else if (critical == 1)
                    {
                        monsterHp -= damage;
 
 
                        if (monsterHp <= 0)
                        {
                            monsterHp = 0;
                            string output4 = String.Format("몬스터를 공격(-{0})했습니다. ({1:0.00#}/{2})", damage, monsterHp, monsterMaxHp);
                            Console.WriteLine(output4);
                            Console.WriteLine("몬스터가 쓰러졌습니다");
                            break;
                        }
 
                        string output2 = String.Format("몬스터를 공격(-{0})했습니다. ({1:0.00#}/{2})", damage, monsterHp, monsterMaxHp);
                        Console.WriteLine(output2);
 
                    }
 
 
                }
 
                else
                {
                    Console.WriteLine("잘못된 명령입니다");
                    continue;
                }
 
            }
 
            Console.WriteLine("몬스터가 아이템(장검)을 떨어트렸습니다. ");
 
            for (; ; )
            {
                Console.Write("아이템을 획득하시려면 '장검 집어' 라고 입력하세요 ");
                var itemOrder = Console.ReadLine();
 
                var str = itemOrder.Split(' ');
 
                string tool = str[0];
                string act = str[1];
 
 
                if (itemOrder == "장검 집어")
                {
                    Console.WriteLine("장검을 획득했습니다.");
                    break;
                }
                if (tool != "장검")
                {
                    Console.WriteLine("{0} 이라는 아이템은 없습니다", tool);
 
                }
                if (act != "집어")
                {
                    Console.WriteLine("{0} 라는 명령어는 없습니다 ", act);
 
                }
 
            }
 
 

 

 

 

결과 값