C#/수업내용
2020-04-08 [switch / enum] _001
NexTin
2020. 4. 8. 18:48
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
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Study_005
{
class APP
{
// (0: 월, 1:화 , 2:수, 3:목, 4:금, 5:토, 6:일)
enum days //변수명 상수명 되도록 영어로 적기 한글로 적엇다가 수정함
{
Monday,
Tuesday,
Wednesday,
Thursday,
Friday,
Saturday,
Sunday
}
public APP()
{
Console.WriteLine("2020-04-08");
//줄넘기를 몇회 하시겠습니까? 3
//줄넘기를 1회 했습니다.
//줄넘기를 2회 했습니다.
//줄넘기를 3회 했습니다.
//줄넘기를 몇회 하시겠습니까? 0
// 줄넘기 회수는 0보다 커야 합니다.
// 줄넘기를 몇회 하시겠습니까? 2
// 줄넘기를 1회 했습니다.
// 줄넘기를 2회 했습니다.
// 줄넘기를 몇회 하시겠습니까? -1
// 줄넘기를 총 5회 했습니다.
// 줄넘기를 종료 합니다.
// 1. 이걸 종료 하려면 -1이 입력되면 탈출/종료 됨
// 2. 그리고 현재 지금까지 한 횟수가 카운트 되고 있음 ++ 필요한거 같음
// 3. 간단하게 생각해서 0을 적었을 경우는 0보다 커야한다고 표기되어야 함
//int targetCount = 0; //입력한 목표 줄넘기 횟수
//int totalCount = 0; //누적된 줄넘기 횟수
//while (true)
//{
// Console.Write("줄넘기를 몇회 하시겠습니까?");
// var input = Console.ReadLine();
// targetCount = Int32.Parse(input); // 적은 줄넘기 횟수 4
// //totalCount += targetCount; (1)
// //totalCount = totalCount + targetCount;
// for (int i = 0; i < targetCount; i++)
// {
// Console.WriteLine("줄넘기를 {0} 회 했습니다." , i+1);
// // 적은 값들이 저장되어야함 ㅁ += ㅇ 을 써야할거 같음
// // 적은 줄넘기 횟수 누적이 필요함
// // totalCount 값이 누적되어야함
// // 여러가지 표현 방법이 있고, 그중 하나 (1)을 써보려했으나
// // 입력값이 -1 일 경우 -1 도 카운터 하게 되어 for 문안에 식을 적어둠
// totalCount += 1;
// //totalCount = totalCount + 1;
// //
// //totalCount++;
// }
// //탈출조건 = 입력값 -1
// if ( input == "-1" )
// {
// Console.WriteLine("줄넘기를 총 {0}회 했습니다", totalCount);
// break;
// }
// if ( input == "0" || targetCount < 0)
// {
// Console.WriteLine("줄넘기 횟수는 0보다 커야합니다. ");
// }
//}
//Console.WriteLine("줄넘기를 종료합니다.");
////--------------------------------------------------------------------------------------------------------------------------
///
//캐릭터 이름 : knight
//애니메이션 이름1 : idle
//애니메이션1 총 프레임 : 5
//애니메이션 이름2 : attack
//애니메이션2 총 프레임: 6
//애니메이션을 실행하시려면 애니메이션 이름을 입력하세요. idle
//kight_idle_001
//kight_idle_002
//kight_idle_003
//kight_idle_004
//kight_idle_005
//knitght_idle animation complete.
//애니메이션을 실행하시려면 애니메이션 이름을 입력하세요.attack
//knight_attack_001
//knight_attack_002
//knight_attack_003
//knight_attack_004
//knight_attack_005
//knight_attack_006
//knitght_attack animation complete.
//knight_idle_001
//knight_idle_002
//knight_idle_003
//knight_idle_004
//knight_idle_005
//knitght_idle animation complete.
// 1. 단순하게 생각해서, 우선 각 프레임은 정해진 값이고
// 2. 특정 값 입력 시 재생? 쭉 나열 되는 것
// 3. 변수명이 좀 많음 각각 해야할거 같음
// 어택이란걸 입력후 다시 첫번째도 다시 시작되어야 함
// 그럼 5짜리 프레임은 계속 반복되고 있는것
// 그중에 02 어택 프레임이 입력되면 어택 프레임 출력 후 다시 기본 프레임 출력
// 이번문은 탈출할코드를 적을 필요는 없는거 같음
//var name = "kight";
//var anime01 = "idle";
//int anime01Frame = 5;
//var attackAnime02 = "attack";
//int anime02frame = 6;
////Console.Write("애니메이션을 실행하시려면 애니메이션 이름을 입력하세요");
////var input = Console.ReadLine();
//while (true)
//{
// Console.Write("애니메이션을 실행하시려면 애니메이션 이름을 입력하세요. ");
// var input = Console.ReadLine();
// if (input == anime01 )
// {
// for (int i = 0; i < anime01Frame; i++)
// {
// Console.WriteLine("{0}_{1}_{2}", name, anime01, (i+1).ToString("000"));
// }
// Console.WriteLine("knight_idle_animation complete.\n");
// }
// else if (input == attackAnime02 )
// {
// for (int i = 0; i < anime02frame; i++)
// {
// Console.WriteLine("{0}_{1}_{2}", name, attackAnime02, (i+1).ToString("000"));
// }
// Console.WriteLine("knight_attack animation complete.\n");
// for (int i = 0; i < anime01Frame; i++)
// {
// Console.WriteLine("{0}_{1}_{2}", name, anime01, (i+1).ToString("000"));
// }
// Console.WriteLine("knight_idle animation complete.\n");
// }
// if ( input == "종료")
// {
// break;
// }
//}
////------------------------------------------------------------------------------
//유닛명: SCV
//이동 명령어: left 횟수, right 횟수 (최대3)
//유닛의 초기 위치: (0, 0)
//유닛을 이동하려면 명령어를 입력 하세요. left 3
//(0, 0)
//(-1, 0)
//(-2, 0)
//(-3, 0)
//유닛을 이동하려면 명령어를 입력 하세요. righ 2
//(-3, 0)
//(-2, 0)
//(-1, 0)
//유닛을 이동하려면 명령어를 입력 하세요. righ 1
//(-1, 0)
//(0, 0)
// 지금은 간단하게 생각해서 오른쪽 왼쪽으로 이동한다라고 생각을 하자
// 1. 왼쪽을 적을때 , 2. 오른쪽을 적을때 로 나눌 수 있다
// 유닛의 좌표 표기를 위해 현재 위치를 계속 카운팅(계산)할 필요가 있다.
// 문자열 적은걸 나눠서 확인해야한다
// var arr = item.Split(' ');
// string itemName = arr[0];
// string singleCmd = arr[1];
//var unit = "SCV";
//int posX = 0;
////
//Console.WriteLine("유닛명 : {0} ", unit);
//Console.WriteLine("이동 명령어 : left 횟수, right 횟수 (최대 3)");
//Console.WriteLine("유닛의 초기 위치 : ({0},0)", posX);
//// 저기 위치만 움직이니 저기에 변수선언을 했고, 저 부분은 계속 누적되서 계산되어야함.
//while (true)
//{
// Console.Write("유닛을 이동하려면 명령어를 입력하세요. "); // 명령어 입력 한뒤 문자열 나누기
// var input = Console.ReadLine();
// var arr = input.Split(' ');
// string cmdway = arr[0]; // 이건 가려는 방향
// string cmdmove = arr[1]; // 이거는 가려는 만큼의 수
// // 근데 위에는 문자열 값임, 이걸 숫자열 값으로 변경해줘야함
// int move = Int32.Parse(cmdmove);
// // 현재 위치 기억하기 (연산된 작업 기억하고 있기)
// // posX += move;
// // 이게 되어야하는데 입력값은 정수인데 레프트라면 음수 계산을 해줘야하는데???
// // posX += 1;
// // 이건 어떨까?
// // 뜯었을때 cmd 방향이 왼쪽일때 오른쪽일때
// //마지막으로 이동한 위치 = 현재 위치 이니까 계산 전에 위에 표기하기 위해 여기에 적음
// Console.WriteLine("({0} , 0)", posX);
// if (cmdway == "left") // 레프트는 왼쪽이니 "음수"계산
// {
// for (int i = 0; i < move; i++) // 이렇게 적으면 무한히 음수로 증가함
// {
// posX -= 1;
// Console.WriteLine("({0} , 0)", posX);
// }
// }
// else if (cmdway == "right") // 오른쪽은 양수계산이 이루어져야 함
// {
// for (int i = 0; i < move; i++)
// {
// posX += 1;
// Console.WriteLine("({0} , 0)", posX);
// }
// }
//}
// 위와 동일하나 Y 축을 추가해보려고 함 ++
// 추가 기재로 (-4. 0) 위치에 장검이 있음
// 그 위치에서 습득 후 다시 가게 되면 없다거나, 아무런 메세지가 표현 안되게, 지나치게 표현하려함
// 필드 추가도 해보자 5X5 최대 5인 맵
//var unit = "SCV";
//int posX = 0;
//int maxX = 5;
//int posY = 0;
//int maxY = 5;
//Console.WriteLine("유닛명 : {0} ", unit);
//Console.WriteLine("이동 명령어 : left 횟수, right 횟수, up 횟수, down 횟수 (최대 5)");
//Console.WriteLine("유닛의 초기 위치 : ({0},{0})", posX , posY);
//while (true)
//{
// Console.Write("유닛을 이동하려면 명령어를 입력하세요. ");
// var input = Console.ReadLine();
// var arr = input.Split(' ');
// string cmdway = arr[0]; // 이건 가려는 방향
// string cmdmove = arr[1]; // 이거는 가려는 만큼의 수
// // 근데 위에는 문자열 값임, 이걸 숫자열 값으로 변경해줘야함
// int move = Int32.Parse(cmdmove);
//// 뜯었을때 cmd 방향이 왼쪽일때 오른쪽일때
////최대 5... 5이상이 되면 안되는 의미이나 어디에 부여할지 고민중
//// 위치표기는 위치 계산 전에 판단되어야함
//// 이로 인해 그 위치는 위치 이동하기전에 이루어져야하므로 위치 계산 전에 이루어져야 함
////마지막으로 이동한 위치 = 현재 위치 이니까 계산 전에 위에 표기하기 위해 여기에 적음
// if (cmdway == "left")
// {
// //for (int i = 0; i < move; i++)
// //{
// // if ( move > 5 || posx > 5 || posx < -5 || m) // 5 x 5의 제한을 두고 싶음
// // //
// // {
// // console.writeline("이동할수없습니다");
// // break;
// // }
// // posx -= 1;
// // console.writeline("({0} , {1})", posx , posy);
// //}
// }
// else if (cmdway == "right")
// {
// for (int i = 0; i < move; i++)
// {
// posX += 1;
// Console.WriteLine("({0} , {1})", posX , posY);
// }
// }
// if (cmdway == "up")
// {
// for (int k= 0; k < move; k++)
// {
// posY += 1;
// Console.WriteLine("({0} , {1})", posX , posY);
// }
// }
// if (cmdway =="down")
// {
// for (int k = 0; k < move; k++)
// {
// posY -= 1;
// Console.WriteLine("({0} , {1})", posX, posY);
// }
// }
//}//while
// if - else >> 비교하여 실행 하는 것
// switch 도 비교문인데 대게 switch는 3개 이상의 조건을 비교 할때 사용을 많이 함
//상품 목록
//"장검", "단검", "활", "도끼"
//구매 하고자 하는 아이템 이름을 입력하세요. "장검"
//"장검"을 구매했습니다.
//구매 하고자 하는 아이템 이름을 입력하세요. "대검"
//"대검"은 없습니다.
//>>> switch 하나 if 하나
//switch 문
//Console.WriteLine("상품 목록");
//Console.WriteLine("\"장검\", \"단검\", \"활\", \"도끼\"");
//while (true)
//{
// Console.Write("구매 하고자 하는 아이템 이름을 입력하세요. ");
// var item = Console.ReadLine();
// switch (item)
// {
// case "장검":
// Console.WriteLine("\"{0}\"을 구매 했습니다.", item);
// break;
// case "단검":
// Console.WriteLine("\"{0}\"을 구매 했습니다.", item);
// break;
// case "활":
// Console.WriteLine("\"{0}\"을 구매 했습니다.", item);
// break;
// case "도끼":
// Console.WriteLine("\"{0}\"을 구매 했습니다.", item);
// break;
// default:
// Console.WriteLine("\"{0}\"은 없습니다.", item);
// break;
// }
//}
//// if문 >> if문 {} 의 경우 한줄이면 안적어도 되지만 적는 버릇 하자
//Console.WriteLine("상품 목록");
//Console.WriteLine("\"장검\", \"단검\", \"활\", \"도끼\"");
//while (true)
//{
// Console.Write("구매 하고자 하는 아이템 이름을 입력하세요. ");
// var item = Console.ReadLine();
// if (item == "장검")
// {
// Console.WriteLine("\"{0}\"을 구매 했습니다.", item);
// }
// else if (item == "단검")
// {
// Console.WriteLine("\"{0}\"을 구매 했습니다.", item);
// }
// else if (item == "활")
// {
// Console.WriteLine("\"{0}\"을 구매 했습니다.", item);
// }
// else if (item == "도끼")
// {
// Console.WriteLine("\"{0}\"을 구매 했습니다.", item);
// }
// else
// {
// Console.WriteLine("\"{0}\"은 없습니다.", item);
// }
//}
//// (0: 월, 1:화 , 2:수, 3:목, 4:금, 5:토, 6:일)
//// 요일을 입력해주세요. 0
////---> 0, 월요일
//while(true)
// {
// Console.WriteLine("(0: 월, 1:화 , 2:수, 3:목, 4:금, 5:토, 6:일)");
// Console.Write("요일을 입력해주세요 : ");
// var day = Console.ReadLine();
// switch (day)
// {
// case "0":
// Console.WriteLine("-----> {0}, 월요일", day);
// break;
// case "1":
// Console.WriteLine("-----> {0}, 화요일", day);
// break;
// case "2":
// Console.WriteLine("-----> {0}, 수요일", day);
// break;
// case "3":
// Console.WriteLine("-----> {0}, 목요일", day);
// break;
// case "4":
// Console.WriteLine("-----> {0}, 금요일", day);
// break;
// case "5":
// Console.WriteLine("-----> {0}, 토요일", day);
// break;
// case "6":
// Console.WriteLine("-----> {0}, 일요일", day);
// break;
// default:
// Console.WriteLine("다시 입력해주세요 : ");
// break;
// }
//}
//// const >> 변수를 상수로 박아버림
//// 열거형 활용하여 만들기 ! 맨 위로
////var day = (days)0;
////Console.WriteLine(days.Sunday);
////Console.WriteLine(day);
//var input = Console.ReadLine();
////문자열 -> 숫자 >>> 입력한 값을 숫자로 만들었음
//var dayNum = int.Parse(input);
//// 숫자-> 열거형 >>> 그 숫자 값을 days에 목록에 맞는 걸로
//var day = (days)dayNum;
//switch (day)
//{
// case days.Monday:
// Console.WriteLine(days.Monday);
// break;
// case days.Tuesday:
// Console.WriteLine(days.Tuesday);
// break;
//}
////--------------------------------------------------------
//열거형 Weapons를 정의
//sword
//bow
// axe 가 있음
//(0: sord, 1: bow, 2: axe)
//착용하시려는 아이템을 입력하세요. 2
//axe를 착용했습니다.
}
}
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter
|