제가 C언어와 C#을 건너 뛰고 바로 유니티로 넘어온 것은 간단합니다.

그동안 C언어에서 했었던 내용을 반복을 하거나 그러는 것 밖에는 C#에는 없다고 생각을 합니다.

만약 C#으로 따로 설명이 필요한 경우에는 강좌를 첨가해서 따로 올리도록 하겠습니다.

A라는 유니티 강좌가 진행이 되고 나서 추가적인 C#설명이 필요해 지면 다음날 B라는 C#설명을 하고 난 후에 A라는 강좌에 주석 같은 느낌으로 링크를 추가해 둘겁니다.

그러면 링크를 클릭하여 주시면 됩니다.

먼길을 돌아갔네요 간단하게 게임을 만들면서 게임 공유는 자작 게임에 올리도록 하겠습니다.


그러면 이번 년도 개발 계획은 어떻게 되느냐??

현재 저는 Civil War의 베타버젼 개발을 시작했습니다.

UI를 추가하고 보다 더 깔끔한 화면을 지원할 예정입니다.


강좌는 자주 올라오는 편은 아닐지 몰라도 이것은 약속하겠습니다.


매달 20편의 게시글을 발행하겠다는 것을요!!

이거는 지키도록 하겠습니다.

학교에서 쉬는 시간에 공부해서 기제를 하도록 하겠습니다.

그러면 저는 이만 공부를 해서 보다 더 완벽한 강좌를 생각해 두겠습니다!!!

( 저의 강좌는 언제나 저랑 함께 배우는 느낌으로 진행이 됩니다. '이것이 옳다'가 아닌 '저는 이렇게 이해했습니다'가 더 참고하시기 편하실 겁니다. )

블로그 이미지

이사가는 사람

안녕하세요 블로그를 옮기려고 생각하고 있습니다. 해당 블로그는 폐기하고 다음 다른 블로그에서 뵙도록 하겠습니다. 감사합니다!

,

이것도 중복 강좌일 수도 있습니다.

하지만 저는 굳이 한 번 더 하고 싶어서 이렇게 올리게 됩니다.

게시한 글이 많아지고 점점 오래되다 보니 기억이 살짝 애매해지는 것 같군요

일단 노화는 아닙니다.

왜냐하면 제가 자율동아리에서 부장을 맡았는데 어쩌다보니 부장인 제가 프로그래밍 강의를 하고 있기에.... 쿨럭!! 아무튼!! 하도록 하겠습니다.

(그리고 다른 블로그에 있는 강좌 왜 안하시는 지?? 라고 물으신다면 저는 할 말이 없습니다. 저는 제가 독학을 하면서 예제를 직접 만들어 공부했고 그때 쓰던 방식들만 알고 있기때문에 저는 그것들을 먼저 차근차근 해나아가고 싶습니다. 뭐 나중에 정식으로 배운다면 시즌 2라는 것을 달고 다시 올리기는 할 겁니다.)

변수선언이라는 것은 다른 이름으로 자료형이라는 것을 말하기도 합니다.

저는 변수선언이라는 말을 더 많이 쓰지만 다른 이름인 자료형이라는 것도 알아두셨으면 합니다.

일단 다른 강좌에서는 자료형이라고 표현을 하고 있으니 제 강좌를 보신다면 

자료형이라는 것을 검색하셔서 다른 강좌도 찾아보셨으면 합니다.

먼저 자료형은 4가지 외 한개로 이루어져 있습니다.

문자형, 정수형, 실수형, void형 외 기타

이렇게 이루어져있습니다. 

 문자형 - char, unsigned char

 정수형 - int, unsigned int, short, unsigned short, long, unsigned long

 실수형 - float, double

정수형은 가우스기호를 씌운 느낌의 방식입니다.

그러니깐 소수점이 없는 형태라는 소리죠.

반면 실수형은 소수점이 있어도 됩니다.

또, 문자를 표현하는 방법으로는 각 문자에 코드를 부여해서 표기하는 방법입니다.

C언어는 알파벳의 대소문자도 구별을 합니다.

그러면 다음 강좌에서 봐요!

블로그 이미지

이사가는 사람

안녕하세요 블로그를 옮기려고 생각하고 있습니다. 해당 블로그는 폐기하고 다음 다른 블로그에서 뵙도록 하겠습니다. 감사합니다!

,

콘솔창의 크기는 원래 마음데로 하지 못하고 있었습니다.

하지만, 오늘 이 글을 보신 뒤 부터는 콘솔창을 전체화면 또는 지뢰찾기 초급 수준으로 늘리시거나 줄이실 수 있습니다!

그래서 저는 간단하게 코드를 보여드리려고 합니다.

