README 작성 방법
·
🌱Github
README프로젝트를 처음 보는 사람이 무엇을, 어떻게 실행해야 하는지 알 수 있도록 돕는 소개 문서이다.README 는 쉽게 말하면 가이드라인, 설명서 정도로 생각할 수 있다.README 파일에는 일반적으로 프로젝트에 대한 정보가 담겨 있다.소프트웨어 배포시에 함께 포함되는데, 이러한 점이 새 제품을 구매했을때 읽어보는 사용 설명서와 비슷하다.GitHub 에서는 README.md 파일이 자동으로 리포지토리 첫 화면에 표시된다.Markdown 문법으로 작성해야 깔끔하게 정리된다. ( .md 확장자 ) 작성 방법파일 생성프로젝트 루트 폴더 ( 최상단 ) 에 README.md 파일 생성Visual Studio / Visual Studio Code / Notepad++ 모두 가능하다단 확장명은 반드시 .m..
C# 콘솔 색상 제어 ( Console Color Control )
·
⭐C Sharp/00. 문법
C# 콘솔 색상 제어 ( Console Color Control ) Console.ForegroundColor : 콘솔에 출력되는 문자 ( 글자 ) 의 색상을 지정하는 속성이다.Console.BackgroundColor : 콘솔의 배경색을 지정하는 속성이다.이 두 속성은 ConsoleColor 열거형 ( ConsoleColor Enum ) 값을 사용해 색상을 선택한다. 문법Console.ForegroundColor = ConsoleColor.색상명;Console.BackgroundColor = ConsoleColor.색상명; ▼색상 변경 후 기본 색상으로 복원Console.ResetColor(); 예시 코드using System;class Program{ static void Main() ..
프로젝트 진행과정 009
·
📖TIL/🔥Projects
미니게임 005제목 : 스네이크 1. 스네이크 게임의 동작 원리보드 생성뱀 생성매 프레임마다 키 입력 → 이동 → 충돌 판단 → 출력게임 오버 시 종료 2. 보드 초기화board = new char[BoardHeight, BoardWidth];2차원 배열 board[y , x] 에 각 칸의 상태를 저장한다.Wall (#) : 외곽 경계Empty ( ) : 빈 칸Food (●) : 먹이Head (O) : 뱀의 머리Body (o) : 뱀의 몸통콘솔에 그릴 때는 이 board 상태를 한 줄씩 출력한다. 3. 뱀의 데이터 구조snake = new LinkedList();LinkedList 를 채택했다.앞 뒤로 쉽게 추가 / 제거 가 가능해서 , "머리 추가 / 꼬리 제거" 구조에 맞는다. 매 프레임마다 체..
프로젝트 진행과정 008
·
📖TIL/🔥Projects
미니게임 005제목 : 스네이크 발생한 문제와 해결1. 인덱스 배열 범위 벗어남if (nextX = BoardWidth || nextY = BoardHeight){ isGameOver = true; return;}▲벽에 부딪혔는지 , 경계 밖으로 나갔는지 확인하는 충돌 판정 추가 2. 그림이 출력 안되는 문제이거.. 어디서부터 꼬인거지? ▼뱀생성 코드 일부 수정// 뱀 생성LinkedListNode node = snake.First;while (node != null){ Pos p = node.Value; // 마지막 노드 확인 ( 머리 / 몸통 구분 ) bool isHead = (node == snake.Last); if (isHead) { b..
프로젝트 진행과정 007
·
📖TIL/🔥Projects
미니게임 005제목 : 스네이크 지금까지는 아직 나에게 2차원 배열은 생소한 영역이어서 회피했었다.하지만 언제까지 2차원 배열을 안쓸수도 없고, 쓰지 않고 작성하려니 한계가 왔다.요번에는 2차원 배열을 공부하며 열심히 다른 사람 코드도 찾아보면서 구현 또는 구현 시도를 해보자 규칙사방이 막혀있는 네모난 공간에 플레이어가 조종하는 뱀 한마리가 놓여진다뱀은 현재 머리가 향하고 있는 방향으로 멈추지 않고 이동한다플레이어의 조작으로 머리가 진행하는 방향만 바꿀 수 있다.머리 방향은 상하좌우로 방향을 바꿀수 있으며 몸통으로 바로 회전할수 없다.뱀이 벽이나 자신의 몸 일부에 머리를 부딪히면 죽는다목적은 화면에 놓여있는 먹이를 먹는 것이다.먹이를 여러개 스폰해도 되지만, 여기서는 하나를 먹을 때마다 하나가 랜덤으로..
프로젝트 진행과정 006
·
📖TIL/🔥Projects
미니게임 004제목 : 반응속도 테스트▲으악 내가 느림이라니 ㅠㅠ 플레이어의 반응속도를 세번 측정후 평균값을 계산후플레이어의 반응속도의 등급을 출력하자 ▼코드public class Reaction : IGame{ public string Id => "reaction_game"; public string Title => "반응속도 테스트"; public void Run() { Console.Clear(); Console.WriteLine("총 3번의 반응 속도를 측정합니다.\n"); Console.Write("잠시 후 "); Effects.PrintColor("'지금!'", ConsoleColor.Yellow); Cons..
IList<T>
·
⭐C Sharp/00. 문법
List 안에 있는 내용을 피셔 에이츠를 이용해 셔플하고 싶었다.그래서 Util 이란 Class 를 하나 생성해서 따로 관리하려고 한다.private static void shuffle(??? list)그런데 매개변수로 List 을 적게되면,예시로 List 을 적게되면 딱 List 타입만 받을수 있고string[ ] (배열) 같은건 받을수 없게 되는데, 다른 것도 받고 싶으면 어떻게 입력해야 되지? IListIList 는 C# 의 제네릭 컬렉션 인터페이스 중 하나인덱스로 접근 가능한 리스트형 자료구조의 표준 규약 ( 약속 )을 정의한 인터페이스즉, List , T[ ], OvservableColloction 같은 리스트 계열 클래스들이이 인터페이스를 구현 ( implement )해서 동일한 방식으로 ..
프로젝트 진행과정 005
·
📖TIL/🔥Projects
미니게임 003제목 : 숫자 야구이전에 제작 시도하려다가 포기한 숫자 야구를 다시 만들어보자▲직접 해보니 너무 어렵다! 3자리로 하는게 좀더 쉬우려나.. 규칙컴퓨터가 0~9 사이의 서로 다른 숫자를 정해 정해진 개수 ( 4자리 ) 의 숫자를 만든다플레이어는 컴퓨터가 고른 숫자를 추측하여 맞춰야한다.플레이어가 4자리 숫자를 골라 입력스트라이크 : 숫자와 위치가 모두 맞는 경우볼 : 숫자만 맞고 위치가 다른 경우아웃 : 숫자가 하나도 포함 되어있지 않은 경우이전 시도의 결과를 토대로 다음 숫자를 추측하며 입력입력 시도에는 10번의 기회가 주어짐컴퓨터가 고른 숫자를 정확히 맞추면 성공 이번 미니게임의 핵심 코드▼처음 사용해보는 ListList answer = Answer(4); ▼중복 없는 4자리 정답 ..
생략 ( 언더바 " _ " )
·
⭐C Sharp/00. 문법
생략 , 무시 ( _ )다른 프로그래머들의 블로그롤 참고해보다가 이상한 걸 발견했다보통 변수명 앞에 언더바 ( _ ) 를 붙이는 경우는 코딩 스타일이라 배웠다.그런데 변수명도 아닌데 언더바 단독으로 있는 경우는 뭐지?검색해보니 "무시해도 되는 코드" 라고 한다.무시해도 될 코드면 처음부터 안쓰면 되는거 아닌가? 의아했는데 사용처가 굉장히 많았다int.TryParse(input, out _) ▲여기서 out_ 의 의미결과 값을 받을 변수가 필요 없으니 무시한다.라는 뜻이다TryParse 는 성공 / 실패 여부만 확인하고 싶을 때 자주 사용한다변환된 실제 숫자는 안 쓰니까 굳이 변수 만들어서 저장할 필요가 없다그래서 ( _ ) 는 버려지는 자리 ( Discard ) 를 써서 처리한다 1. Discard (..