C# 맛보기입니다.

 

먼저 C#의 특징에 대해서 알아보겠습니다.

형식 안정적객체 지향 언어입니다.

○ 기존 프로그래밍언어의 생산성을 개선하여 성능이 굉장히 높습니다.

○ 현재 윈도, 맥, 리눅스, 안드로이드, 아이폰 등의 다양한 운영체제나 플랫폼에서 동작합니다.

○ 윈도에서 동작하는 닷넷 플랫폼과 대부분의 운영체제에서 동작하는 모노 플랫폼에서 작동하는 프로그램을 만들 수 있습니다.

 

라이브러리 vs 프레임 워크

라이브러리

코드를 쉽게 사용할 수 있게 미리 만들어준 코드

프로그램 소프트웨어를 만들 때 사용하는 클래스 또는 서부루틴의 집합

 

프레임 워크

제어 역전이 있는 대규모의 라이브러리

  ※제어 역전 : 원래 개발자가 제어하던 코드를 프레임워크가 제어하는 것

C#으로 할 수 있는 일 GUI개발, 웹 개발(ASP.NET 프레임워크, ASP.NET MVC), 게임 개발, IoT개발 등 여러 작업을 할 수 있습니다. 그런데 과연 C#이란 프로그래밍의 문법만을 배워서 개발을 할 수 있을까요? 아닙니다. 개발 도구도 필요하고 실행환경(Platform)도 필요합니다. 최소한 이 3가지가 있어야 개발을 할 수 있습니다. 그럼 개발도구에는 어떤 기능이 있을까요? 편집기능, 디버거, 컴파일/링크, 배포 등의 기능이 있습니다. 저는 개발도구로 Visual Studio2017 을 사용하며 실습을 진행하도록 하겠습니다.

그럼, Visual Studio를 사용할 때 솔루션과 프로젝트가 만들어지는데요. 솔루션과 프로젝트의 차이가 무엇이 있을까요? 프로젝트는 하나의 실행파일(exe)를 만들어내기 위해서 필요한 여러 개의 소스파일과 헤더 파일등을 하나로 묶어 놓는 것을 말합니다. 솔루션은

왜 솔루션이 있을까요? 작업을 할 때 파일이 이곳 저곳 여러군데에 나눠져 있다면 작업을 하는데 있어서 많은 불편함이 생깁니다. 그래서 관련있는 작업을 하는 프로젝트들을 모아서 하나의 솔루션에 담아두면 작업을 하는데 불편함을 줄여줄 수 있기 때문입니다. 그럼 가장 먼저 Hello World를 출력하는 방법에 대해서 알아보도록 하겠습니다.

 

Hello World 출력하기

program.cs

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Hello
{
    class Program
    {
        static void Main(string[] args)
        {
            //한줄 주석입니다.
            Console.WriteLine("Hello World");

            /* 여

               러

               줄

               주

               석

            */

        }
    }
}

cs

 

콘솔창에 Hello World를 출력해보는 간단한 에제입니다. 콘솔창에 출력을 할 때에는 Console.Write()또는 Console.WriteLine()을 이용해서 출력할 수 있는데요 Console.WriteLine의 경우에는 출력이 끝난후 줄바꿈이 자동으로 실행되는 차이가 있습니다.

 

주석

주석의 방법은 두가지가 있습니다.

1. 한줄 주석 : //

2. 여러줄 주석 : /* 주석할 내용 */
1번의 경우 //뒤에 쓰여진 내용들이 주석처리 되고, 2번의 경우 /* 이 선언되고  */을 만나기 전까지의 내용들 모두를 주석처리해줍니다.

 

연산할 때 주의사항

정수끼리의 연산을 할 때 생각해야 할 부분이 있습니다. 예를 들어 10/4를 계산하면 2.5 의 값이 나오는데요 C#에서 정수끼리의 연산은 정수만 나올 수 있습니다. 그래서 2.5가아닌 2라는 정수라는 결과값을 가지게 됩니다. 그럼 정리해 보겠습니다.

