[C#] 숫자 야구 게임
⚾게임설명
숫자야구란 감춰진 3개의 숫자가 무엇인지 맞추는 게임이다.
🤙 규칙
- 3자리 숫자와 위치가 모두 맞으면 성공
- 숫자는 1~9까지 구성되어 있으며, 각 숫자는 중복이 불가능
- 숫자와 자리의 위치가 맞으면 strike, 숫자만 맞고 위치가 다르다면 ball
- 숫자가 하나도 맞지 않을 경우 out
📌 SOURCE CODE
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace baseball { 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(); char[] inputArr = new char[3]; inputArr = input.ToCharArray(); // 입력한 숫자를 배열에 한글자씩 담아줌 // for(int i =0; i < input.Length; i++) // { // inputArr[i] = char.Parse(input.Substring(i, i + 1)); // } int inputNum = 0; if (!int.TryParse(input, out inputNum) || (inputNum < 100 || inputNum > 999)) { Console.WriteLine("잘못된 값을 입력하셨습니다. 3자리의 정수를 써주세요"); continue; } // 입력한 숫자가 중복되는지 확인 if (inputArr[0].Equals(inputArr[1]) || inputArr[1].Equals(inputArr[2]) || inputArr[0].Equals(inputArr[2])) { Console.WriteLine("중복된 값을 입력하셨습니다. 중복되지 않은 숫자 3자리를 입력해주세요"); continue; } // 정답을 맞췄을 경우 while문 종료 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++; } } } 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; } } }
Author And Source
이 문제에 관하여([C#] 숫자 야구 게임), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@h9s10/C-숫자-야구-게임저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)