연습문제 (1)

단국대학교 멀티미디어공학전공 HCI프로그래밍 II (2010년 가을학기) 연습

□ 단원 : C# 기초

□ 목표 : C# 프로그램 기초

□ 주요 연습 내용 : Visual Studio 2008, C# 입출력, 연산자, 변수, 제어문 사용 연습

□ 준비자료 : ScissorRockPaper.cs

연습문제 Ex1 (Due by 9/28 화 24시까지)

-cyber 강의실 (cyber.dku.edu)로 source code, executable file, solution/project VC# file, 보고서를 학번_이름_Ex1.zip으로 묶어서 낼 것. 보고서 (30%)

[연습문제]

1. 가위바위보 게임 프로그램 ScissorRockPaper 클래스를 작성하라. 이름(name)과 이긴 숫자(numWin)를 가진 게임 플레이어(Player) 구조체를 사용한다.  (30%)

- public enum Game { 가위=1, 바위=2, 보=3 };를 사용

- static Game GetRandomHand() 함수는 1,2,3 중 하나의 난수를 발생하여 enum type인 Game 값을 반환

+ 힌트: Random 클래스를 사용하여 1,2,3 중 하나의 난수를 발생시킴

- static Game GetHandByKeyboard() 함수는 키보드로 1(가위),2(바위),3(보)를 받아서 처리하여 enum type인 Game 값을 반환

+ 가위바위보 입력은 1,2,3 integer 값만을 입력받도록 해야 함

+ 힌트: while 문을 사용하여 1,2,3 integer가 아닌 경우 다시 입력을 받음

+ 힌트: Console.ReadLine() 함수는 string을 반환하므로, int로 변환하기 위하여

Parse 함수 사용 => intValue = int.Parse(string)

+ 힌트: TryParse 함수는 string을 integer로 변환이 가능하면, out 매개변수로 변환된

값을 전달해 주고, true boolean 값을 반환  => boolValue = int.TryParse(string,

out intValue)

- static void PrintWinner(Player player1, Player player2) 함수는 삼세판 가위바위보 게임하고 난 뒤 최종으로 승리한 사람이 누구인지 화면에 출력

+ 힌트: Player 구조체의 numWin이 더 큰 수를 가진 사람이 게임을 이긴다.

2. Main 함수에서는 2명의 게임 플레이어 객체를 생성하고 (1명은 컴퓨터이고, 다른 1명은 본인이 키보드로 입력함), 가위바위보 게임을 진행하는 routine을 추가한다. (20%)

- 힌트: GetHandByKeyboard와 GetRandomHand로 나온 바위>가위>보>바위를 판단함

- 힌트: do..while 문을 사용하여 만약 둘이 비긴 경우 계속 입력을 받도록 함

- 힌트: for 문을 사용하여 삼세판 가위바위보 게임을 진행함

- 힌트: 한 게임마다 이겼을 경우 Player 구조체의 numWin을 증가시킴

3. Main 함수에서 본인이 더 테스트해보고 싶은 ScissorRockPaper 클래스의 Method나 routine을 추가하라. (20%)