정수+정수 = 정수, 정수 - 정수 = 정수, 정수*정수 = 정수, 정수/정수 = 정수 모두 결과값이 정수가 나옵니다

 

 

'Language > C#' 카테고리의 다른 글

1.C# 변수선언  (0) 2017.08.07

유니티의 두번째강의는 유니티에서 게임오브젝트라고 불리는 것들에 대해서 알아보겠습니다.

 

게임 오브젝트(Game Object) : 게임을 실행하면 여러가지 구성요소들이 있는데요 플레이어가 있고 장애물도 있고 나무도 있습니다. 이런 하나하나를 유니티에서는 게임 오브젝트라고 부릅니다.

그럼 새로운 프로젝트를 만들고 시작하겠습니다. 새로운 프로젝트를 만들었다면 아래이미지와 같은 화면이 나옵니다.

 

<이미지>

 

하이에라키를 보면 두가지가 기본적으로 추가되어있습니다.

우선은 이 두가지는 두고 새로운 게임 오브젝트를 만들어 보겠습니다.

상단의 메뉴에서 GameObject -> 3D Object -> Cube 를 선택해줍니다.

그럼 화면에 큐브가 하나 생기는데요 새로운 오브젝트를 생성한 것입니다. 간단하죠?

그리고 하이에라키 뷰를 보면 큐브가 새로 생겼을 것입니다.

 

하이에라키 뷰는 게임 오브젝트의 목록이므로 새로운 게임 오브젝트가 생기면 목록에 표시해줍니다.

