Xamarin - 로또 번호 생성기

2019. 4. 21. 14:44IT/C#

나의 Xamarin 첫 프로그램입니다.

저는 일주일에 한번씩 로또를 삽니다.

동행복권 사이트에서 랜덤 번호를 할 수 있는데 이때까지 한번도 맞은적이 없습니다.

그래서 내가 만든 어플로 번호를 픽하면 어떨까 생각해서 자마린도 배울겸 만들어 보았습니다.

 

1. MainPage.xaml

<?xml version="1.0" encoding="utf-8"?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" xmlns:local="clr-namespace:로또생성기" x:Class="로또생성기.MainPage">
    <StackLayout>
        <!-- Place new controls here -->
        <Label x:Name="title" Text="로또 번호 생성기" FontSize="Large" />
        <Label x:Name="round1" Text="1회 :" />
        <Label x:Name="round2" Text="2회 :" />
        <Label x:Name="round3" Text="3회 :" />
        <Label x:Name="round4" Text="4회 :" />
        <Label x:Name="round5" Text="5회 :" />
        <Button x:Name="buttonGenerator" Text="로또 번호 생성" Clicked="ButtonGenerator_Clicked" />
</StackLayout>
</ContentPage>

2. MainPage.xaml.cs

using System;
using System.Collections.Generic;
using System.Collections;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Xamarin.Forms;
using System.Threading;

namespace 로또생성기
{
    // Learn more about making custom code visible in the Xamarin.Forms previewer
    // by visiting https://aka.ms/xamarinforms-previewer
    [DesignTimeVisible(true)]
    public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();
            title.Text = "로또 번호 생성기" + "(" + DateTime.Now.ToString("yyyy-MM-dd") + ")";
        }


        void ButtonGenerator_Clicked(object sender, System.EventArgs e)
        {
            round1.Text = "1회 :" + LottoNumberGenerator();
            Thread.Sleep(100);

            round2.Text = "2회 :" + LottoNumberGenerator();
            Thread.Sleep(100);

            round3.Text = "3회 :" + LottoNumberGenerator();
            Thread.Sleep(100);

            round4.Text = "4회 :" + LottoNumberGenerator();
            Thread.Sleep(100);

            round5.Text = "5회 :" + LottoNumberGenerator();
            Thread.Sleep(100);
        }

        string LottoNumberGenerator()
        {
            string lottoNumber ="";
            List<int> numbers = new List<int>();
            Random number = new Random();

            Boolean dup = false;

            while(numbers.Count <= 5)
            {
                dup = false;
                int random = number.Next(1, 45);

                // 중복 검사
                foreach (int i in numbers)
                {
                    if (random == i)
                    {
                        dup = true;
                    }
                }

                if(dup == false)
                {
                    numbers.Add(random);
                }
            }

            numbers.Sort();

            foreach(int temp in numbers)
            {
                lottoNumber = lottoNumber + " " + temp.ToString();
            }

            numbers.Clear();

            return lottoNumber;
        }

    }
}