Game์ ์์ฑํด์ ์ด๊ธฐํํ๋ค. ๋งค ํฑ๋ง๋ค game.tick์ ํธ์ถํด์ ์ ๋ ฅ(ํค์ฝ๋๋ฅผ x, y ๋ฐฉํฅ์ ๊ฐ์ง pair๋ก ๋ณ๊ฒฝํด์ ์ ๋ฌ)๊ณผ timestamp๋ฅผ ms๋ก ์ ๋ฌํ๋ค gameํจ์์ getEntireMap, getGoal, getPoint, getDone ๋ฑ ์ฐธ์กฐํด์ ์คํฌ๋ฆฐ์ UI๋ฅผ ๊ทธ๋ฆฐ๋ค. game.tick์ ๋ฐํ๊ฐ์ ์ฐธ์กฐํ์ฌ ๊ฒ์ ์ค๋ฒ ์คํฌ๋ฆฐ ์ถ๋ ฅ, ๋ค์ ์คํ ์ด์ง๋ก ์ง์ถ ๋ฑ์ ์งํํ๋ค.
์ ๋ ฅ๊ฐ์ด ์์ผ๋ฉด 0, 0์ผ๋ก ์ฒ๋ฆฌํ๋ค
ํ ์คํ ์ด์ง์ ๊ฒ์์ ๋ด๋นํ๋ค ์์ฑ์ : Stage ํด๋์ค๋ฅผ ๋ฐ๋๋ค. gameStatus game.tick(input, timestamp) const vector<vector>& getEntireMap() : ๋งต ์ ์ฒด๋ฅผ ๋ฒกํฐ๋ก ๋ฐํํ๋ค. const vector& getSnake() : snake ๊ฐ ์์์ ์์น๋ฅผ ๋จธ๋ฆฌ๋ถํฐ ๊ผฌ๋ฆฌ ์์๋ก ๋ฒกํฐ๋ก ๋ฐํํ๋ค.
const vector getGoal() : ์คํ ์ด์ง ๋ชฉํ๋ฅผ vector๋ก ๋ฐํํ๋ค. ์คํ ์ด์ง ๋ชฉํ๋ ๋ชฉํ ๊ธธ์ด, Growth ํ๋์, Poison ํ๋ ์, Gate ์ฌ์ฉ ํ์ ์์๋ก ์ ์ฅํ๋ค. const vector getPoint() : ์คํ ์ด์ง ๋ชฉํ์ ๋ฐ๋ฅธ ํ์ฌ ๋ฌ์ฑ๋์ vector๋ก ๋ฐํํ๋ค. const vector getDone() : ๊ฐ ์คํ ์ด์ง ๋ชฉํ์ ์๋ฃ ์ฌ๋ถ๋ฅผ vector๋ก ๋ฐํํ๋ค.
์คํ ์ด์ง๋ฅผ ์ ์ฅํ๋ค ์์ฑ์ : stage ํ์ผ์ ๊ฒฝ๋ก๋ฅผ ๋ฐ๋๋ค mapTile getMap(int x, int y) : x, y ์์น์ ์๋ ์์๋ฅผ ๋ฐํํ๋ค void setMap(int x, int y, mapTile data) : x, y ์์น์ ์๋ ์์๋ฅผ ์ค์ ํ๋ค const vector<vector>& getEntireMap() : ๋งต ์ ์ฒด๋ฅผ ๋ฒกํฐ๋ก ๋ฐํํ๋ค. const vector getGoal() : ์คํ ์ด์ง ๋ชฉํ๋ฅผ vector๋ก ๋ฐํํ๋ค. ์คํ ์ด์ง ๋ชฉํ๋ ๋ชฉํ ๊ธธ์ด, Growth ํ๋์, Poison ํ๋ ์, Gate ์ฌ์ฉ ํ์ ์์๋ก ์ ์ฅํ๋ค. const pair<point, point> getGate() : ํ์ฌ ์กด์ฌํ๋ Gate์ ์์น๋ฅผ ๋ฐํํ๋ค.
์ค๋ค์ดํฌ๋ฅผ ์ ์ฅํ๋ค const vector& getSnake() : snake ๊ฐ ์์์ ์์น๋ฅผ ๋จธ๋ฆฌ๋ถํฐ ๊ผฌ๋ฆฌ ์์๋ก ๋ฒกํฐ๋ก ๋ฐํํ๋ค. const point& getHead() : snake์ ๋จธ๋ฆฌ ์์น๋ฅผ ๋ฐํํ๋ค int len() : snake์ ๊ธธ์ด๋ฅผ ๋ฐํํ๋ค int moveTo(int x, int y, bool isGrowth) : x, y ์์น๋ก ๋จธ๋ฆฌ๋ฅผ ์ด๋์ํจ๋ค, isGrowth๊ฐ ์ฐธ์ด๋ผ๋ฉด ๊ธธ์ด๋ฅผ 1 ๋๋ฆฌ๋ฉฐ ์ด๋ํ๊ณ , ์๋๋ฉด ๊ธธ์ด๋ฅผ ๋ณด์กดํ๋ค. ์ด๋์ ๋ง์น ๋ค snake์ ๊ธธ์ด๋ฅผ ๋ฐํํ๋ค. int cut() : ๊ผฌ๋ฆฌ๋ฅผ ํ๋ ์ค์ธ๋ค. ๊ทธ ํ snake์ ๊ธธ์ด๋ฅผ ๋ฐํํ๋ค.