신 뷰 (#Scene) 에서는 큐브라는 게임 오브젝트의 실제 모양과 상태를 보여주고 있습니다.

각 화살표를 누르고 움직이면 화살표의 방향대로 큐브가 움직일 것입니다.

 

< 그림 2- 1> 신 뷰(#Scene) 에서 보이는 큐브의 모양

 

그리고 아래의 이미지<그림2-2>를 보면 왼쪽상단에 빨갛게 표시한 곳이 있습니다.

이 곳의 5개의 아이콘을 이용해서 게임 오브젝트의 위치, 회전, 모양 등을 변경할 수 있습니다.

그리고 각각의 아이콘들은 왼쪽에서 부터 단축키를 이용해서 qwer순으로 선택을 할 수 있습니다.

 

첫번째 아이콘 (Q)  :  손바닥 아이콘은 신(Scene)의 화면을 누르고 움직이면 화면이 원하는 방향으로 움직여집니다.

두번째 아이콘 (W)  :  두번째 아이콘을 누른상태에서 씬화면에서 드래그를 통해 게임오브젝트를 선택하거나 하이에라키 뷰에서 게임오브젝트를 선택하면 게임오브젝트에 빨강 파랑 초록색의 화살표가 나타나게 되는데요 이 화살표를 이용해서 게임오브젝트의 위치를 바꿀 수 있습니다.

 

세번째 아이콘 (E)  :  게임오브젝트를 선택하면 빨강 파랑 초록의 원이 그려지는데요. 원을 누르고 움직이면 원하는 방향으로 게임 오브젝트를 회전시킬 수 있습니다.

네번째 아이콘 (R) : 게임오브젝트를 선택하면 빨강 파랑 초록의 무언가가 생깁니다. 그 무언가를 누르고 드래그하면 오브젝트가 늘었다줄었다 합니다.

 

그리고 추가적으로 신뷰에서 알아두면 좋은 조작방법 두가지를 더 알려드리겠습니다.

1. 알트(Alt) 키를 누르고 화면을 움직이면 보는 방향이 바뀌게 됩니다.

2. 휠을 움직이면 줌아웃 줌인이 가능합니다.

 

그리고 각각의 아이콘들은 단축키가 있으니 누르기 귀찮다면 단축키를 외워사용하시면 더 편하게 이용할 수 있어요.

 

<그림 2-2> 신(#Scene) 뷰에서 사용하는 아이콘들 (왼쪽상단)

 

 

간단히 게임오브젝트가 무엇인지와 신뷰에서 게임오브젝트를 조작하는 방법을 알아봤는데요

게임오브젝트에 대한 내용이 조금 더 있습니다. 어렵지 않으니 천천히 따라해보세요.

 

끝!

안녕하세요 백자까입니다.

 

오늘은 유니티의 첫번째 강의인 만큼 유니티프로그램을 실행하면 안에 여러구성요소들이 존재하는데요.

 

각 구성요소들의 역할에 대해서 간단히 살펴보고자 합니다.

 

그럼 먼저 유니티를 실행시켜서 새프로젝트 생성을 해보겠습니다.

 

프로젝트명을 정한다음에 3D를 선택하고 Create project 버튼을 눌러 프로젝트를 생성해줍니다.

 

 

유니티에서는 화면을 구성하는 각 부분을 뷰라고 표현합니다.

 

가운데 위쪽을 보면   재생   일시정지  와 같은 아이콘을 이용해서 재생버튼을 눌러서 게임실행하는 걸 미리 볼수 있고 일시정지를 통해 멈출 수 있습니다.

 

씬 뷰 (Scene view) : 빨강

게임을 구성하는 구성요소들의 배치상태와 모습들을 볼 수 있는 화면입니다.

하이에라키뷰에서 원하는 요소를 누르면 그 요소의 위치로 카메라가 이동하고 게임요소의 배치상태를 변경할 수도 있습니다.

 

하이에라키 뷰 (Hierarchy view) : 주황

게임을 구성하는 요소들의 목록을 보여주는 뷰입니다.

 

게임 뷰 (Game view) : 초록

씬 뷰를 촬영해서 게임화변으로 볼 수 있는 곳입니다.

 

프로젝트 뷰 (Project view) : 파랑

프로젝트를 구성하는 파일들을 표시해줍니다.

 

위의 4가지 외에 보이지는 않지만 오브젝트를 클릭하면 인스펙터 뷰 (Inspector view)를 볼 수 있습니다.

 

인스펙터 뷰에서는 구성요소에 대한 세부적인 정보들을 볼 수 있습니다.

 

이상 유니티의 구성요소 입니다.


 

Chapter3 : Jailbreak 네번째 문제풀이를 하겠습니다.

 

Pattern : A man, a plan a canal: Panama

 

 

 

이번에도 어렵지않게 패턴의 규칙을 찾아낼 수 있습니다.

 

배열안의 원소들이 가운데원소를 기점으로 좌우대칭을 이룬상태인지를 확인해주면 되는 간단한 규칙입니다.

 

그럼 코드로 작성해보겠습니다. 얍!

 

 

배열의 처음부분과 끝부분에서부터 점점 배열의 위치를 가운데로 이동시켜서 비교해줍니다.

 

그렇게 모두 같으면 true를 리턴하게되고 틀린게 하나라도 있다면 false를 리턴해주게 됩니다.

 

참 쉽죠?

 

 

깔끔히 Chapter3 : Jailbreak 모두 성공했습니다. 다음에 Chapter4 로 돌아오겠습니다.

 

이상 Chapter3 : Jailbreak(4) 풀이 였습니다.

'Coding > hacked' 카테고리의 다른 글

3.hacked : Jailbreak (3)  (0) 2017.08.03
3.hacked : Jailbreak (2)  (0) 2017.08.03
3.hacked : Jailbreak (1)  (0) 2017.08.03
2.hacked : High School Hack (4)  (0) 2017.08.02
2.hacked : High School Hack (3)  (0) 2017.08.02


 

Chapter3 : Jailbreak 세번째 문제풀이를 하겠습니다.

 

Pattern : This is odd

 

 

이번 패턴도 간단합니다. 홀수일 경우에는 1을 돌려주고 짝수일경우에는 0을 돌려주면 됩니다.

 

그럼 코드로 작성해보겠습니다. 얍!

 

 

입력값이 1보다 큰동안에 반복문을 이용해서 입력값에서 2씩 계속 값을 빼줍니다.

 

참 쉽죠?

 

 

깔끔히 성공했습니다. 다음에 네번째 문제로 돌아오겠습니다.

 

이상 Chapter3 : Jailbreak(3) 풀이 였습니다.

 

'Coding > hacked' 카테고리의 다른 글

3.hacked : Jailbreak (4)  (0) 2017.08.03
3.hacked : Jailbreak (2)  (0) 2017.08.03
3.hacked : Jailbreak (1)  (0) 2017.08.03
2.hacked : High School Hack (4)  (0) 2017.08.02
2.hacked : High School Hack (3)  (0) 2017.08.02


 

Chapter3 : Jailbreak 두번째 문제풀이를 하겠습니다.

 

Pattern : Maxxxxx

 

 

이전에는 배열안에 두개밖에 없었는데 이제는 배열안에 원소들이 뒤죽박죽 난리났네요

 

그래도 배열안에서 제일 큰 수를 찾아내는 max값을 찾아내는 일이란것은 변함없습니다.

 

그럼 코드를 작성해보겠습니다. 얍!

 

 

코드도 간단합니다.

 

1번 배열의 첫번째 원소를 변수에 저장해줍니다.

2번 배열안의 모든 원소와 값을 비교해야하므로 배열의 길이만큼 반복되는 반복문을 만들어 줍니다.

3번 배열의 원소를 [0] ~ [n]까지 모두 비교해 큰수를 변수 var_b에 넣어줍니다.

 

이것을 기반으로 만든 코드가 위와 같습니다.

 

참 쉽죠?

 

 

깔끔히 성공했습니다. 다음에 세번째 문제로 돌아오겠습니다.

 

이상 Chapter3 : Jailbreak(2) 풀이 였습니다.

 

 

'Coding > hacked' 카테고리의 다른 글

3.hacked : Jailbreak (4)  (0) 2017.08.03
3.hacked : Jailbreak (3)  (0) 2017.08.03
3.hacked : Jailbreak (1)  (0) 2017.08.03
2.hacked : High School Hack (4)  (0) 2017.08.02
2.hacked : High School Hack (3)  (0) 2017.08.02


 

이제는 Chapter3 : Jailbreak 가 열렸네요. 오늘도 문제를 다 뿌수도록 하겠습니다.

 

 

들어와보니 익숙한 느낌의 사과가 반겨주네요.

 

 

Pattern : Max

 

 

첫번째 문제의 패턴은 Max 최대값을 찾는 문제입니다.

 

배열안에 두개의 원소가 들어있고 둘 중 누가 더 큰 수인지 판별하는 간단한 패턴입니다.

 

그럼 코드로 작성해보겠습니다. 얍!

 

 

위의 코드는 간단합니다.

 

배열안에 두개의 원소밖에 없기 때문에 두개의 원소를 직접 비교해주고 큰 수를 돌려주는 간단한 문제입니다.

 

참 쉽죠?

 

 

깔끔히 성공했습니다. 다음에 두번째 문제로 돌아오겠습니다.

 

이상 Chapter3 : Jailbreak(1) 풀이 였습니다.

'Coding > hacked' 카테고리의 다른 글

3.hacked : Jailbreak (3)  (0) 2017.08.03
3.hacked : Jailbreak (2)  (0) 2017.08.03
2.hacked : High School Hack (4)  (0) 2017.08.02
2.hacked : High School Hack (3)  (0) 2017.08.02
2.hacked : High School Hack (2)  (0) 2017.08.02


 

Chapter 2 : High School Hack 네번째문제입니다.

 

바로 패턴부터 살펴보겠습니다.

 

 

이번 패턴도 어렵지 않습니다.

 

입력값으로 배열의 길이를 주면 그 길이에 맞춰 배열 안에 0부터 시작하는 양의 정수를 채워 넣으면 됩니다.

 

그럼 코드를 작성해보겠습니다. 얍!

 

 

배열을 돌려줘야 하기 때문에 배열을 먼저 선언해 줬습니다.

 

그리고 while문을 이용하여 배열안에 0부터 1씩 증가하는 값을 차례대로 채워 넣었습니다.

 

그리고 while의 반복횟수는 입력값보다 작게 반복하면 됩니다. 배열은 1부터 시작하는게 아니라 0부터 시작하기 때문입니다.

 

 

 

High School Hack (4) 의 문제풀이를 마쳤는데요 Chapter2는 네번째 문제가 마지막 문제였네요.

 

다음에는 Chapter3으로 돌아오겠습니다.

'Coding > hacked' 카테고리의 다른 글

3.hacked : Jailbreak (2)  (0) 2017.08.03
3.hacked : Jailbreak (1)  (0) 2017.08.03
2.hacked : High School Hack (3)  (0) 2017.08.02
2.hacked : High School Hack (2)  (0) 2017.08.02
2.hacked : High School Hack (1)  (0) 2017.08.02


 

Chapter 2 : High School Hack 세번째문제입니다.

 

바로 패턴부터 살펴보겠습니다.

 

 

이번 패턴도 간단해 보입니다. 

 

살펴보니 배열을 입력값으로 주면 배열의 길이를 확인해서 알려주면 될 것 같습니다.

 

그럼 코드로 작성해보겠습니다. 얍!

 

 

이번에 foreach 가 새로 생겨서 foreach를 이용해서 만들었습니다. 먼저 foreach가 어떤건지 예를 들어 보겠습니다.

처음 봤다면 당황하지 마세요. 전혀 어렵지 않습니다.

 

var_a;     //변수 선언

var_b = [1,2,3,];    //배열 초기화

 

위처럼 배열과 변수가 있을 때 간단한 코드를 써 보겠습니다.

 

foreach var_a in var_b {

var_c++ ;

retrun var_c;

 

이렇게 되면 처음 foreach 문을 들어오게 되었을 때 var_a 에 var_b의 첫번째 인수인 1이 들어가게됩니다.

그리고 중괄호 안의 내용을 실행하게 되는데요 var_c의 값이 1증가합니다.

 

var_b에 아직 배열에 원소가 남아있으므로 다시 var_a에 var_b의 두번째 인수가 들어갑니다. 그리고 중괄호 안의 코드가 실행됩니다.

이렇게 배열의 마지막 인수까지 실행이 된 후 foreach가 끝나게 됩니다.

 

그럼 var_b에는 3개의 인수가 들어있으므로 var_c의 값은 1씩 3번 증가했으니 var_c의 값은 3이 됩니다.

 

이렇게 foreach문을 이용해서 배열의 길이를 알 수 있었습니다. 참 쉽죠?

 

 

High School Hack (3) 의 문제풀이를 마치겠습니다.

'Coding > hacked' 카테고리의 다른 글

3.hacked : Jailbreak (1)  (0) 2017.08.03
2.hacked : High School Hack (4)  (0) 2017.08.02
2.hacked : High School Hack (2)  (0) 2017.08.02
2.hacked : High School Hack (1)  (0) 2017.08.02
1.hacked : The Hackpad (4)  (0) 2017.08.01


 

Chapter 2 : High School Hack 두번째문제입니다.

 

바로 패턴부터 살펴보겠습니다.

 

 

첫번째 문제와 같은 패턴이네요. 입력값의 제곱수를 돌려주면 되는 간단한 패턴이네요.

 

바로 코드로 작성해보겠습니다. 얍!

 

 

저번 문제를 풀고 새롭게 생긴 pow라는 함수를 이용해서 한줄로 만들었습니다.

 

pow(a,b); 라는 함수는 a를 b의 크기만큼 제곱하는 함수입니다.

 

간단한 예를 들어보면은   pow(3,5); 라면 3의 5승이 되는 겁니다. 즉 3*3*3*3*3 이 되는거죠. 참 쉽죠?

 

 

High School Hack (2) 의 문제풀이를 마치겠습니다.


 

'Coding > hacked' 카테고리의 다른 글

2.hacked : High School Hack (4)  (0) 2017.08.02
2.hacked : High School Hack (3)  (0) 2017.08.02
2.hacked : High School Hack (1)  (0) 2017.08.02
1.hacked : The Hackpad (4)  (0) 2017.08.01
1.hacked : The Hackpad (3)  (0) 2017.08.01

+ Recent posts