본문 바로가기
컴퓨터/C#

[C#] 숫자 맞추기 게임 - C# GUI 개발 - C# 게임 만들기 - Windows Forms Application 으로 간단한 게임 개발

by HanJoohyun 2018. 6. 6.
반응형

 

 


안녕하세요 한주현 입니다

여러분들 잘 지내시나요? 
저는 요새 생각하는 기능들이 들어있고, 생각하는 대로 척척 잘 만들어 주는 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 를 누르시면 됩니다

한주현 드림







반응형

댓글