Skip to content
Open

AS #1

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 6 additions & 16 deletions README.md
Original file line number Diff line number Diff line change
@@ -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
영상 링크입니다.
5 changes: 5 additions & 0 deletions pch.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
// pch.cpp: 미리 컴파일된 헤더에 해당하는 소스 파일입니다. 성공하려면 컴파일이 필요합니다.

#include "pch.h"

// 일반적으로 이 파일을 무시하지만 미리 컴파일된 헤더를 사용하는 경우 유지합니다.
51 changes: 51 additions & 0 deletions 마크 연습.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
#include "pch.h"
#include <iostream>
#include <CoalaMOD.h>
#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);
}



31 changes: 31 additions & 0 deletions 마크 연습.sln
Original file line number Diff line number Diff line change
@@ -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