728x90

게임을 주제로 MAUI(.NET Multi-platform App UI) 애플리케이션을 만들고 싶으신가요? 다양한 게임 유형이 있지만, 여기서는 간단한 "숫자 맞추기 게임"을 구현하는 방법을 설명하겠습니다. 이 게임에서는 사용자가 컴퓨터가 무작위로 생성한 숫자를 추측하게 됩니다.

MAUI로 숫자 맞추기 게임 만들기

개발 환경 설정

필수 설치 프로그램

프로젝트 생성

  1. Visual Studio 2022를 엽니다.

  2. 새 프로젝트 생성을 클릭합니다.

  3. .NET MAUI App (MAUI) 템플릿을 선택하고 프로젝트 이름을 NumberGuessingGame으로 지정합니다.

  4. 프로젝트 생성 위치를 설정하고 만들기 버튼을 클릭합니다.

게임 로직 구현

MainPage.xaml UI 구현

MainPage.xaml 파일을 열고 다음과 같이 UI를 설계합니다.

<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 파일에서 게임의 로직을 구현합니다.

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를 사용하면 여러 플랫폼에서 동일한 코드로 애플리케이션을 실행할 수 있습니다.

추가 참고 자료

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

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