2021년 펄어비스 채용연계형 겨울 인턴십

* 모집분야: 프로그래밍, 아트, 게임디자인, 사업/운영, 홍보

* 지원대상: 졸업자, 1년 이내 졸업예정자

# 프로그래밍 분야

#아트

 

#게임디자인

#사업/운영

#홍보

 

 

 

1. 리듬 게임
1-1. 리듬게임인데,,, 이제 밈을 곁들인..? 리듬게임.
-모든 밈에는 특유의 리듬과 박자가 있다. 여기에서 착안한 아이디어
1-2. RPG형 리듬게임
-리듬게임에 퀘스트 요소가 있고, 플레이하면서 퀘스트를 깨나감. 프로젝트를 진행하면서 계획 단계에서 나온 RPG와 리듬게임을 합치면 어떨까 생각해봄. 기존의 스테이지형 리듬게임에서 아이템이 추가되는 것.
-아이템의 효과는 아이작 느낌?
1-3. 호러형 리듬게임
-NPC가 있고, 이 NPC는 퍼펙트 점수에 가까워지면 DHMIS 느낌으로 점점 섬뜩해짐.
1-4 FPS형 리듬게임
-폭발은 예술이고, 총성은 음악이다! 총소리로 비트를 찍는 유튜브 영상에서 착안. 모바일게임같은 경우는 줄어드는 원을 터치하면 되는데 마우스로 리듬게임을 한다고 생각하자. 스와이프의 경우 연사로 쏘는 것, 한 노트의 경우 단발로 쏘는 것을 생각해봄.
1-5 똥겜 리듬게임
-갑자기 윈도우 탭이 켜지는 화면이 나오면서 페이크, 3초 뒤에 사라지고 노트 생성 등
-바스타드 소드+리듬게임?
1-6 무선 키보드를 이용한 리듬게임
-무선키보드를 하나의 악기로 사용해서 F1, F2, F3, F4 나 ins home pgup, de, end, pgdn이용, (숫자키 라인, qwer라인 asdf라인 zxcv라인)을 하나의 라인으로 잡고 인식시키기, 기타연주를 하는 듯한 느낌을 가질 수 있도록 (유선키보드도 가능하나 무선키보드가 더 편할것)



2. 메타버스형 게임 아이디어
-영화 인타임처럼 시간을 기반으로 거래를 할 수 있음.


목차는 다음과 같다.

  • 3.1 The printf Function
    • Conversion Specifiactions
    • Program: Using printf to Format Numbers
    • Escape Sequences
  • 3.2 The scanf Function
    • How scanf Works
    • Ordinary characters in Format Strings
    • Confusing printf with scanf
    • Program: Adding Fractions

2장에 비하면 비교적 짧은 내용인것 같다.

 2.8 Layout of a C Program

우리는 C 프로그램을 토큰의 집합으로 생각할 수 있다. 토큰은 의미를 바꾸지 않고는 나눌수 없는 캐릭터들의 그룹을 의미하며, 식별자와 키워드가 포함된다. +나 -와 같은 연산자, 쉼표, 세미콜론, 리터럴 문자열 같은 문장부호도 포함된다. 예를 들어서 다음 statement에는 7개의 토큰이 존재한다.

 

