반응형

우선 명령어를 알아가기전에 모듈이란것에 대해 알아야 할 필요가 있습니다.

모듈에 대해 아무것도 모르는 상태에서 플레이를 했다가 이게 뭐하는 게임이고 명령어는 도대체 어디 입력을하고...

이게 무슨 게임이냐! 어떻게 플레이 하는거냐! 라고 필자는 소리를 쳤습니다만...


이 글을 보시는 분들은 그런일이 없었으면 좋겠네요


1. 일반모듈

가장 자주보게 되고 가장 자주 사용하게 될 일반모듈입니다.

네모칸안에 MOV UP, ACC 같이 적혀있는 부분들이 명령어가 들어갈 부분입니다.

네모칸 위아래 좌우로 화살표가 있는데 해당방향으로 데이터를 넘길 수 있다는 표시입니다.

만약 모듈옆에 모듈이 없다면 데이터가 전송되지않겠죠

데이터가 전송되지 않는다면 모듈이 멈추는 현상이 발생합니다.

이 부분에 대해서는 차후에 설명을 드리겠습니다.

ACC: 해당모듈의 기본값이 될 곳입니다. MOV로 저장할 수 있으며, 덧셈 뺄셈을 할떄 ACC +/- 로 계산됩니다.

BAK:해당 모듈에서 값을 저장할때 사용합니다.

LAST:마지막으로 입력받은 방향을 표시해줍니다.

MODE: IDLE XX% 로 표시해주며, 퍼센트가 높을수록 열심히 놀고있다는 소리입니다.


2.스택 메모리 모듈

중반쯤 플레이하면 등장하는 모듈입니다.

상하좌우 화살표방향은 일반모듈과같이 데이터입출력 방향입니다.

가운데 적혀있는 글을 보면 STACK MEMORY NODE 라고 적혀져있는데...

그렇습니다 데이터를 저장해주는 모듈입니다.

해당모듈로 값이 들어오면 데이터를 저장해서 쌓아주고 

다른 모듈에서 값을 출력하게되면 데이터를 넘겨주는 녀석이죠

단순히 데이터를 저장하는 역할만을 가지고있기때문에 따로 명령어가 존재하지않습니다.

데이터가 가득찼을때 입력을 시도한다던가 데이터가 없을떄 출력을 시도하면 모듈이 멈추게 됩니다.

데이터가 출력되는 순서는 입력된 값의 역순입니다.

1,2,3,4,5 가 입력되어 저장되었다면 5,4,3,2,1로 출력이 됩니다.(몰라서 한참 해멨다는거는 비밀)


3.시각화 모듈

모듈이랄까 결과출력이랄까

일반모듈로 데이터를 입력받은 후에 화면에 TARGET 과 같이 이미지를 출력하는 모듈입니다.

시각화모듈은 데이터를 받는 순서가 정해져있기때문에 해당 순서대로 입력을 해야합니다.

총 3개의 입력을 받아 하나의 점을 찍습니다.

처음 2개는 좌표를 입력받으며 마지막은 색상을 입력받게 됩니다.

순서대로 X좌표 Y좌표 COLOR 로 받게됩니다.

X좌표의 경우 0부터 29까지 30칸

Y좌표의 경우 0부터 17까지 18칸

COLOR의 경우 1-어두운 회색, 2-밝은 회색, 3-흰색, 4-빨간색으로 이외의 색은 검은색이 됩니다.


만약 입력값이 음수가 들어가게된다면 X좌표부터 다시 받겠다고 선언하는겁니다.









궁금한 사항이나 잘못된 사항에 대해서는 댓글을 달아주세요





반응형
반응형



Zachtronics에서 출시한 프로그래밍게임. 

TIS-100이라는 의문의 메시지 패싱 병렬처리 아키텍쳐를 가진 가상의 기계에 

어셈블리어로 프로그램을 작성하여 퍼즐을 풀어나가는 게임이다 "

출처 - 나무위키


본격 어셈블리어로 코딩하는 게임입니다.

어셈블리어란 기계가 통신할 때 사용하는 기계어 즉 01001110001 과 같은 언어를 사람이 이해할 수 있는 언어로 만든것입니다.

한라인에 명령어가 하나는 반드시 있어야 하며, 한라인씩 코드를 실행하는 언어입니다.

매우 빠른 실행속도를 가지고있으며 한번쯤은 경험해볼만한 언어라고 생각됩니다.

물론 C나 C++,JAVA,C# 같은 언어에 비하자면 가독성이 떨어지는데다가 코딩하는 부분에서 더욱 힘들다고 느껴지는건 어쩔수없어보이네요...

어찌되었든 TIS-100이라는 게임은 간단한 어셈블리 명령어 몇개를 가지고 주어진 문제를 해결하는 게임입니다.

게임의 목적은 클리어라기보다는 클리어를 위한 로직구현에 있다고 생각합니다.

따라서 다음에 작성할 명령어에 해당하는 글을 제외한 나머지 클리어글은 보지 않는것을 추천드립니다.

하지만 도저히 클리어가 되지않는다 하시는분들 혹은 게임은 공략을 보더라도 클리어 해야겠다는 분들은 보시고 참고정도로만 생각해주시기 바랍니다.


#게임 시작시 화면

#처음 시작시 5개가 열리고 그 다음부터 REPAIR로 적혀있는 숫자만큼 클리어 시 해당라인이 열리게 됨

#게임 화면

#왼쪽위에 클리어 조건이 적혀있고 그 아래에 들어오는값(IN) 출력되는 값(OUT) 이 나와있음

#오른쪽에는 값이 입력되는 부분과 출력되는 부분, 그리고 로직을 구현할 모듈로 구성되있음



반응형

+ Recent posts