반응형
안녕하세요 한주현 입니다
여러분들 잘 지내시나요?
저는 요새 생각하는 기능들이 들어있고, 생각하는 대로 척척 잘 만들어 주는 C#의 매력에 빠져있습니다 ㅎㅎ
오늘은 C# GUI 인 Windows Forms Application 으로 간단하게 만들어 본
숫자 맞추기 게임을 살펴보겠습니다.
준비물
Visual Studio
1. 프로그램 논리, 디자인 및 완성된 모습
논리
1) 플레이어가 주어진 범위내의 숫자에서 하나를 맞춘다.
2) 숫자의 범위는 1 부터 레벨+2 사이의 랜덤으로 생성된 정수이다.
3) 정답을 맞추게 되면 레벨이 올라가게 된다.
4) 만약 플레이어가 입력한 값이 정답과 비교하여 낮거나 높으면 "Down" 또는 "Up" 을 메시지창으로 띄워준다.
디자인
게임의 진행을 알려주는 라벨
레벨을 표시하는 라벨
플레이어가 값을 입력할 텍스트박스
게임을 실행할 버튼
(선택적 사항) 정답 숫자를 랜덤으로 섞어주는 버튼
맨 처음 실행 시켰을 때 모습 ㅎㅎ
답을 맞추지 못했을 때
답을 맞춘 경우 ㅎㅎ
다음 레벨로 넘어갔을 때 모습
2. C# 코드
디자인에 따라 각 요소들을 배치 하시고 나서..
Program.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using System.Windows.Forms; namespace UpDown { static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } } } | cs |
Form1.cs
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 | using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace UpDown { public partial class Form1 : Form { Random rnd = new Random(); private int answer; private int level; private int upper; public Form1() { InitializeComponent(); level = 1; upper = level + 2; answer = rnd.Next(1, upper); label1.Text = "Select between 1 ~ " + (upper); label2.Text = "Level " + level; //MessageBox.Show(answer.ToString()); } private void goButton_Click(object sender, EventArgs e) { int userInput = int.Parse(textBox1.Text); if (userInput < answer) { MessageBox.Show("UP!"); } else if(userInput > answer) { MessageBox.Show("Down!"); } else { MessageBox.Show("Congratulations!! - Let's Go to Next Round"); level += 1; upper = level + 2; label1.Text = "Select between 1 ~ " + (upper); label2.Text = "Level " + level; answer = rnd.Next(1, upper); //MessageBox.Show(answer.ToString()); } } private void shuffleButton_Click(object sender, EventArgs e) { upper = level + 2; answer = rnd.Next(1, upper); //MessageBox.Show(answer.ToString()); } private void label2_Click(object sender, EventArgs e) { MessageBox.Show(answer.ToString()); } } } | cs |
label2에 클릭 이벤트를 넣은 것은 ㅎㅎ
이스터 에그 같이 답을 알아 낼 수 있는 숨겨진 기능입니다 ㅎㅎ;;
테스트 용으로 넣어 두었습니다 ㅎㅎ
오늘은 C#으로 숫자 맞추기 게임을 간단히 만들어 보았습니다
여러분들께 도움이 되셨음 좋겠네요 ㅎㅎ
- 참고
Document 는 우리의 언제나 늘 좋은 친구 ㅎㅎ
paypal 기부 버튼을 만들었습니다
여러분들의 작은 정성이 저에게 큰 힘이 됩니다
기부해주신 분들을 기억하며
더 좋은 내용으로 보답해 드리겠습니다 :)
Donate 버튼은 paypal 결제로 paypal 계정이 없으시더라도
카드로도 기부 가능하십니다 :)
Use your credit card or bank account (where available). 옆의 continue 를 누르시면 됩니다
한주현 드림
반응형
댓글