2010-04-20 5 views
0

대학의 경우 게임을 작성해야합니다 (언어는 modula2로 알 수 있습니다). 각 tetromino는 중앙 조각과 3 개의 상대적인 조각을 통해 정의됩니다. 이제 회전과 관련하여 상대 블록 (선형 대수)을 회전시킵니다.테트리스 회전

나 자신에게 물어 보는 것은 조각이 이미 "착륙"했을 때 사용자가 원하는 시점에 신속하게 자신의 파이브를 옮길 수있는 약간의 시간이 있기 때문에 사용자가하는 회전을 처리하는 방법입니다. 당신이 다른 조각들을 "회전"시킬 수있는 웹, 그러나 나는 나의 회전과 함께 그것을 얻는 것처럼 보이지 않는다.

회전해야 할 부분은 무엇입니까? 거기에 지침이 있습니까? 감사합니다.

+4

Modula-2를 모르지만 테트리스 조각을 "회전"시키기 위해서는 선형 대수학이 필요하지 않다고 생각합니다. – kennytm

+0

나는 다른 버전이 고장 났다고 주장 할 것이다. '진정한'테트리스에서는 조각이 떨어지면 마지막으로 두 번째로 회전 할 필요가 없습니다. – meagar

+0

@Kenny :이 특정 프로젝트에 대한 요구 사항 일 수 있습니다. – Pops

답변

3

질문을 올바르게 이해 한 경우 정답은 없습니다. 다른 작품을 "옮길"수 있는지 여부는 특정 과제에 대한 지침에 따라 다릅니다. 그것을 허용하는 코드와 그렇지 않은 코드를 작성할 수 있습니다.

9

Tetris Wiki 다음 소위 wall kicks을 완료 한 가지 방법을 지정합니다

에 공백이의 Tetromino 일반적으로 회전 한 후 차지하는 사각형에 존재하지 않는 경우 플레이어가 조각을 회전 할 때 벽 킥이 발생합니다. 이를 보완하기 위해 게임은 tetromino가 볼 수있는 몇 가지 대체 공간을 설정합니다. [...] 가장 단순한 벽 걷어차 기 알고리즘은 ... 은 오른쪽으로 한 공간을 이동 한 다음 왼쪽으로 한 칸 이동하고 아무 것도 수행 할 수 없으면 실패합니다..

Tetris Guideline에 의해 지정된 Super Rotation System으로 지정된 것과 같은 다른 방법이 있습니다. 이 시스템은 a set of tables을 사용하여 가능한 벽 킥을 결정합니다. 테트리스 조각 가을 해당 필드를 고려

+0

+1 테트리스 위키. – Cheeso

0

매트릭스

1) 약간의 시간을 부여하려면 사용자가 회전하고

  • 가 시작되는 타이머를 설정하여 알고리즘을 사용하려면에게 있습니다 가장 낮은 블록은 동일한 열에 이미 조각이있는 행에 인접한 행에 있습니다.
  • 타이머가 끝나기 전에 사용자가 해당 부분을 움직이려하면, 움직일 수있는 부분의 블록 중 하나의 위치 일 수있는 줄과 열에 블록이 있는지 확인하십시오. 이미 작성되어있는 경우 사용자가 다른 알고리즘

    • 를 사용하고 회전 당신이로 블록을 고려할 수에 대한 약간의 시간을주고 싶은 경우에 당신은

    2) 이동할 수 없습니다 3x3 큐브를 만들고 조각에 없더라도 (예 : L 형식의 조각에) 2x2 블록을 회전 시키십시오. 그래서 (1)의 두 번째 버튼에서 말한 것을 할 필요가 있습니다. 그게 더 쉬운 알고리즘 IMHO.

0

첫 번째 질문에 검색어를 분명히 할 수 있습니다. 첫 번째 단락에서 "조각"은 다른 사람들이 "타일"이라고 부르는 것입니다. 즉, 각각의 테트라 아미노는 4 개의 "조각"또는 "타일"로 구성됩니다. 그러나 단락의 끝에서 당신은 그것을 "블록"이라고 부릅니다.그리고 두 번째 단락에서는 "조각"이 "tetromino"와 동의어 인 것처럼 보입니다. "조각이 도착했습니다", "조각을 움직입니다". 그래서 당신의 질문에, 당신은 무엇을 의미합니까? 아마도 "어떤 타일이 회전해야합니까?"

이것이 실제로 사용자 질문 인 경우 대답은 구현 정의입니다. 다른 버전의 게임을 시도해 보면 일부에서는 "I"조각이 두 번 회전 (회전 타일이 tetromino에 고정되어 있음)하면서 왼쪽 또는 오른쪽으로 흔들 리거나, 다른 것들은 그렇지 않을 것입니다 (회전은 두 개의 센터 타일간에 전환되어 CW 회전은 CCW 회전과 동일한 효과를 갖습니다). "S"및 "Z"조각은 유사하게 동요하거나 아닙니다. 비록 그들이 흔들리지 않는다면, 조각은 왼쪽 벽을 기준으로 할 때 회전 할 수 있지만 상황이 대칭이어야한다고해도 오른쪽 반대가 아닌 경우 회전 할 수 있습니다. 정사각형 조각은 고정 된 회전 타일로 남겨두면 모퉁이를 돌면서 회전하지 않는 것처럼 보입니다. 나는 적어도 그것을 처리하지 않는 구현을 본 적이 없다!