c# 44

050_SnakeBite(C#)

SnakeBite게임을 만들어보자. Random r = new Random(); Ellipse[] snake = new Ellipse[30]; Ellipse egg; int W = 10; // 뱀과 알의 크기 (Ellipse) int visibleCount =5; DispatcherTimer dt = new DispatcherTimer(); Stopwatch sw = new Stopwatch(); string move = ""; 랜덤 객체 생성 ( 알위치를 랜덤하게 정하기 위해서 이다.) Elipse snake는 뱀의 최대 크기를 30으로 정하는것 visibleCount = 5; 뱀의 최대크기는 30인데 처음 게임 시작하였을 때 보이는 알을 5개로 정하였음. public Game() { Initializ..

C# 2022.06.18

047_Form_Clock_C#

C# WinForm으로 아날로그 시계와 디지털 시계를 만들어보자. WinForm은 GDI+를 사용합니다 -윈도우가 디바이스 드라이버에 독립적으로 프로그래밍할 수 있도록 그래픽을 제공해주는 모든 기능 -Visual C++ 환경에서 닷넷 환경으로 변경되면서 더 많은 장점과 사용의 편리함을 제공하는 것이 GDI+ public partial class Form1 : Form { //필드 , 속성 Graphics g; bool aClock_Flag = false; Point center; //중심점 double radius; //반지름 int hourHand; //시침의 길이 int minHand; //분침 int secHand; //초침 const int clientSize = 300; const int clo..

C# 2022.06.09

046_Matching Game(그림 맞추기 게임)_C#

그림맞추기 게임을 만들어보자! 알고리즘 1. 16개의 버튼을 만들어서, Board에 넣는다. 2. 랜덤하게 각 버튼에 숫자(0~7)을 배당한다. 3. 이 숫자를 Button.Tag에 저장한다. 4. 뒤집한 그림으로 표시한다. int[] rnd = new int[16]; // TagSet()에서 사용할 배열 DispatcherTimer myTimer = new DispatcherTimer(); 총 16개의 그림을 비교할 것이니 배열크기를 16으로 정한다. 그림 하나를 선택 후, 다음 그림이 열릴때 너무 빨리 닫히므로 두번째 그림을 확인할 수 없게된다. 그래서 WPF의 시간을 사용하는 클래스인 DispatcherTime 객체를 선언한다. public MainWindow() { InitializeCompone..

C# 2022.06.09

045_ECG,PPG(Gragh Control)

Chart를 조작할수있게 만들어보자 ECG는 정해진 시간에 심장의 전기적 활동을 해석하는 것이다. (심전도) PPG는 맥파형은 피부표면 혈관의 미세혈관안의 혈류량의 변화상을 통해 혈관에 대한 임상 정보를 제공한다. double[] ecg = new double[100000]; double[] ppg = new double[100000]; private int ecgCount; private int ppgCount; Timer t = new Timer(); ecg / ppg 의 배열의 크기를 10만개 지정; 사실 데이터의 개수가 10만개 까지는 아님. Timer를 통해 AutoScroll 조작예정 InitializeComponent(); this.Text = "ECG/PPG"; this.WindowStat..

C# 2022.06.09

044_Graph

Chart를 이용하여 sin, sin(x)/x, cos(x)/x 를 그려보자. 이전 게시물들과 마찬가지로 winform으로 프로젝트 생성해주고 chart component하나만 폼 위에 올려주자. chart1이라고 되어있는 이름을 편하게 쓰기위해 ch로 이름변경. 레이아웃의 Dock또한 Fill로 바꾸어주자. ch.ChartAreas[0].BackColor = Color.Black; // ch.ChartArea["ChartArea1"]도 가능 그래프의 배경를 검은색으로해야 멋있다. //x,y축 설정 ch.ChartAreas[0].AxisX.Minimum = -20; ch.ChartAreas[0].AxisX.Maximum = 20; ch.ChartAreas[0].AxisX.Interval = 2; // x..

C# 2022.06.09

043_TwoChart

이전 게시물처럼 Chart 를 그리게 될껀데 위 사진 처럼 두개의 그래프를 합치기도 하고 나누어표현 하기도 하고 두가지 방법으로 chart를 표현해보자. 이전 게시물처럼 chart를 가져온다. chart는 한개만 가져오면 된다. 나중에 소스코드에서 추가할테니. 그리고 Button도 가져와서 각각 이름을 btnOneChart / btnTwoCharts로 바꾸어주었다. 나중에 버튼에 대한 이벤트를 지정할것이다. Form Load시에 필요한 소스코드이다. private void Form1_Load(object sender, EventArgs e) { chart1.Titles.Add("성적"); chart1.Series.Add("Series2"); //원래 series1 있었음 chart1.Series["Ser..

C# 2022.06.09

042_Chart

Win Form 을 이용해 ChartControl해보자 C#에서 Win Form 같은 경우 차트 컨트롤이 쉽다. 하지만 WPF같은 경우 차트컨트롤이 없음 . 써드파티를 통해 가능하지만 쉽게 winform에서 해보자. 도구상자 - 데이터 항목을 보게 되면 chart 가 있다. 끌어와 폼에 넣어주자. 레이아웃의 Dock을 Fill로 수정해야 차트가 폼 안에 가득차게 표현되니 활용해보자. 여기까지 했다면 절반은 한것이다.이제 소스코드를 손봐주자 public Form1() { InitializeComponent(); this.Text = "Using Chart Control"; // Form이름 바꾸기 } private void Form1_Load(object sender, EventArgs e) { Rando..

C# 2022.06.09

041_Splash

Random으로 색깔을 만들어 표시하고 DB에 저장하여 값을 불러오도록 해보자 List borderList; // Timer t = new Timer(); winform 에서 사용하는 방법 // wpf는 timer객체 없음 DispatcherTimer t = new DispatcherTimer(); Random r = new Random(); 전체 소스코드는 맨 아래에 게시해두었다. winform이었다면 timer로 객체를 만들었겠지만 wpf는 timer객체가 없기때문에 DispathcherTimer라는 메소드를 이용해 객체를 생성해주자. public MainWindow() { InitializeComponent(); borderList = new List { bd1,bd2,bd3,bd4,bd5,bd6,..

C# 2022.06.09

040_WPF Login

WPF를 이용해서 로그인창을 만들어보자 디자인 xaml코드이다. 먼저 SQL Server를 연결하기 위해서 프로젝트에 우클릭 - 추가 - 서비스 기반 데이터베이스 - 이름 설정. DB를 추가하면 DB에 우클릭 - 새 쿼리 위 사진 처럼 설정한다. UserName과 Password 는 Null이면 안되기 때문에 Null허용 체크박스를 해제한다. + Id를 클릭해서 속성에서 ID 여부를 Flase -> True로 변경함. 새쿼리문 작성을 통해 INSERT INTO LoginTable(UserName, Password) values ('shpark','1234') SELECT * FROM LoginTable sql문 입력 namespace _040_WPFLogin { /// /// MainWindow.xaml..

C# 2022.05.20

038_ListArray

List형과 Array형의 차이를 알아보자 배열(Array) 1. 고정된 크기를 갖는 같은 자료형의 원소들이 연속적인 형태로 구성된 자료구조. 2. 데이터 개수가 확실하게 정해져 있고, 접근이 빈번하다면 배열이 효율적이다. 3. cache hit 가능성이 커 성능에 도움이 된다. *(cache hit : cpu가 참조하고자 하는 메모리가 캐시에 존재하고있는 경우) 리스트(List) 1. 빈틈없는 데이터 적재가능 2. 배열의 문제점을 해결하기 위한 자료구조 ※참고 list의 경우 sort : list_name.Sort(); array의 경우 sort : Array.Sort(array_name); static void Main(string[] args) { List lst = new List(); int[]..

C# 2022.05.11