inhibitor.log development log

inhibitor.log

development log

베스킨라빈스 31 (br31)

문제

“베스킨라빈스 31”은 아주 유서 깊고 오래된 게임으로, 다음과 같은 규칙으로 진행된다.

  • 1부터 시작하여 한 명씩 차례대로 숫자를 부른다. 각 사람은 1개부터 3개까지의 숫자를 부를 수 있다.
  • 31을 부르는 사람이 패배한다.

이 게임은 많은 사람들이 있을 때 하면 결과를 예측할 수 없어 스릴이 넘치지만, 만약 두 명이 이 게임을 한다면 반드시 시작하는 사람(선공)이 이기게 되므로 재미가 없다. 따라서 “업그레이드”라는 규칙을 추가했다.

  • 업그레이드: 바로 전 사람이 부른 숫자의 개수만큼 숫자를 부르면 패배하게 된다. 예를 들어, 이전 사람이 2개의 숫자를 불렀다면 다시 2개의 숫자를 부를 수 없다.

“베스킨라빈스 N” 게임을 진행할 때, 선공과 후공 중 누가 이기게 되는지 예측하는 프로그램을 작성하시오.

09. Specular Lighting, Ambient Lighting

WebGL 튜토리얼 목록

전 튜토리얼에서는 가장 기본이 되는 shading 알고리즘 중 diffuse reflection(난반사)를 근사하여 표현하는 Lambertian model에 대해 알아보고, 이를 구현하는 GLSL 코드를 작성해 보았습니다. 이번 튜토리얼에서는 specular reflection(정반사)를 표현하는 모델들과 ambient lighting에 관해 알아보고, 마찬가지로 GLSL shader 프로그램으로 이를 구현해 보도록 하겠습니다.

08. Diffuse Lighting

WebGL 튜토리얼 목록

앞 튜토리얼에서 3D 물체를 가상 카메라를 활용하여 렌더링하는 방법에 대해 알아보았습니다. 하지만, 아직 빛과 그림자를 추가하지 않았기 때문에 3D 물체라도 다소 평면적으로 보입니다. 이번에는 입체감을 더욱 살릴 수 있도록 물체의 밝고 어두운 부분을 나타내 보도록 하겠습니다.

07. 가상 카메라

WebGL 튜토리얼 목록

이번 튜토리얼에서는 (드디어!) 3D 물체를 제대로 렌더링하도록 하겠습니다. 3D 물체를 올바르게 2D 화면에 표시하기 위해서는 마치 공간 상에 가상 카메라가 있다고 가정하고, 그 카메라의 좌표계로 물체를 나타냅니다.

기지국 (stations)

문제

최근 개발된 5G 등, 광역 무선 연결망이 작동하기 위해서는 통신사들이 전국 각지에 기지국을 설치하여 무선 기기들이 네트워크에 접속할 수 있도록 해야 한다. 또, 기지국들이 서로 통신망으로 연결되어 있어야 멀리 떨어진 사람들의 통신을 중계할 수 있다.

두 기지국이 서로 연결되기 위해서는 기지국에 놓이는 통신 장비의 성능이 충분해야 한다. 물론, 강력한 장비를 놓을수록 멀리 떨어진 기지국들이 직접 통신할 수 있지만, 그만큼 비싸기 떄문에 통신 장비의 유효 거리를 최소화하면서 모든 기지국들을 서로 연결시키고자 한다.