728x90
1. 구성
랜덤 버튼을 통하여 0~9까지 총 10개의 숫자를 버튼 누를때 마다 랜덤으로 출력되며,
리셋 버튼을 눌러 초기화를 시켜줍니다.
2. 진행
MainPage.xaml
<Page
x:Class="App4.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App4"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid Margin="0,0,2,0">
<Button Name="btnRandom" Content="Random Numbers"
Margin="290,430,0,0" RenderTransformOrigin="0.437,0.002"
Click="btnRand_Click" VerticalAlignment="Top"/>
<ListBox Name="lstRand" Height="295" Margin="290,104,405,0"
VerticalAlignment="Top"/>
<Button Content="Reset" Margin="511,430,0,0" VerticalAlignment="Top"
Height="32" RenderTransformOrigin="0.522,-0.162" Click="btnReset_Click"/>
</Grid>
</Page>
MainPage.xaml.cs
public sealed partial class MainPage : Page
{
Random r = new Random();
int[] check = new int[10]; //new int가 아닌 int만 작성시, "잘 못된 식의 항'int'입니다" 메세지뜬다. 그 이유는 new 동적으로 할당 된 메모리를 담당.
//new 오른쪽에 선언 된 변수에 반환된다. 숫자 10개를 입력 받는다. 입력 받는 값은 동적 값이다.(프로그램 실행 할 때마다 변경되는 값)
//정수 배열 생성, 초기값 0 할당됨, 랜던값 : 10개
List<int> lstRandom = new List<int>(); //List :: 배열과 동일한 역활을 한다. List<자료형> 변수명 형태로 선언하고, 객체라서 new 연산자 작성 필수!!
public MainPage()
{
this.InitializeComponent();
}
private void btnRand_Click(object sender, RoutedEventArgs e)
{
for (int i = 0; i < 10; i++)
{
int v = r.Next(10); //Next(10) :: 문자 또는 문자열을 공백을 기준으로 한단어 또는 한문자씩 입력 받는다. //NextLine(10) :: 문자 또는 문장 한라인 전체를 입력 받는다.
while (RndCheck(v) == false) //While 문은 false면 반복한다. //생성된 랜덤값은 RndCheck() 메서드로 보내서 처음 나온 값인지 체크하여 처음 나온 값이라면 lstRandom에 추가한다.
v = r.Next(10);
lstRandom.Add(v); //Add(i) :: Add는 추가적으로 선택 해야 할 때 사용 합니다. 추가로 i요소를 선택 합니다.
}
foreach (var i in lstRandom) //foreacg는 https://blockdmask.tistory.com/313 설명 참고
lstRand.Items.Add(i); //Items :: lstRand의 항목을 가져옵니다.
btnRandom.IsEnabled = false; //IsEnabled :: 이 요소를 사용자 인터페이스에서 사용 할 수 있는지 여부를 나타내는 값을 가져오거나 설정 합니다.
}
private bool RndCheck(int v) //check[v]의 값이 0이면 true를, 1이면 false를 리턴한다.
{
if (check[v] == 0)
{
check[v] = 1;
return true;
}
else
return false;
}
private void btnReset_Click(object sender, RoutedEventArgs e) //Reset 버튼이 클릭되었을 때 실행되는 이벤트 처리 메서드, 리스트박스를 지워주고, check[] 배열과 리스트 lstRandom을 초기화한다다.
{
lstRand.Items.Clear(); //Clear() :: 요소 모두 제거 // Itme을 통하여 lstRand의 항목을 가지고와 Clear()으로 지운다.
for (int i = 0; i < 10; i++)
check[i] = 0;
lstRandom.Clear();
btnRandom.IsEnabled = true;
}
}
3. 결과
728x90
'C#' 카테고리의 다른 글
C# 네비게이션 구현하기 (1) | 2020.02.16 |
---|---|
C# 버튼 다루기 (0) | 2020.02.16 |
C# Windows 계산기 만들기 _ 간단한 계산기 (0) | 2020.02.16 |
데이터 바인딩이란? 간단한 실습 예제 (0) | 2020.02.16 |
데이터 바인딩이란? _간단하게 이해하기 (0) | 2020.02.16 |