1
2
3
4
5
#include <stdio.h>
#include <windows.h>
int test() {
system("mode con cols=70 lines=70");
}
cs

이렇게 나옵니다.

이렇게 만들어 놓으면 가로 70 세로 70크기의 콘솔창이 뜹니다.

그리고 가로는 cols이고 lines가 세로가 되는 것입니다.

이것들은 이전 강좌에서 계속해서 알아보고 있는 windows헤더선언이 되어있다면 아마 언제든지 사용이 가능하리라고 생각을 하고 있습니다.

알맞은 크기로 만들어 보는 것은 어떨까요???

그리고 한가지 더!! 주의를 하셔야 할 점이 있습니다.

정사각형의 꼴을 맞추고 싶으시다면 가로는 70 세로는 35로 약 가로와 세로의 비율이 70 : 35 = 가로 : 세로 와 같은 2배의 형태가 되는 것이 좋습니다.

괜히 제가 저렇게 70 : 70으로 맞추었다고 해서 그렇게 하시면 안됩니다.

그러면 다음으로 색을 바꾸도록 하겠습니다.

색상은 조금 복잡하다고 생각을 합니다.

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
#include <windows.h>
test(int color_number) {
  SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),color_number);
}
int main() {
  test(14);
  printf("테스팅\n");
  return 0;
}
cs

이렇게 되는 것인데 이전 함수 선언을 했을 때를 응용하여 text의 색상을 원하는 색으로 변형이 가능해지는 것입니다.

이렇게 되는 것인데 이것이 출력되는 비슷한 코드를 사진으로 준비를 했습니다.

코드를 복사만 하는 것은 좋지 않은 방법이니 제가 올린 사진을 보고 부디 따로 작성을 하셨으면 합니다.


블로그 이미지

이사가는 사람

안녕하세요 블로그를 옮기려고 생각하고 있습니다. 해당 블로그는 폐기하고 다음 다른 블로그에서 뵙도록 하겠습니다. 감사합니다!

,

오늘은 실행을 잠시 멈추는 것을 뜻하는 대기 함수에 대하여 강좌를 시작하려고 하는데요.

이것은 잠깐의 대기를 하라고 하는 코드입니다.

코드는 간단하지만 우리가 흔하게 알고 있는 시간의 개념과는 조금 많이 다르니 그 점은 유의를 해주시기를 바랍니다.

Sleep (1000);

이라는 코드는 우리가 알고 있는 단위인 초, 분, 시각 과는 전혀 다른 느낌입니다.

밀리초 라는 단위로 1000을 입력해야 1초라는 시간이 완성되는 것이지요.

그리고 이 명령어역시 windows라는 헤더파일( windows.h )을 사용하겠다고 선언을 해야 비로소 사용이 가능해지는 내장함수입니다.

그러면 다음 주제인 주석이라는 녀석으로 넘어가 볼까 합니다.

주석이라는 것은 원래 먼저 설명을 했어야 하는 것이지만 제가 부득이 하게 잊어버리게 된 관계로 살짝 늦어지지 않았나 합니다.

이전에 설명을 했지만 잊어버린 것이라면 뭐.... 할 말은 없습니다.

주석의 종류는 2가지가 존재합니다.

하나는 ' // '로 슬래시 두개가 연속으로 나온 뒤의 enter가 press되기 전까지 전부 프로그래밍의 코드라고 인식을 하지 않습니다.

그리고 다른 또하나는 ' /* 주석 내용 */ '이라는 주석이 존재하는 데요 저 /**/ 사이에 들어가는 모든 문장은 주석으로 인식하여 코드를 실행하지 않습니다.

이런 것은 다른 사람에게 나의 코드를 설명하는 과정또는 버그를 테스팅하기 위해서 사용을 하는 경우가 있습니다.

저는 주로 전자에서 사용을 더 하지만요

그렇다고 해서 제가 코드를 짠 것은 무조건 버그가 없다는 것이 아닙니다.

아직까지는 제가 기억을 하고 원하는 파트를 수정하고 테스팅하는 과정을 사용을 할 뿐이지요 코드를 아에 삭제할 필요는 없다고 보니깐요.

블로그 이미지

이사가는 사람

안녕하세요 블로그를 옮기려고 생각하고 있습니다. 해당 블로그는 폐기하고 다음 다른 블로그에서 뵙도록 하겠습니다. 감사합니다!

,

제목에도 나와있듯이 오늘을 실행창(명령창 또는 cmd)에 출력되는 것들을 전부 삭제해 보겠습니다.

헤더는 windows헤더입니다. ( windows.h )

그러면 바로 핵심 코드를 본다면

