번역할 기사 창고

 

Building 8-Bit Bots

Avoiding Future Disasters and NASA’s Memory Problem

 

NASA’s Super Ball Bot Could Be the Best Design for Planetary Exploration

NASA Details 2020s Asteroid Capture Mission

ESA and NASA Will Try to Smash an Asteroid of Its Orbit in 2022

What’s Hard About Space Robotics? It’s Not Just the Technology, Industry Leaders Say

Project RAMA: Turning Asteroids Into Catapult-Powered Analog Spacecraft

Advertisements

어셈블리어를 즐겁게 배울 수 있는 3가지 게임

photo of tablet use of Human Resource Machine                       사진 : Randi Klett

아, 어셈블리어. 고수준 언어들이 과시하던 프로그맹 구조, 데이터 핸들링, 수많은 기능들 모두가 없어진 것이다. 어셈블리어로 브랜치(branch), 바이트(byte), 운이좋으면 뻴셈(subtraction) 명령어도 사용할 수 있다. 사실, 직접적으로 컴퓨터의 상태를 조작함으로써 강력하지만 소수의 사람들이 어셈블리어를 선택해 사용하고 있다.

그래서 나는 어셈블리어로 재미있게 코딩할 수 있는 공개된 게임을 하나도 아니고 세 개나 있다는 것에 놀라웠다. 정확히 이 중 어느것도 하드웨어에서 어셈블리어를 짤 수는 없다. 그것들은 모두 가장 작은 명령어 집합으로 가상 시스템을 사용한다. 그럼에도 그들은 복잡한 동작들을 간단한 명령어로 짜내는 것으로 어셈블리 코딩의 핵심을 담고있다.

그 첫번째 게임은 Tomorrow Corporation 에서 2015년에 출시한  Human Resource Machine 이다. 그리고 윈도우, 맥, 리눅스에서, 심지어 닌텐도 스위치에서도 이용할 수 있다. 이 게임에서는 플레이어가 사무실 직원이 되어 “in” 컨베이어 벨트에 도착하는 숫자와 문자를 이용해서 요구하는 결과를 “out” 컨베이어 벨트에 올려놓는다.  게임을 시작하자마자 같이 일 할 두개의 명령어를 받는다. 더 많은 복잡한 도전들을 해결하고 만나면서 더 많은 명령어들이 주어진다. 도전하는 난이도는 한 쌍의 입력 숫자 중 큰 수를 출력하는 것 부터, 가변 길이 시퀀스를 정렬하는 것까지 다양하다.

screenshot of Human Resource Machine

 

게임은 여기 -> Human Resource Machine

사진: Tomorrow Corporationscreen shot of Shenzhen I/Oscreenshot of TIS-100 

.

Human Resource Machine 은 고도로 추상화 됬기 때문에 누군가는 곧은 퍼즐게임으로 여기고 할 수 있으며 현명함은 거의 없다. 하지만 지식이 많은 사람들은 사무실 직원을 레지스터로, 임시적인 사무실 바닥위의 작업공간을 랜덤 엑세스 메모리로, 많은 도전들을 고전 기초 컴퓨터 과학 문제로 인지한다. 이 게임은 아주 적은 명령어들로 시작하고 인터페이스가 매우 직관적이기 때문에 비기너를 프로세스 내부동작으로 끌어들이는 좋은 방법이 될 것이다. 하지만, 게임의 줄거리가 그 만큼 플레이어들이 레벨을 완료할 수 있게 동기부여를 하지 못한다.

TIS-100, Zachtronics 에서 보다 정교한 플레이어를 전제로 하긴 했으나 이 문제를 해결했다. 또한 2015년에 출시되어 윈도우, 맥, 리눅스 그리고 아이패드에서 이용가능하다. 아이패드 버전(TIS-100P 로 2016년에 출시됨)은 흑백 텍스트 디스플레이가 당신이 올드스쿨 마이크에 붙어있던 찾기를 기대한 것인것 처럼 보이는 화상 키보드가 결합되어 이 게임이 타겟으로한 사용자들에 대한 명확한 아이디어를 제공한다. 그리고 실제로, 이 게임은 향수적인 역작으로 다운로드 가능한 매뉴얼로 완성되어 1980년대에 프로그래밍을 했던 사람들의 인정을 받는다. 그것은 실제 매뉴얼로 부터 가장 중요한 비트의 2세대 또는 3세대 복사와 동일해 보이게 설계되었다.