printf("Height : %d\n, height);
printf     (     "Height : %d\n     ,      height      )         ; 
  ①        ②              ③         ④         ⑤        ⑥         ⑦

토큰 는 식별자이고, 토큰 은 리터럴문자열, , , 토큰과 은 문장부호이다.

대부분의 경우 프로그램에서 토큰 사이의 공간은 중요하지 않다. 극단적으로, 토큰끼리 공간이 아예 없이 합쳐질수도 있다. (두 토큰이 합쳐져 제 3의 토큰이 되는 경우는 제외한다.) 예를 들어, 2.6장의 celsius.c 프로그램에서 대부분의 공간을 삭제할 수 있다. int와 main, float과 fahrenheit같은 토큰은 공백을 제공하고 대부분 공백을 지우는 것이 가능하다.

/* Converts a Fahrenheit temperature to Celsius */
#include <stdio.h>
#define FREEZING_PT 32.0f
#define SCALE_FACTOR (5.0f/9.0f)
int main(void){float fahrenheit,celsius;printf(
"Enter Fahrenheit temperature:");scanf("%f", &fahrenheit);
celsius=(fahrenheit-FREEZING_PT)*SCALE_FACTOR;
printf("Celsius equivalent: %.1f\n", celsius);return 0;}

사실, 페이지가 더 넓다면, 우리는 전체 main함수를 한줄에 놓을수 있다. 하지만, 프로그램 전체를 한 줄에 놓을수는 없다. 각 전처리문은 별도의 줄을 요구하기 때문이다. 이런식으로 프로그램을 압축하는 것은 좋지 않다. 오히려, 프로그램에 공백과 빈 줄을 추가하면 읽고 이해하는 것이 더 쉬워질 수 있다. 다행히도, C는 공백, 탭키, 개행문자를 토큰 사이에 무제한으로 넣을 수 있게한다. 이런 규칙은 프로그램 레이아웃을 위한 몇가지 중요한 결과를 갖게된다. 

  • statement는 여러줄에 걸쳐 나눠질수 있다. 예를 들어 다음 statement는 너무 길기 때문에 한줄에 끼워넣기가 어렵다. 
printf("Dimensional weight (pounds) : %d\n",
  (volume + INCHES_PER_POUND -1)/ INCHES_PER_POUND);
  • 토큰 사이의 공간은 눈이 토큰을 직관적으로 분리할수 있도록 한다. 이런 이유로, 연산자 앞뒤로 공백을 두기도한다.
volume = height * length * width
  • 또한 각 쉼표 뒤에 공백을 넣는다. 어떤 프로그래머들은 심지어, 괄호나 문장기호 주변에 공백을 넣기도 한다.
  • Indentation

2.7 Identifiers

프로그램을 작성할때 변수, 함수, 매크로 및 기타 엔티티의 이름을 정해야하는데, 이런 이름을 식별자라고 한다. C에서 식별자는 문자, 숫자, 밑줄까지 포함하나, 문자 혹은 밑줄로 시작해야하는 규칙이 있다. (C99에서 식별자는 특정 "범용 문자 이름"을 포함할 수도 있다.)

다음은 가능한 식별자의 예이다.

times10            get_next_char          _done

다음은 불가능한 식별자들이다.

10times       get-next-char

10times는 문자나 밑줄이 아닌 숫자로 시작하고, get-next-char 는 밑줄이 아닌 마이너스 기호(-)를 사용했기에 불가능하다.

C는 대문자를 구분하기에 식별자에서도 대소문자를 구분한다. 예를 들면, 다음 식별자들은 모두 다르다.

job   joB   jOb  jOB   Job   JoB   JOb   JOB

이 8개의 식별자는 각각 완전히 다른 방식으로 동시에 사용될 수 있다. (이 경우는 난독화를 사용하는 경우이다.) 분별있는 프로그래머들은 다소 관계가 있는 식별자가 아닌한, 다르게 보이게 하려고 노력한다. C에서는 대소문자구분이 중요하기 때문에 많은 프로그래머들은 가독성을 위해 필요한 경우에 밑줄을 삽입하고 매크로를 제외한 식별자에서 소문자만 사용하는 규칙을 따른다.

symbol_table    current_page    name_and_address

다른 프로그래머들은 밑줄을 사용하지 않는 대신 대문자를 사용하여 식별자 내에서 각 단어를 시작한다.

symbolTable      currentPage     nameAndAddress

(첫 글자도 대문자로 표시하기도 한다.) 앞의 스타일은 전통적인 C에서 흔히 볼수 있지만, 후자의 경우 JAVA와 C#에서 널리 사용되기 때문에 더욱 인기가 있다. 다른 합리적인 규칙도 있는데, 매번 프로그램에 나타나는 것과 동일한 방식으로 식별자를 대문자로 표시하는 것이다. 

C는 식별자의 최대 길이에 제한을 두지 않으므로 길고 설명이 되는 이름을 사용하는 것을 권장한다. current_page같은 식별자는 cp라는 이름보다 이해하기 쉽다.

Keywords

표 2.1의 키워드는 C컴파일러에 특별한 의미가 있으므로 식별자로 사용할 수 없다. C99에서 5개의 키워드가 추가되었다.

auto enum restrict unsigned
break extern return void
case float short volatile
char for signed while
const goto sizeof _Bool
continue if static _Complex
default inline struct _Imaginary
do int switch  
double long typedef 표 2.1
else register union (이탤릭체는 C99에서만)

C는 대소문자를 구분하기 때문에 키워드는 표 2.1에 표시된 대로 소문자로 정확히 프로그램에 나타내야한다. 표준 라이브러리의 함수이름(예를 들면, printf)에는 소문자만 포함된다. 전체 프로그램을 대문자로 입력하는 불행한 프로그래머의 곤경을 피해야한다. 컴파일러는 라이브러리 함수의 키워드와 호출을 구분할 수 없다.

 

식별자에 대한 다른 제한에 대해 주의해야한다. 일부 컴파일러는 특정 식별자(ex: asm)을 추가 키워드로 취급한다. 표준 라이브러리에 속하는 식별자도 제한된다. 이러한 이름중 하나를 잘못사용하면 컴파일 또는 연결중에 오류가 발생할 수 있다. 밑줄로 시작하는 식별자도 제한된다.

+ Recent posts