1
2
3
4
5
6
7
8
#include <stdio.h>
#include <windows.h>
int main() {
  printf("안녕하세요?\n");
  system("cls");
  printf("안녕?\n");
  return 0;
}
cs

이런 식으로 나옵니다.

그런데 이거 바로 '안녕?'이 출력이 될겁니다.

이거에 관하여는 다음 강좌인 대기 함수라는 것을 할 때 진행을 하려고 합니다.

그러면 이제는 분석을 들어가야 하는 타이밍입니다.

#include <windows.h>라는 구절이 있습니다.

이는 windows라는 헤더파일을 사용하겠다라고 표현을 하는 것입니다.

그래서 실제로 windows헤더 파일에 있는 내장함수(헤더파일 내에 존재하는 함수들)를 사용하는 것인데요 그 중 하나가 system ("cls");입니다.

이것은 출력창(실행창 또는 cmd)에 출력이 된 모든 문장을 지우는 것으로 가독성을 상승시켜주고 제가 앞으로 베타 테스팅에 돌입하면서 사용을 하게 되는 것이기도 합니다.

실제로 제가 올려놓은 게임 예제를 보시게 된다면 아마 가독성이 떨어지는 게임이라는 것을 확인하실 수가 있으실 겁니다.

그래서 가독성을 올려주고 우리가 흔히 접하는 프로그램의 형태를 지니게 해주는 것입니다.

하지만 windows헤더에는 가장 큰 단점이 있습니다.

그 단점은 윈도우에서만 사용이 가능하다고 들었습니다.

윈도우로 범위가 좁혀지는 것은 원하는 바가 아니지만 그래도 사용을 하는 것으로 합시다.


블로그 이미지

이사가는 사람

안녕하세요 블로그를 옮기려고 생각하고 있습니다. 해당 블로그는 폐기하고 다음 다른 블로그에서 뵙도록 하겠습니다. 감사합니다!

,

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.

솔직히 따로 만들어서 설명을 해야하나 생각을 많이 했었습니다....

하지만 제가 생각하기에 이것은 따로 게시글을 빼야할 존재가 될 수도 아닐 수도 있습니다.

하지만 이 글을 읽고 계시는 분이 만약 저와 같은 고등학생이시라면 그냥 도움이 되셨으면합니다. //이 말의 의미는 알아서 해석을 하셨으면 합니다.

설명을 시작하자면 우리는 변수를 선언할 때 다양한 선언을 합니다.

int로 선언하기도 하고 double로 선언하기도 합니다.

하지만 이것은 왜 이렇게 선언을 하는 것일까요??

답은 변수를 선언할 때 메모리 값을 미리 정할 수 있기 때문에 컴퓨터에게 부담이 가지 않게 설정이 가능 합니다.

그래서 우리는 다양한 변수 선언을 시도하곤 합니다.

그에 따라 포인터 형도 다양하게 바뀌어야 합니다.

메모리 값이 정해지는 만큼 여러가지를 알아두면 좋지만 아직은 배우고 있는 입장이니 int형만 사용을 하는 것은 나쁘지 않다고 생각을 합니다.

메모리를 참조해야 하는 크기도 큰 편은 아니고 작은 편도 아니라서 좋다고 생각을 합니다.

또 이유가 있습니다.

실수로 해석을 할지 정수로 해석을 할지 정하는 것도 다양한 포인터 형이 존재하는 이유가 될 수 도있습니다.

그러니 부디 다른 선언을 하거나 그런 실수는 없었으면 합니다.

블로그 이미지

이사가는 사람

안녕하세요 블로그를 옮기려고 생각하고 있습니다. 해당 블로그는 폐기하고 다음 다른 블로그에서 뵙도록 하겠습니다. 감사합니다!

,

오늘은 포인터 연산자에 대하여 배우게 될 건데요

포인터 연산자는 제가 그냥 포인터와 관련된 연산자를 간단하게 말하기 위해서 임의로 정한 말이니 뭐... 딱히 알아두시지 않으셔도 좋을 것 같습니다.

포인터 연산자는 두개정도 있습니다.

&와 *이 포인터 연산자로 존재하는데 *은 곱셈 연산자와는 거리가 멀다 연산이 되는 피연산자라는 녀석이 존재하는데 여기서의 피연산자는 2개가 아닌 한개이기에 곱셈연산자가 아닙니다.

그러니 곱셈연산자와 포인터 연산자를 혼돈하지 않는 것으로 해야할 것 같습니다.

일단 &연산자를 설명하려고 하는데

이 연산자는 전에 말했던것 같기도하고..... 아무튼 자세히 다시 설명을 하려고 하니 일단 들어두시는 것을 추천합니다.

아무튼!!이 연산자는 변수의 주소(이름)을 반환하는 연산자입니다.

