본문 바로가기

분류 전체보기189

[Javascript] 2차원 배열 2048 게임 2048 게임이 무엇인지 모른다면 한번 검색해보고 직접 해보는걸 추천한다. 마우스가 움직이는 방향마다 4*4 판의 숫자가 모여지고 같은 숫자는 서로 더해지는 게임이다. 아래와 같은 모양의 4*4 판에 방향키가 움직일떄마다 왼쪽으로, 위로, 옆으로, 아래로 모아지면서, 같은 숫자가 만나면 더해지는 방식이다. 왼쪽,오른쪽으로 움직일 경우와, 위아래로 움직일 경우가 비슷한 방식으로 코드가 이루워지기 때문에 왼쪽과, 위로만 움직이는것을 보고 코드를 짜보자. 우선 코드먼저 보자면. 현재 data = [ [0,2,4,2], [0,0,8,0], [2,2,4,8], [0,16,0,4] ]; 2차원배열로 4*4 형식을 이루고있다. 글로 설명하자면 값을 표로 정리하자면 이런식으로 진행된다. 왼쪽으로 몰떄는 0을뺸 값을 n.. 2022. 4. 1.
[Javascript] DOM DOM : 문서객체모델 (Document Object Model)은 HTML 또는 XML에 접근하기 위한 인테페이스로, 문서내의 모든 요소를 정의하고, 각각의 요소에 접근하는 방법을 제공한다. 자바스크립트는 이러한 객체 모델을 이용하여 다음과 같은 작업을 할 수있다. - 자바스크립트는 새로운 HTML 요소나 속성을 추가할 수 있습니다. - 자바스크립트는 존재하는 HTML 요소나 속성을 제거할 수 있습니다. - 자바스크립트는 HTML 문서의 모든 HTML 요소를 변경할 수 있습니다. - 자바스크립트는 HTML 문서의 모든 HTML 속성을 변경할 수 있습니다. - 자바스크립트는 HTML 문서의 모든 CSS 스타일을 변경할 수 있습니다. - 자바스크립트는 HTML 문서에 새로운 HTML 이벤트를 추가할 수 있.. 2022. 3. 27.
[Linux/C] GDB GDB의 경우 Linux 로 컴파일 한것을 디버깅할수 있을 도구로 gcc -g [파일명] 을통해서 디버깅 할수 있도록설정한다음 gdb [컴파일한 파일명] 을 통해서 GDB로 접속한다. 기본적인 명령어로서 disas main : main() 함수에 적혀있는 함수를 어셈블리 언어로 확인할 수 있다. l : 코드를 10줄 보여주며, l을 누를때마다 10줄씩 보여준다. b : break point를 찍는 명령어로써, 코드를 실행시에 멈추게 되는 부분이다. r : 코드를 진행시킨다. Break Point 가 체크되어 있다면 해당 Break Point 에서 멈추게된다. n : 한줄을 실행 시키는 명령어로써 함수가 있을경우 해당 함수를 실행시키면서 한줄을 넘어가게된다. (해당 함수 안에 들어가서는 n키를 사용하는게 .. 2022. 3. 25.
[Javascript] 2차원배열 2차원 배열이란 [ [ 1, 2, 3 ], 0 [ 4, 5, 6 ], 1 [ 7, 8, 9 ] 2 ]; 위와 같은 방식으로 배열안에 배열이 들어가있는 형식이다. 이때 주로 data[][] []를 2번 표시하여 나타내준다. 이때 첫번쨰 []는 행의 숫자를말하는 것으로 현재는 0,1,2 총 3행이있고 1행안에서 3열이 존재하는 것이다. 즉 [0,1] = 1 [0,2] = 2 [0,3] = 3 [1,1] = 4 [1,2] = 5 [1,3] = 6 [2,1] = 7 [2,2] = 8 [2,3] = 9 가된다. 위와 같이 주로 2차원 배열의 경우 forEach문을 2개 사용하여 만들며, 첫번쨰로 선언한 data 배열안에 rowData 배열을 넣어준후에 rowData에 0을 넣어주고 있다. 이때 4번 4번씩 반복되.. 2022. 3. 25.
[Linux/C] 함수 포인터 우선 말하고 싶은 것은 함수도 결국 메모리에 저장되고, 저장된 메모리 주소를 함수명으로 저장한다고 말할 수 있다. 아래의 실행결과와 코드를 보면 우선 함수 포인터 *fp를 선언하였고 (반환형 void, 매개변수 없는) 해당 함수포인터에 test함수의 주소를 저장하였다. 이떄 fp,test의 주소와 데이터를 확인해보자 test함수가 저장되어 있는 메모리주소의 시작점이 -472358470이 나왔고, 함수형 포인터에 저장되어 있는 값또한 -472358470이 나왔다. 즉 함수형 포인터 안에, 이미 선언되어있는 test함수의 시작 주소가 저장되었고 fp포인터 자체의 메모리 주소는 2084418384가 나온것을 확인 할 수있다.(배열과 동일하게 함수의 값과 포인터 값을 동일 test, *test값이 동일했다.) .. 2022. 3. 24.
[Linux/C] 포인터 리눅스의 꽃 포인터 int * char * float * double * short * 를 sizeof 하여 보면 8byte가 나오게 되는데 이것은 컴퓨터 구조에 영향이 있다. 32bit 컴퓨터는 포인터가 4byte이다. 32bit 컴퓨터는 램을 4기가 이상 못 꼽는다. 각 주소번지마다 1:1 매칭이되야함 (랜덤엑세스) 왜다 8byte로 나오냐 ? --> 결국 포인터에 저장되는것은 메모리 주소 값이 저장된다. 64비트 컴퓨터의 경우는 8바이트의 주소값이 나오게 되므로 해당 주소를 수용할 수 있는 8byte가 나오게된다. 해당 내용의 결과값을 가지고 그림으로 설명해보자. 그림을 말로 설명해보자 가장먼저 int a= 3; 을 통해서 메모리 주소를 a로 정의하고 해당 주소에 3을 대입하였다 printf("a .. 2022. 3. 23.
[Linux/C] 비트연산자 비트연산자 | & 우선 | 는 or 의 의미로 비트연산시 둘중 1이 하나라도 있으면 1로 나타내준다 0000 1000 (8) 0000 0100 (4) | 연산을 실시한다고 하면 --------------- 0000 1100 (12) 을 나타내준다. & 비트 연산자는 and의 의미로써 둘다 1이여야 1로 나타내준다 0000 1000 (8) 0000 0100 (4) & 연산을 실시한다고 하면 --------------- 0000 0000 (0) 이다. 1) 의경우는 0000 0010 (2) 해당 값에서 비트를 >> 1칸 움직이는 것으로 ----------- 0000 0001 (1) 이 된다. (2>>2) 그이상 >> 연산은 그냥 0으로 나타낸다. 응용 하는 것으로 10 | (1 2022. 3. 16.
[Linux/C] C언어 서식 변환 문자 char 1byte short 2byte int 4byte long 4byte float 4byte double 8byte char / unsigned char ==> %c, %hd short,int / unsigned short,unsigned int ==> %d, %u long / unsigned long ==> %ld, %lu float, double ==> %f %s ==> 문자열을 표현한다. 2022. 3. 13.
[Linux] Ubuntu 20.04 설치 Ubuntu 20.04 설치 하는 방법을 소개해 드리겠습니다. 우선 설치 가능한 운영체제는 window10 사용자 인데요 한번 설치 방법을 알아 봅시다. 1.윈도우 키를 누른 상태에서 설정 키를 눌러줍니다. 2. 검색 창에 windows 기능을 검색한 후 뜨는 창에서 Linux용 Windows 하위 시스템을 선택> 후 확인을 눌러줍니다. 그 후 잠시 대기 하면.. 설치가 완료되고 재부팅 하라는 창이 뜨고 재부팅을 실시 합니다. 3. 재부팅이 완료 되었다면, 윈도우 버튼 옆 검색란에 Microsoft store 를 검색해 줍니다. 4.검색을 한 후에 Microsoft Store에서 Ubuntu 를 검색하면 다운로드 할 수 있는 버전이 검색됩니다. 5. 원하시는 버전을 선택 한 후에 설치를 눌러줍니다. > .. 2022. 3. 11.
[Javascript] .map forEach와 Map의 차이점을 말하자면 수정된 배열의 return 여부로 나뉜다. Map의 경우는 원본 배열을 수정하여 새로운 배열을 return할 수 있으나 forEach는 불가능하며, forEach의 경우는 기존배열을 가공하여 값을 변경할 수 있다. 일단 기본적으로 map의 경우 사용방법은 다음과 같다. Map의 원본 배열을 가공하여 새 배열을 만드는것을 확인해보자 보시다 시피 원본배열을 수정하여 새로운 배열을 만들수 있다. 동일한 방법으로 forEach를 활용해보자 동일한 방법으로 수행했지만 undefined 가 찍혀서 나왔으며, 원본 파일을 수정하여 새로운 배열을 만드는것이 불가능 함을 확인 할 수있다. 위와 동일하게 rearr 은 undefined 되어 값이 출력되지않았찌만 기존의 arr 배.. 2022. 3. 10.