728x90

반도체, 임베디드 Study/C# 12

C# - Arduino Serial 통신을 이용한 비쥬얼라이저 구현

C#과 Arduino의 Serial 통신을 이용하여 간단한 비쥬얼라이저를 구현하였다.void setup() { Serial.begin(9600); // 시리얼 통신 시작 pinMode(8, OUTPUT); pinMode(9, OUTPUT); // LED 핀을 출력 모드로 설정 pinMode(10, OUTPUT); pinMode(11, OUTPUT);}void loop() { int sensorValue = analogRead(A0); // A0 핀의 아날로그 값을 읽어서 sensorValue 변수에 저장 Serial.println(sensorValue); // 읽어온 값을 시리얼 모니터에 출력 if (Serial.available() > 0) { int value = ..

C# - WinForm을 이용한 기억력 게임

C#의 Winform을 이용하여 기억력 게임을 만들어 보았다. 게임은 크게 1초, 0.5초 0.25초 간격의 난이도를 가지고 있다.아래 GIF 파일들은 실제 게임을 실행하는 중요 부분들만 캡처한 것이고, 그 외 상세한 부분들은 글과 코드를 통해 설명할 것이다.속도 선택가장 먼저 게임 속도를 선택하게 되면 게임 속도가 선택에 맞게 설정된다.속도 1 게임 실행1단계 게임을 실행하게 되면 1초의 속도로 기억력 게임이 시작되고 속도 1 점수에 해당하는 곳에 최고 점수가 기록된다.속도 2 게임 실행속도 2를 선택하게 되면 0.5초 간격의 난이도로 게임이 시작되고, 속도 2에 해당하는 점수판에 최고 속도가 기록된다.속도 3 게임 실행속도 3을 선택하게 되면 0.25초 간격의 난이도로 기억력 게임이 시작되고, 속도 ..

C# - WinForm 연습 (Form, Button, CheckBox, ComboBox, GroupBox, Label, ListBox, TextBox, Timer... 구현 )

전체 코드using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Security.Principal;using System.Text;using System.Threading;using System.Threading.Tasks;using System.Timers;using System.Windows.Forms;namespace WindowsFormsApp3{ public partial class Form1 : Form { private string name1; private..

C# - WinForm 기본 화면 구성

WinForm에서 Event가 발생하면 Event Handler를 통해 발생한 Event를 처리한다.Program.cs : 윈도우 폼 생성과 실행(자동 생성)기본적으로 Program.cs의 Application.Run 함수를 통해 Form1의 객체 생성 및 실행된다. Form1.Designer.cs : 자동 생성 코드 (생성하는 Controls에 대한 속성 및 이벤트 처리 등)Form1.cs[디자인] : 윈도우 form에 대한 디자인을 보여주는 화면Form1.cs : 이벤트 처리 및 기타 로직을 작성하는 곳 [디자인]에서 생성된 이벤트들이 함수로 자동 생성된다. WinForm은 기본적으로 Form1.cs[디자인] / Form1.cs / Form1.Designer.cs를 통해 동작하게 된다. [디자인]을 ..

C# 컬렉션, 제네릭, 널(null), LINQ

컬렉션의 종류 컬렉션 관련 여러 클래스(Stack, Queue, ArrayList)Array 클래스 Array 클래스 제네릭LINQ컬렉션의 종류 배열(Array) : 일반적으로 숫자와 같이 간단한 데이터 형식을 저장한다.리스트(List) : 간단한 데이터 형시을 포함한 개체들을 저장한다.사전(Dictionary) : 키와 값의 쌍으로 관리되는 개체들을 저장한다. 배열(Array) : 정수형, 문자열 등의 집합을 나타낸다.컬렉션(Collection) : 개체들의 집합을 나타낸다. 리스트, 집합 ,맵, 사전도 컬렉션과 같은 개념으로 사용된다. - 난수 배열 생성 및 정렬using System;using System.Collections.Generic;using System.Linq;using System.T..

C# - 문자열 / 예외 처리

문자열 문자열 관련 주요 속성 및 메서드 속성 및 메서드 설명 Length 문자열의 길이값 반환 ToUpper(0 문자열을 모두 대문자로 변환 ToLower() 문자열을 모두 소문자로 변환 Trim() 문자열의 양쪽 공백 잘라냄 Replace(원본문자열, 대상문자열) 원본문자열을 대상문자열로 변경 Substring(문자열인덱스, 길이) 지정된 문자열 인덱스부터 길이만큼 반환 String 클래스 Length Length 속성을 사용하여 문자열의 길이를 구할 수 있다. Concat() Concat() 메서드로 문자열을 연결할 수 있다. > string s1 = "백" + "인수."; > string s2 = String.Concat("백", "인수."); > $"{s1} {s2}" "백인수. 백인수." To..

C# - 코딩 연습 / 1. Lotto 제작 / 2. 가위바위보 게임

Lotto 제작 아래 코드는 6개의 무작위 숫자를 입력 받아 로또 당첨을 시뮬레이션 해보는 코드다. 실제 로또 방식과 동일하게 6개 전부 맞추면 1등, 5개 + 보너스를 맞추면 2등, 5개를 맞추면 3등, 4개를 맞추면 4등, 3개를 맞추면 3등을 표시한다. Random 클래스를 이용하여 6개의 로또 번호를 생성하고, 보너스 번호를 추가로 하나 생성한다. for 혹은 foreach문을 통해 무작위 6+1개의 숫자와 사용자가 입력한 6개의 숫자를 비교한다. * 중복을 확인하기 위한 변수(flag)와 입력받은 숫자를 임시로 저장하여 비교하기 위한 변수(temp)를 생성하여 사용하는 것이 코드 작성에 좋다고 생각한다. temp에 입력 받은 숫자를 넣고, 중복 검사를 받은 뒤 통과가 되면 (flag 값을 통해 ..

C# - 클래스

정적(Static)과 인스턴스(Instance) 자주 사용되는 내장 클래스 또 다른 exe 파일 실행하기 액세스 한정자 값 형식(Value Type)과 참조 형식(Reference Type) 박싱(Boxing)과 언박싱(Unboxing) 정적(Static)과 인스턴스(Instance) Static을 붙이면 객체 생성 필요없이 해당 클래스 내부에 있는 메서드를 사용할 수 있다. 그냥 Instance 메서드의 경우 해당 클래스의 객체를 생성한 뒤 해당 메서드를 사용해야 한다. static / instance 코드 예제 using System; class MyFirstClass { static void StaticMethod() => Console.WriteLine("[1] 정적 메서드"); void Inst..

C# - 구조체 / 열거형

구조체란? 기존의 변수와 배열은 하나의 이름으로 하나의 데이터 형식을 가지고 공간을 차지했다. 구조체란 변수와 배열을 확장하여 하나의 이름으로 여러 개의 데이터 형식을 한 개 또는 여러 개 보관하는 그릇 역할을 하는 것이 바로 구조체(struct)이다. 구조체 변수란 하나의 이름으로 하나 이상의 데이터 형식을 하나 보관해 놓는 그릇 역할이고, 구조체 배열은 하나의 이름으로 하나 이상의 데이터 형식을 여러 개 보관해 놓는 그릇 역할을 하는 것으로 볼 수 있다. 1. Data Type 정의 2. 해당 Type의 변수 선언 3. 해당 구조체 사용 구조체 선언 모양 struct 구조체명 { 데이터형식 변수1; 데이터형식 변수2; 데이터형식 변수3; } 구조체를 의미하는 struct 키워드를 사용하여 구조체를 만..

728x90