바로 숫자야구!
숫자야구가 무었이냐구요?
0~9까지 중복을 허용하지 않는 숫자중에 자신이 예측하는 3개의 숫자를 입력합니다. 입력한 숫자와 컴퓨터가 생성한 숫자가 같으면 스트라이크로
값만 있고 위치가 다르면 볼 로 해서 사용자에게 결과를 알려줍니다. 이 정보로 추측하여 세 숫자와 그 위치까지 맞추면 게임이 끝납니다.
한번의 게임에 총 10번의 시도를 할 수 있습니다.
1.메서드의 값을 전달하는 방법(Call by Value, Call by Reference)
정말정말 중요한 것이 나왔습니다! 아마 신입 프로그래머로 회사에 들어갈때 대부분 물어보는 문제중 하나일 거에요!
값전달과 방식?참조 전달 이라고 하는 것 인데요
Call by Value는 그 메서드 내에서만 값이 바뀌고 그 메서드가 끝나면? 값이 다시 원래대로 돌아옵니다
Call by reference는 메서드 안에서 바뀐 값이 끝까지 계속 영원히 바뀌는 것을 말합니다. 이것은 소스 코드를 보시면서 꼭!!! 이해하세요!
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 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace CallTest { class Program { public Program() { } void callbyValue(int a) { a = a * 2; } void callbyrefTest(int[] data) { for(int i= 0;i<3;i++) { data[i] = data[i] * 2; } } void run() { int[] mydata; int a; a = 3; mydata = new int[3]; mydata[0] = 1; mydata[1] = 2; mydata[2] = 3; callbyValue(a); Console.WriteLine(a); //그대로 3 callbyrefTest(mydata); // 1 ,2,3이 2,4,6,으로 바뀌어 있다 for (int i = 0; i < 3; i++) { Console.WriteLine(mydata[i]); } } static void Main(string[] args) { Program p = new Program(); p.run(); } } } | cs |
특히 두번째 Call by Reference로 위 코드에서 run 메서드에서 callbyref메서드를 호출해서 값을 배열로 받는 경우입니다.
그래서 출력도 for문을 이용해서 배열로 했구요!
2. 프로그램을 설게하는 요령
동일한 것을 만들더라도 코드에서 각각 사람들의 개성이 나타납니다. 그래서 코딩을 기술의 영역에서 예술의 영역으로 보는 분들도 계십니다.
이렇게 프로그램을 설계하는데 있어서 좋은말이 있어서 가져옵니다.
첫 번째 기능 스펙을 명확하게 해야 합니다. 어떤 기능이 어떠한 방식으로 구현되어야 하는지를 정의하는 것입니다(이것은 프로그램을 사용하는 사용자의 요구에 따라서 결정됩니다.)
두 번째 재료를 설계해야 하는데 이때 클래스를 설계하고 그 대략적 기능을 정의합니다. 이후 클래스 메서드, 전역변수를 정의합니다.
세 번째 main 메서드에서 설계된 클래스를 이용해서 프로그램을 구현해 봅니다. 이때 두 번째로 돌아가서 설게를 보정합니다.
네 번째 모든 메서드에 대해서 상호관계 인터페이스가 완료되면 각 클래스의 메서드를 구체적으로 구현합니다.
'Visual C# > Universal App' 카테고리의 다른 글
12. C# 강좌 행맨 Hangman (1) 알아야 할 것들 (0) | 2015.10.24 |
---|---|
11. C# 강좌 숫자 야구(2) (0) | 2015.10.21 |
9. C# 강좌 가위 바위 보 (2) (2) | 2015.10.20 |
8. C# 강좌 가위 바위 보 (1) 알아야 할 것들 (0) | 2015.10.20 |
7. C# 강좌 로또번호 만들기!(2) (0) | 2015.10.20 |