이 게임의 줄거리는 당신의 삼촌 랜디로 부터 TIS-100 컴퓨터를 물려받는다. 어셈블리어로 문제를 풀어가는 중에 기계의 진짜 목적에 대한 힌트를 주면서 컴퓨터 메모리의 손상된 부분을 해독한다. TIS-100는 서로 메세지를 전달하는 계산 노드로 구성된 평범하지않은 병렬 아키텍쳐를 가지고 있다. 퍼즐들은 복잡성이 굉장히 빠르게 증가하지만 모두 할 수 있고 만약 옛날에 코드를 짜는 것과 같은 낭만적인 버전으로 돌아갈 무언가를 찾고 있다면, TIS-100은 해줄 수 없다.

하지만 Zachtronics 는 우리에게 현재까지 남아있는 최근의 타이틀인 Shenzhen I/O 를 보여준다. Shenzhen I/O 는 지난 11월에 원도우, 맥 그리고 리눅스를 지원하는 버전을 출시했다. 이 비참한 게임에선, 당신은 서샹의 전기공학 엔지니어가 되어 오늘한 실제로 물건들이 만들어지는 중국(Shenzhen, China) 으로 가게된다. Shenzhen I/O 는 작업을 달성하기위해 상호연결된 모듈들을 프로그래밍하는 TIS-100 와 함께 게임 메커니즘을 제공한다. 하지만 라이오나 디스플레이와 같은 다양한 모듈(가짜 데이터시트로 완성하기)을 소개한다. Shenzhen I/O, 이 게임에서 가장 중요한 점은 당신이 빌드하기 위해 들여놀은 다양한 전자기기에 대한 입력/출력 데스트 스위트를 통과하기 위해 정확한 신호의 타이밍을 받는 것이다. 많은 제품들이 재미있고,  EE는 타이밍 사이클 지점을 파악하기위해 NOP(no operation) 명령을 때때로 신중하게 배포할 때까지 많이 고려할 것이다.

이 기사는 2017년 5월에 출간된 “Some Assembly(Language) Required” 에 언급됩니다.

기사 원본 :  Three Computer Games That Make Assembly Language Fun

매일매일 운동하기

2/19    –    달리기( 비가 내림)

2/20    –    달리기( X )

2/21    –    달리기( X )

2/22    –    달리기( 눈, 비 내림 )

2/23    –    달리기( O )

2/24    –    달리기( O )

2/25    –    달리기( O )

2/26    –    달리기( O )

2/27    –    달리기( O )

2/28    –    달리기( O )

3/1       –    달리기( 비가 내림 )

3/2       –    달리기 ( O )

3/3       –    달리기 ( O )

3/4      –    달리기 ( O )

3/5      –    달리기 ( O )

3/6     –    달리기 ( O )

3/7     –    달리기( O )

3/8    –    달리기 ( O )

3/9    –    달리기 ( O )

3/10  –    달리기 ( O )

3/11  –    달리기 ( X )

3/12  –    달리기 ( O )

3/13  –    달리기 ( O )

3/14  –    달리기 ( O )

3/15  –    달리기 ( O )

 

10시에 취침하기

2/17    –    10:31 취침

2/18    –    3:00 기상, 10:59 취침

2/19    –    10:50 기상, 12:50 취침

2/20    –    8:43 기상, 3: 00 취침

2/21    –    5:54 기상, 11:21 취침

2/22    –    7:00 기상, 11:06 취침

2/23    –    6:02 기상, 10:49 취침

2/24    –    8:30 기상, 10:48 취침

2/25    –    7:00 기상, 10:32 취침

2/26    –    6:00 기상, 10:32 취침

2/27    –    6:00 기상, 10:31 취침

2/28    –    6:15 기상, 9:46 취침

3/1      –    6:00 기상, 10:15 취침

3/2     –    6:00 기상, 11:40 취침

3/3     –    6:05 기상, 10:51 취침

3/4    –    6:50 기상, 10:59 취침

3/5    –    6:00 기상, 10:50 취침

3/6   –    6:00기상, 10:27 취침

3/7   –    6:11 기상, 10:38 취침

3/8   –    6:02 기상, 11:20 취침

3/9   –    6:10 기상, 12:10 취침

3/10 –    6:05 기상, 1:00 취침

3/11  –    9:20 기상, 11:55 취침

3/12   ~   6:05 기상, 11:40 취침

3/13   –   ?

3/14   –   7:00 기상, 11:00 취침

3/15   –   7:00 기상,

7/7 – 11:25 취침

7/8  –  6:00 기상, 12:00 취침

7/9 – 8:00 기상, 취침