ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 004 [2020-04-07] while / for
    C#/수업내용 2020. 4. 7. 18:54
    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
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
    370
    371
    372
    373
    374
    375
    376
    377
    378
    379
    380
    381
    382
    383
    384
    385
    386
    387
    388
    389
    390
    391
    392
    393
    394
    395
    396
    397
    398
    399
    400
    401
    402
    403
    404
    405
    406
    407
    408
    409
    410
    411
    412
    413
    414
    415
    416
    417
    418
    419
    420
    421
    422
    423
    424
    425
    426
    427
    428
    429
    430
    431
    432
    433
    434
    435
    436
    437
    438
    439
    440
    441
    442
    443
    444
    445
    446
    447
    448
    449
    450
    451
    452
    453
    454
    455
    456
    457
    458
    459
    460
    461
    462
    463
    464
    465
    466
    467
    468
    469
    470
    471
    472
    473
    474
    475
    476
    477
    478
    479
    480
    481
    482
    483
    484
    485
    486
    487
    488
    489
    490
    491
    492
    493
    494
    495
    496
    497
    498
    499
    500
    501
    502
    503
    504
    505
    506
    507
    508
    509
    510
    511
    512
    513
    514
    515
    516
    517
    518
    519
    520
    521
    522
    523
    524
    525
    526
    527
    528
    529
    530
    531
    532
    533
    534
    535
    536
    537
    538
    539
    540
    541
    542
    543
    544
    545
    546
    547
    548
    549
    550
    551
    552
    553
    554
    555
    556
    557
    558
    559
    560
    561
    562
    563
    564
    565
    566
    567
    568
    569
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
     
    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 (; ; )
                //{
                //    Console.Write("영웅의 공격력은 몇입니까(1~5)?");
     
                //    var hero = Console.ReadLine();
                //    herohit = Int32.Parse(hero);
     
                //    if (herohit < 1 || herohit > 5)
                //    {
                //        Console.WriteLine("범위를 벗어났습니다.");
                //    }
                //    else 
                //    {
                //        Console.WriteLine("영웅의 공격력은 {0} 입니다.", herohit);
                //        break;
                //    }    
                //}
     
                //for (; ; )
                //{
                //    Console.Write("몬스터의 체력은 몇입니까?(10~20)");
     
                //    monsterMAXHP = Console.ReadLine();
                //    monsterHP = Int32.Parse(monsterMAXHP);
     
                //    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 (; ; )
                //{
                //    Console.Write("아이템을 획득하시려면 '장검 집어'를 입력하세요. ");
                //    var item = Console.ReadLine();
     
                //    var arr = item.Split(' ');
                //    string itemName = arr[0];
                //    string singleCmd = arr[1];
     
                //    // var arr = cmd.Split(' ');
                //    // 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();
               var criticalPer = rand.Next(100);
     
               if (criticalPer > 50)
               {
                   //크리티컬 공격
                   monsterHP2 = monsterHP2 - (attack2 + (attack2 * 0.1f));
               } */
     
     
                ////Random rand = new Random();
                ////int critical = rand.Next(100);
     
                ////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;
     
     
                //string str = string.Format("{0:f2}", hp);
                //Console.WriteLine(str);
     
     
                //int n = 0;
                //while (n < 5)
                //{
     
                //}
     
                //줄넘기를 몇회 하시겠습니까? 3
                //줄넘기를 1회했습니다.
                //줄넘기를 2회했습니다.
                //줄넘기를 3회했습니다.
                //줄넘기를 마쳤습니다.
     
                //Console.WriteLine("줄넘기를 몇회 하시겠습니까?");
                ////입력을 받는다. 
                //var input = Console.ReadLine();
                ////입력된 문자열 값을 숫자값으로 변환 (최대값을 확인,비교하기위해)
                //var targetCount = Int32.Parse(input);
                //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)
                //{
                //    Console.Write("출력하고 싶은 구구단의 단수를 입력하세요. ");
                //    var input = Console.ReadLine();
                //    var dan = Int32.Parse(input);
                //    //단수는 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)
                //{
                //    Console.Write("영웅의 공력력은 몇입니까(1~5)? ");
                //    var attack = Int32.Parse(Console.ReadLine());
                //    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 라고 적어야 출력이 되어야함 
     
                // Console.Write("실행할 애니메이션의 이름을 적으세요. ");
                // var title = Console.ReadLine();
                // while (true)
                // {
     
                //     Console.Write("애니메이션의 total 프레임은 몇 프레임 입니까(6~30)? ");
                //     var totalframe = Console.ReadLine();
                //     int frame = Int32.Parse(totalframe);
     
     
                //     Console.Write("애니메이션을 실행하시려면 'Play'라고 입력 하세요. ");
                //     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";
     
                //Console.Write("{0} 애니메이션의 total frame은 몇입니까? ", anime);
                //var totalframe = Console.ReadLine(); //처음 받는 문자 값 
                //var allframe = Int32.Parse(totalframe); //토탈 프레임 숫자값 
                //int frame = 0;
                //Console.Write("{0} 애니메이션 타격 frame 은 몇입니까?", anime);
                //Console.Write("{0} 애니메이션의 타격 프레임때 쓸 이펙트 효과는?", anime);
                //string effect = Console.ReadLine(); // 표현하려고 하는 값 
     
                //Console.Write("애니메이션을 실행하시려면 Play를 입력 하세요. ");
                //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
                //{
                //    // 그렇지 않다면 
                //}
     
     
                //// 우선 틀을 잡고 한글로 적은 다음 선생님께 이게 맞는 생각인지 말해보자 
     
     
     
     
     
            }
        }
    }
     
    http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
     

    'C# > 수업내용' 카테고리의 다른 글

    2020-04-08 _003  (0) 2020.04.08
    2020-04-08 _002  (0) 2020.04.08
    2020-04-08 [switch / enum] _001  (0) 2020.04.08
    003 [2020-04-06]  (1) 2020.04.06
    002 [2020-04-03]  (3) 2020.04.03
Designed by Tistory.