From 45ad9377da26c69109dfa713913ed07d9441c171 Mon Sep 17 00:00:00 2001 From: ParkJaeSeong98 <48883899+ParkJaeSeong98@users.noreply.github.com> Date: Mon, 6 May 2019 17:29:37 +0900 Subject: [PATCH 1/5] Add files via upload --- pch.cpp | 5 ++ ...\355\201\254 \354\227\260\354\212\265.cpp" | 51 +++++++++++++++++++ ...\355\201\254 \354\227\260\354\212\265.sln" | 31 +++++++++++ 3 files changed, 87 insertions(+) create mode 100644 pch.cpp create mode 100644 "\353\247\210\355\201\254 \354\227\260\354\212\265.cpp" create mode 100644 "\353\247\210\355\201\254 \354\227\260\354\212\265.sln" diff --git a/pch.cpp b/pch.cpp new file mode 100644 index 0000000..2ef8952 --- /dev/null +++ b/pch.cpp @@ -0,0 +1,5 @@ +// pch.cpp: 미리 컴파일된 헤더에 해당하는 소스 파일입니다. 성공하려면 컴파일이 필요합니다. + +#include "pch.h" + +// 일반적으로 이 파일을 무시하지만 미리 컴파일된 헤더를 사용하는 경우 유지합니다. diff --git "a/\353\247\210\355\201\254 \354\227\260\354\212\265.cpp" "b/\353\247\210\355\201\254 \354\227\260\354\212\265.cpp" new file mode 100644 index 0000000..150105e --- /dev/null +++ "b/\353\247\210\355\201\254 \354\227\260\354\212\265.cpp" @@ -0,0 +1,51 @@ +#include "pch.h" +#include +#include +#pragma comment(lib, "CoalaMOD.lib") + +int main() +{ + BlockID stone = createBlock(BLOCK_STONE); + + int sx, sy, sz, ex, ey, ez, bx, lx, by, ly, bz, lz, i, j, p, q, r; + scanf_s("%d %d %d", &sx, &sy, &sz); + scanf_s("%d %d %d", &ex, &ey, &ez); // 양 끝 좌표 입력받기 + + bx = sx > ex ? sx : ex; + lx = sx < ex ? sx : ex; + by = sy > ey ? sy : ey; + ly = sy < ey ? sy : ey; + bz = sz > ez ? sz : ez; + lz = sz < ez ? sz : ez; // 큰수 작은수 정해놓기 + + if (bx - lx < 2 || by - ly < 2 || bz - lz < 2) // 건물 최소크기 3/3/3으로 정함 + printf("각각의 좌표 사이 거리가 2이상이 되도록 입력하세요. 종료합니다."); + else + locateBlock(stone, sx, ly, sz); // 바닥층 + locateBlock(stone, sx, ly, ez); + locateBlock(stone, ex, ly, sz); + locateBlock(stone, ex, ly, ez); + + for (i = ly + 1; i < by; i++) { // 중간층들 - y좌표 변화하면서 + for (j = lx; j < bx + 1; j++) { // 중간층들 - 각 변 + locateBlock(stone, j, i, lz); + } + for (p = lx; p < bx + 1; p++) { // 중간층들 - 변 + locateBlock(stone, p, i, bz); + } + for (q = lz; q < bz + 1; q++) { // 중간층들 - 변 + locateBlock(stone, lx, i, q); + } + for (r = lz; r < bz + 1; r++) { // 중간층들 - 변 + locateBlock(stone, bx, i, r); + } + } + + locateBlock(stone, sx, by, sz); // 맨위층 + locateBlock(stone, sx, by, ez); + locateBlock(stone, ex, by, sz); + locateBlock(stone, ex, by, ez); +} + + + diff --git "a/\353\247\210\355\201\254 \354\227\260\354\212\265.sln" "b/\353\247\210\355\201\254 \354\227\260\354\212\265.sln" new file mode 100644 index 0000000..edc6a7d --- /dev/null +++ "b/\353\247\210\355\201\254 \354\227\260\354\212\265.sln" @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 15 +VisualStudioVersion = 15.0.28307.438 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "마크 연습", "마크 연습\마크 연습.vcxproj", "{3B545C22-D450-4393-B4B9-07561C89BDE8}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {3B545C22-D450-4393-B4B9-07561C89BDE8}.Debug|x64.ActiveCfg = Debug|x64 + {3B545C22-D450-4393-B4B9-07561C89BDE8}.Debug|x64.Build.0 = Debug|x64 + {3B545C22-D450-4393-B4B9-07561C89BDE8}.Debug|x86.ActiveCfg = Debug|Win32 + {3B545C22-D450-4393-B4B9-07561C89BDE8}.Debug|x86.Build.0 = Debug|Win32 + {3B545C22-D450-4393-B4B9-07561C89BDE8}.Release|x64.ActiveCfg = Release|x64 + {3B545C22-D450-4393-B4B9-07561C89BDE8}.Release|x64.Build.0 = Release|x64 + {3B545C22-D450-4393-B4B9-07561C89BDE8}.Release|x86.ActiveCfg = Release|Win32 + {3B545C22-D450-4393-B4B9-07561C89BDE8}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {0B0AFA26-D050-462E-9A9F-90A1A04FA3F9} + EndGlobalSection +EndGlobal From a28f69d68517f3c2b37030b20a1af23f3dfc6569 Mon Sep 17 00:00:00 2001 From: ParkJaeSeong98 <48883899+ParkJaeSeong98@users.noreply.github.com> Date: Mon, 6 May 2019 17:34:23 +0900 Subject: [PATCH 2/5] Update README.md --- README.md | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/README.md b/README.md index 7645954..1da4ce3 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,17 @@ -# CoalaMC -마인크래프트로 C언어를 공부합니다. - -# 설치 및 실행 -1. [releases](https://github.com/coalasw/CoalaMC/releases)에서 최신 버전을 설치합니다([wiki](https://github.com/coalasw/CoalaMC/wiki/1.-프로그램-설치) 참조) -2. code를 clone하거나 다운로드 합니다. -3. CoalaMC를 실행합니다. Single Player로 들어가서 Creative Mode로 월드를 생성합니다. -4. Visual C++ 2017로 Examples.sln을 엽니다. -5. 실행하고자 하는 프로젝트를 시작 프로젝트로 설정합니다. -6. 프로젝트를 빌드하고 실행합니다. - -# 프로그램 개발 -프로그램 개발은 [wiki](https://github.com/coalasw/CoalaMC/wiki)를 참고하세요. - -- Example1: 기본 예제, STONE / DIRT 블록으로 격자 모양 만들기 -- Example2: 다양한 블록을 생성하고 놓는 방법을 알 수 있는 예제 -- Example3: 선 그리는 예제 -- Example4: 플레이어 앞에 비콘/글래스로 라이트를 설치하는 예제(v0.1.4 설치 필요) +마인크래프트에서, +다음 조건을 만족하는 건물을 생성하는 프로그램을 개발해서 GitHub에 올리세요. + +조건1) scanf를 이용해서, 건물의 위치와 크기를 입력 받는다. + 두 점 (sx, sy, sz)와 (ex, ey, ez)으로 만들어지는 공간에 맞춰서 건물이 생성된다. +조건2) 주어진 공간의 밖에 블록이 놓아지면 안된다. +조건3) 주어진 공간에 맞춰서 건물 크기가 조정된다. + 크기 변경에 대해서 건물이 어떻게 바뀌는 지를 알 수 있도록, + 다른 위치/크기로 프로그램을 여러 번 실행하고, + 꾸며진 월드를 돌아 다니는 동영상을 만들어서 제출한다. + 동영상으로 건물 크기가 잘 조정되는지 확인한다. + + 과제의 GitHub 링크를 제출한다. GitHub에는 다음 내용이 포함되어야 한다. + - Visual C++ 프로젝트 및 소스 코드(빌드 가능) + - 꾸며진 월드를 돌아 다니는 소개 동영상 + - 과제 설명(README.md) + 만들고자 하는 것이 무엇이고 어떻게 만들었는 지를 설명하는 자료 From 162650df1cf94b814a55438daf7123574cd78b68 Mon Sep 17 00:00:00 2001 From: ParkJaeSeong98 <48883899+ParkJaeSeong98@users.noreply.github.com> Date: Mon, 6 May 2019 17:40:32 +0900 Subject: [PATCH 3/5] Update README.md --- README.md | 22 +++++----------------- 1 file changed, 5 insertions(+), 17 deletions(-) diff --git a/README.md b/README.md index 1da4ce3..b9d849a 100644 --- a/README.md +++ b/README.md @@ -1,17 +1,5 @@ -마인크래프트에서, -다음 조건을 만족하는 건물을 생성하는 프로그램을 개발해서 GitHub에 올리세요. - -조건1) scanf를 이용해서, 건물의 위치와 크기를 입력 받는다. - 두 점 (sx, sy, sz)와 (ex, ey, ez)으로 만들어지는 공간에 맞춰서 건물이 생성된다. -조건2) 주어진 공간의 밖에 블록이 놓아지면 안된다. -조건3) 주어진 공간에 맞춰서 건물 크기가 조정된다. - 크기 변경에 대해서 건물이 어떻게 바뀌는 지를 알 수 있도록, - 다른 위치/크기로 프로그램을 여러 번 실행하고, - 꾸며진 월드를 돌아 다니는 동영상을 만들어서 제출한다. - 동영상으로 건물 크기가 잘 조정되는지 확인한다. - - 과제의 GitHub 링크를 제출한다. GitHub에는 다음 내용이 포함되어야 한다. - - Visual C++ 프로젝트 및 소스 코드(빌드 가능) - - 꾸며진 월드를 돌아 다니는 소개 동영상 - - 과제 설명(README.md) - 만들고자 하는 것이 무엇이고 어떻게 만들었는 지를 설명하는 자료 +블럭은 stone 만 사용한다. +우선 두 좌표를 입력받고, 나중에 for문을 사용할 때 편리하도록 좌표를 비교하여 큰값과 작은값으로 분류한다. (big, little) + +만들기로 한 건물은 맨 위와 맨 아랫층에는 각 모서리에만 블록을 설치하고, 나머지 층은 겉부분만 블록을 설치한다. +for문을 이용하여 y좌표(높이)마다 for문을 4번 사용하여(사각형의 각 변) 중간층들을 설치하고, 첫층과 마지막층은 따로 설치한다. From 7d4acb877f168efd9a1f33a382925491c9d7dfb8 Mon Sep 17 00:00:00 2001 From: ParkJaeSeong98 <48883899+ParkJaeSeong98@users.noreply.github.com> Date: Mon, 6 May 2019 18:01:05 +0900 Subject: [PATCH 4/5] Update README.md --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index b9d849a..d0d5416 100644 --- a/README.md +++ b/README.md @@ -3,3 +3,5 @@ 만들기로 한 건물은 맨 위와 맨 아랫층에는 각 모서리에만 블록을 설치하고, 나머지 층은 겉부분만 블록을 설치한다. for문을 이용하여 y좌표(높이)마다 for문을 4번 사용하여(사각형의 각 변) 중간층들을 설치하고, 첫층과 마지막층은 따로 설치한다. + +https://youtu.be/ucUdzDd0dLM From 27ff69f8292a4ddb86fc7c86e05c6aeb29893747 Mon Sep 17 00:00:00 2001 From: ParkJaeSeong98 <48883899+ParkJaeSeong98@users.noreply.github.com> Date: Mon, 6 May 2019 18:01:27 +0900 Subject: [PATCH 5/5] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d0d5416..fed8f06 100644 --- a/README.md +++ b/README.md @@ -5,3 +5,4 @@ for문을 이용하여 y좌표(높이)마다 for문을 4번 사용하여(사각형의 각 변) 중간층들을 설치하고, 첫층과 마지막층은 따로 설치한다. https://youtu.be/ucUdzDd0dLM +영상 링크입니다.