게임을 주제로 MAUI(.NET Multi-platform App UI) 애플리케이션을 만들고 싶으신가요? 다양한 게임 유형이 있지만, 여기서는 간단한 "숫자 맞추기 게임"을 구현하는 방법을 설명하겠습니다. 이 게임에서는 사용자가 컴퓨터가 무작위로 생성한 숫자를 추측하게 됩니다.
## MAUI로 숫자 맞추기 게임 만들기
### 개발 환경 설정
#### 필수 설치 프로그램
- **.NET SDK**: [.NET SDK 다운로드](https://dotnet.microsoft.com/download)
- **Visual Studio 2022**: MAUI 개발을 위한 기본 IDE
#### 프로젝트 생성
1. **Visual Studio 2022**를 엽니다.
2. **새 프로젝트 생성**을 클릭합니다.
3. **.NET MAUI App (MAUI)** 템플릿을 선택하고 프로젝트 이름을 `NumberGuessingGame`으로 지정합니다.
4. **프로젝트 생성 위치**를 설정하고 **만들기** 버튼을 클릭합니다.
### 게임 로직 구현
#### MainPage.xaml UI 구현
`MainPage.xaml` 파일을 열고 다음과 같이 UI를 설계합니다.
```xml
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="NumberGuessingGame.MainPage">
<VerticalStackLayout Padding="20" Spacing="15" VerticalOptions="Center">
<Label Text="숫자 맞추기 게임"
FontSize="32"
HorizontalOptions="Center" />
<Label Text="1부터 100 사이의 숫자를 맞춰보세요!"
FontSize="16"
HorizontalOptions="Center" />
<Entry x:Name="numberEntry"
Placeholder="숫자를 입력하세요"
Keyboard="Numeric"
HorizontalOptions="Center"
WidthRequest="200" />
<Button Text="Guess"
Clicked="OnGuessButtonClicked"
HorizontalOptions="Center" />
<Label x:Name="resultLabel"
Text=""
FontSize="18"
TextColor="Black"
HorizontalOptions="Center" />
<Button Text="Restart Game"
Clicked="OnRestartButtonClicked"
IsVisible="False"
x:Name="restartButton"
HorizontalOptions="Center" />
</VerticalStackLayout>
</ContentPage>
```
#### MainPage.xaml.cs 로직 구현
`MainPage.xaml.cs` 파일에서 게임의 로직을 구현합니다.
```csharp
using Microsoft.Maui.Controls;
using System;
namespace NumberGuessingGame
{
public partial class MainPage : ContentPage
{
private int randomNumber;
private int attempts;
public MainPage()
{
InitializeComponent();
StartNewGame();
}
private void StartNewGame()
{
Random random = new Random();
randomNumber = random.Next(1, 101); // 1부터 100 사이의 무작위 숫자 생성
attempts = 0;
numberEntry.Text = string.Empty;
resultLabel.Text = string.Empty;
restartButton.IsVisible = false;
}
private async void OnGuessButtonClicked(object sender, EventArgs e)
{
if (int.TryParse(numberEntry.Text, out int guessedNumber))
{
attempts++;
if (guessedNumber < randomNumber)
{
resultLabel.Text = "더 큰 숫자를 시도해보세요!";
}
else if (guessedNumber > randomNumber)
{
resultLabel.Text = "더 작은 숫자를 시도해보세요!";
}
else
{
resultLabel.Text = $"정답입니다! 시도 횟수: {attempts}";
restartButton.IsVisible = true;
}
}
else
{
await DisplayAlert("유효하지 않은 입력", "유효한 숫자를 입력하세요.", "확인");
}
}
private void OnRestartButtonClicked(object sender, EventArgs e)
{
StartNewGame();
}
}
}
```
### 게임 설명
1. **게임 시작**:
- 애플리케이션을 실행하면 1부터 100 사이의 숫자가 무작위로 생성됩니다.
2. **숫자 추측**:
- 사용자는 숫자를 입력하고 **Guess** 버튼을 클릭하여 숫자를 추측합니다.
- 입력한 숫자가 실제 숫자보다 작으면 "더 큰 숫자를 시도해보세요!"라는 메시지가 표시됩니다.
- 입력한 숫자가 실제 숫자보다 크면 "더 작은 숫자를 시도해보세요!"라는 메시지가 표시됩니다.
- 맞추면 "정답입니다! 시도 횟수: X" 메시지가 표시되고, **Restart Game** 버튼이 활성화됩니다.
3. **게임 재시작**:
- **Restart Game** 버튼을 클릭하면 새로운 게임이 시작됩니다.
### 애플리케이션 실행 및 테스트
1. **애플리케이션 실행**
Visual Studio에서 **디버그** 버튼을 클릭하여 애플리케이션을 실행합니다. Android 에뮬레이터 또는 Windows Machine을 선택할 수 있습니다.
2. **게임 테스트**
- 입력 필드에 숫자를 입력하고 **Guess** 버튼을 클릭하여 숫자를 추측합니다.
- 올바른 숫자를 맞출 때까지 시도합니다.
- 정답을 맞추면 **Restart Game** 버튼을 클릭하여 새로운 게임을 시작합니다.
## 요약
이 예제에서는 MAUI를 사용하여 간단한 숫자 맞추기 게임 애플리케이션을 만드는 방법을 설명했습니다. 사용자가 무작위로 생성된 숫자를 추측하는 기능을 구현했습니다. MAUI를 사용하면 여러 플랫폼에서 동일한 코드로 애플리케이션을 실행할 수 있습니다.
### 추가 참고 자료
- [.NET MAUI 공식 문서](https://learn.microsoft.com/ko-kr/dotnet/maui/)
더 궁금한 점이 있거나 추가적인 도움이 필요하시면 언제든지 문의해 주세요!
'Software > C#' 카테고리의 다른 글
C# 시작하기 - WebSocket (0) | 2024.07.28 |
---|---|
MAUI 시작하기 - HttpClient 및 WebSocket (0) | 2024.07.28 |
MAUI 시작하기 - Barcode (0) | 2024.07.28 |
MAUI 시작하기 - QRcode (0) | 2024.07.28 |
MAUI 시작하기 - MariaDB CRUD (0) | 2024.07.28 |