티스토리 뷰
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 | class Program { static void Main(string[] args) { Test test = new Test(); } } class Test { int[] answer; public Test() { SetAnswer(); Console.WriteLine("숫자야구게임입니다. 세자리수를 입력해서 숫자를 맞춰주세요!"); while (true) { Console.Write("입력 : "); string input = Console.ReadLine(); int inputNum =0; if (!int.TryParse(input, out inputNum) || (inputNum <100 || inputNum > 999)) { Console.WriteLine("잘못된 값을 입력하셨습니다. 3자리의 정수를 쓰세요!"); continue; } if (IsCorrectAnswer(inputNum)) { Console.WriteLine("정답입니다!!"); Console.ReadKey(); break; } } } public void SetAnswer() { int k = 0; answer = new int[3]; while (k < 3) { bool isSet = true; answer[k] = new Random().Next(1, 10); for (int i = k - 1; i >= 0; i--) { if (answer[k] == answer[i]) { isSet = false; break; } } if (isSet) { k++; } } } /// <summary> /// 콘솔에 점수 표시하고 만약 정답이면 true를 리턴함 /// </summary> /// <param name="inputNum">세자리정수여야함 무조건!</param> /// <returns>정답이면 true</returns> public bool IsCorrectAnswer(int inputNum) { int s = 0; int b = 0; int[] input = { inputNum % 10, (inputNum / 10) % 10, (inputNum / 100) % 10 }; for (int i = 0; i < 3; i++) { for (int j = 0; j < 3; j++) { if (input[i] == answer[j]) { if (i == j) { s++; } else { b++; } } } } Console.WriteLine($"스트라이크 : {s} 볼 : {b}"); if (s == 3) { return true; } return false; } } | cs |
간략한 느낌으로 만들어봤습니다.
숫자 다루는 걸 좀 예쁘게 잘하고 싶은데 괜찮은지 모르겠네요~~~
배열에다가 넣어서 해보았습니다
C#은 역시 좋은 언어에요
알아보기가 쉽거든요.
그냥 익숙해서 그럴지도..
'개발일기 > C#' 카테고리의 다른 글
[콘솔] 입력받은 값으로 구구단을 계산해주자~ (0) | 2018.09.10 |
---|---|
반복문에 대해서 주절거린 거 저장함. (0) | 2018.09.10 |
람다식 기초 (0) | 2018.09.05 |
비주얼 스튜디오 자주쓰는 단축키 정리 (ver 0.1) (1) | 2018.08.29 |
C#에서의 자주쓰는 형변환에 대해서 알아봅시다. (0) | 2018.08.24 |
댓글