반응형
컴퓨터가 임의로 생성한 숫자를 맞히는 게임을 C#언어로 만들어 봅니다.
윈도우 응용 프로그램입니다.
1. 비주얼스튜디오를 실행합니다 - 여기서는 비주얼스튜디오 2022 버전을 사용했습니다.
2. 프로젝트를 생성합니다.
- Windows Forms 앱(.NET Framework)
3. 폼을 다음과 같이 디자인하고, 속성을 변경합니다.
폼 디자인
속성을 아래와 같이 변경합니다.
컨트롤 | 이름(Name) | 속성 |
라벨(label) | msg | Text: "msg" Font: Size:12, Bold:True |
텍스트 박스(TextBox) | txtInput | |
버튼(button) | btnOK btnStart |
Text: "확인" Text: "게임 시작" |
폼 | Form1 | Size: 360, 230 Text: "숫자 맞히기 게임" BorderStyle: FixedToolWindow |
디자인된 모양을 다음과 같습니다.
4. 코드를 작성합니다.
폼과 [게임 시작] 버튼을 더블 클릭해서 아래의 코드를 작성합니다.
namespace GuessNumber
{
public partial class Form1 : Form
{
int computerNumber = 0;
int count = 0;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
msg.Text = "[게임 시작] 버튼을 클릭하세요.";
}
private void btnStart_Click(object sender, EventArgs e)
{
// 게임 시작
Random r = new Random();
computerNumber = r.Next(1, 101); // 1 ~ 100 사이의 난수 생성
count = 0;
txtInput.Enabled = false; // 입력을 못하게 합니다. [게임 시작]을 누르면 입력 가능...
}
}
}
[확인] 버튼을 더블클릭해서, 다음 코드를 작성합니다.
private void btnOK_Click(object sender, EventArgs e)
{
if (txtInput.Text.Trim() == "")
{
msg.Text = "1~100 사이의 숫자를 입력하세요.";
txtInput.Focus();
return;
}
int n = int.Parse(txtInput.Text);
if (n == computerNumber)
{
msg.Text = "정답입니다.";
}
else if (n < computerNumber)
{
msg.Text = "더 큰수를 입력하세요.";
}
else
{
msg.Text = "더 작은 수를 입력하세요.";
}
count++;
if(count >10)
{
msg.Text = "맞히지 못했습니다.";
txtInput.Enabled = false;// 입력을 못하게 설정
}
}
혹시 빠지 코드가 있는지 몰라서 전체 코드를 보여줍니다.
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 GuessNumber
{
public partial class Form1 : Form
{
int computerNumber = 0;
int count = 0;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
msg.Text = "[게임 시작] 버튼을 클릭하세요.";
txtInput.Enabled = false;
}
private void btnStart_Click(object sender, EventArgs e)
{
// 게임 시작
Random r = new Random();
computerNumber = r.Next(1, 101); // 1 ~ 100 사이의 난수 생성
count = 0;
txtInput.Enabled = true;
}
private void btnOK_Click(object sender, EventArgs e)
{
if (txtInput.Text.Trim() == "")
{
msg.Text = "1~100 사이의 숫자를 입력하세요.";
txtInput.Focus();
return;
}
int n = int.Parse(txtInput.Text);
if (n == computerNumber)
{
msg.Text = "정답입니다.";
}
else if (n < computerNumber)
{
msg.Text = "더 큰수를 입력하세요.";
}
else
{
msg.Text = "더 작은 수를 입력하세요.";
}
count++;
if(count >10)
{
msg.Text = "맞히지 못했습니다.";
txtInput.Enabled = false;// 입력을 못하게 설정
}
}
}
}
(결과 화면)
[실행파일 다운로드]
- 실행 환경: 윈도우 10, 11 이상
반응형
'C#' 카테고리의 다른 글
(C#) 2진수, 8진수, 16진수로 다양하게 출력하기 (0) | 2023.06.24 |
---|---|
(C#) 액세스(Access database, .accdb) 데이터 가져오기 (0) | 2023.06.24 |
(C#) 윈폼 프로젝트 생성하기 (0) | 2023.06.24 |
(C#) ListView 실행시간에 마우스로 열 순서 변경하기 (0) | 2023.06.22 |
(C#) Access 데이터베이스에서 조건에 날짜를 사용하는 SQL 구문 (0) | 2023.06.17 |