그래서 표현을 하자면

1
2
3
4
5
int main() {
  int nm = 7;
  int * pnm = &nm;
  //코드
}
cs

이런 식으로 나오게 될겁니다.

그러면 이제 & 연산자의 피연산자는 변수이어야 합니다.

그러니 다른 것이 온다고 하더라도 오류를 뿜뿜하고 내뿜지 않을까 합니다.

또한 주의를 해야할 점으로는 int형 변수는 int형 포인터 변수에 저장을 해야 합니다.

또는 이 반대의 경우는 용납이 가능합니다.

int는 int에 저장을 해야할 필요가 있습니다.

이어서 *연산자를 설명하도록 하겠습니다.

이 연산자는 메모리 공간에 접근할 시 사용하는 연산자입니다.

그러면 간단하게 설명을 하도록 하겠습니다.

만약

1
2
3
4
5
int nm = 100, nm1 = 100;
int * pnm;
pnm = &nm;
(*pnm) += 48;
printf("nm : %d, nm1 : %d", nm, nm1);
cs

이러한 코드가 존재한다면 이렇게 표현이 가능합니다.

1| nm이라는 변수에 100의 값을 nm1이라는 변수에 100의 값을 저장한 상태로 선언합니다.

2|pnm이라는 포인터 변수를 선언합니다.

3|pnm이라는 포인터 변수는 nm이라는 변수를 가리킵니다.

4|pnm이라는 포인터 변수가 가리키는 변수에 48을 더하고 저장합니다.

5|"nm : (nm의 값), nm1 : (nm1의 값)"을 출력합니다.

라는 의미로 해석이 가능해 집니다.

그러면 이 코드를 출력했을 시

nm은 148이 출력되고 nm1은 100이 출력됩니다.

그러면 4번 째 줄을 보는 것으로 설명을 마치겠습니다.

4번 째 줄의 형태는 이러합니다.

*pnm 즉 pnm이 가리키는 nm에 48을 더하고 저장하는 코드가 되는 것이죠 네... 아무튼!! 이렇게 사용이 가능해 집니다.

그러면 다음 강좌에서 뵙도록 합시다.


블로그 이미지

이사가는 사람

안녕하세요 블로그를 옮기려고 생각하고 있습니다. 해당 블로그는 폐기하고 다음 다른 블로그에서 뵙도록 하겠습니다. 감사합니다!

,
먼저 변수라는 것을 설명해야 이번 포인터라는 것을 설명이 쉽게 가능하기 때문에 일단 변수를 다시 정의하도록 하겠습니다.

변수라는 것을 선언하면 컴퓨터는 정보를 저장할 공간을 마련합니다.

그 공간이라는 녀석은 메모리라고 불립니다.

그 메모리라는 녀석에게 이름을 붙여서 이 int형 변수는 어디에 할당이 되었는지 알려주는 것을 포인터라고 하는 것 입니다.

그러면 이해하기 편하게 설명을 추가적으로 하자면 도로명주소와 비슷하게 바둑판식 느낌의 공간에게 주소를 붙여서 찾기 쉽게 만드는 것입니다.

그러면 포인터에 관하여 간단하게 접해보는 것으로 하겠다.

1
2
3
4
5
6
7
8
int main() {
  int nm = 8;
  int * pnm;
  pnm = &nm;
  printf("%d"&nm);
  printf("%p"&pnm);
  return 0;
}
cs

이 코드로 하는 것입니다.

그러면 다시 분석을 하는 시간으로 돌아가보도록 하겠습니다.

간단하게 설명을 하자면 int nm 이것은 아실 겁니다.

하지만, int * pnm; 이것은 무엇인가 하실 것 같은데 이거는 pnm이라는 포인터 변수를 선언하는 것으로 그냥 선언문 입니다.

그리고 pnm = &nm; 이것은 선언된 포인터 변수에 nm의 포인터 값을 저장하는 것입니다.

또 %p라는 것은 %d와 비슷한 서식 문자로 나중에 다시 거론을 하도록 하겠습니다.

그냥 포인터라는 것은 변수의 주소와 비슷하다라고 생각을 하면 이해하기가 편하리라고 생각을 합니다.

저 코드로 출력이 되는 값은 직접 확인해 보는 것을 저는 추천합니다.

그럼 저는 다음 강좌시간에 찾아 뵙도록 하겠습니다.

감사합니다!!!! ^^

블로그 이미지

이사가는 사람

안녕하세요 블로그를 옮기려고 생각하고 있습니다. 해당 블로그는 폐기하고 다음 다른 블로그에서 뵙도록 하겠습니다. 감사합니다!

,

보호되어 있는 글입니다.
내용을 보시려면 비밀번호를 입력하세요.