728x90

게임을 주제로 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/)

더 궁금한 점이 있거나 추가적인 도움이 필요하시면 언제든지 문의해 주세요!

728x90
반응형

'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

+ Recent posts