diff --git a/README.md b/README.md index 7645954..fed8f06 100644 --- a/README.md +++ b/README.md @@ -1,18 +1,8 @@ -# CoalaMC -마인크래프트로 C언어를 공부합니다. +블럭은 stone 만 사용한다. +우선 두 좌표를 입력받고, 나중에 for문을 사용할 때 편리하도록 좌표를 비교하여 큰값과 작은값으로 분류한다. (big, little) -# 설치 및 실행 -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. 프로젝트를 빌드하고 실행합니다. +만들기로 한 건물은 맨 위와 맨 아랫층에는 각 모서리에만 블록을 설치하고, 나머지 층은 겉부분만 블록을 설치한다. +for문을 이용하여 y좌표(높이)마다 for문을 4번 사용하여(사각형의 각 변) 중간층들을 설치하고, 첫층과 마지막층은 따로 설치한다. -# 프로그램 개발 -프로그램 개발은 [wiki](https://github.com/coalasw/CoalaMC/wiki)를 참고하세요. - -- Example1: 기본 예제, STONE / DIRT 블록으로 격자 모양 만들기 -- Example2: 다양한 블록을 생성하고 놓는 방법을 알 수 있는 예제 -- Example3: 선 그리는 예제 -- Example4: 플레이어 앞에 비콘/글래스로 라이트를 설치하는 예제(v0.1.4 설치 필요) +https://youtu.be/ucUdzDd0dLM +영상 링크입니다. 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