나는 수업의 작동 방식과 이해 방법을 이해하지만 연습 문제의 2 번째 추가 학점은 2 개의 다른 파일로 2 개의 클래스 버전을 만드는 것이라고 말합니다. ... Ruby the Hardway를 배우십시오. 42. 2 개의 파일로 된 2 클래스
나는 다른 일을 시도,하지만 난 그것을 작동하게하는 방법을 알아낼 수 없습니다내가 올바른 장소에서 검색 아니에요 경우 나도 몰라,하지만 난 찾을 수 없습니다 http://ruby.learncodethehardway.org/book/ex42.html
내가 그렇게 시도하는 것 : 누군가가 나를 도울 수 있다면, 그것은 많이 주시면 감사하겠습니다
: 여기
을 그에 도움이 없으며, 모든 솔루션을 찾을합니다 ... exercice입니다 멀리 :
map.rb
class Map
with all the methods in here (death(), central_corridor(), etc.)
은
engine.rb
class Engine
require './map.rb'
def initialize(start)
@quips = [
"You died. You kinda suck at this.",
"Nice job, you died... jackass.",
"Suck a luser."
]
@start = start
puts "in init @start = " + @start.inspect
end
def prompt()
print "> "
end
def play()
puts "@start => " + @start.inspect
@next_room = @start
while true
puts "\n--------"
room = method(@next_room)
@next_room = room.call()
end
end
end
a_game = Engine.new(:central_corridor)
a_game.play()
그래서 기본적으로 내가 무슨 짓을했는지 등 게임의 "행동"(객실, 죽음, 사용 방법을 얻을 .. 그리고지도의 클래스의지도에 넣어이다. rb를 호출 한 다음 engine.rb를 호출합니다. 여기에는 프롬프트, 재생, 시작과 같은 "일반"메소드/변수가있는 클래스 엔진이 있습니다.
내가 오류가 나는 그것이 루비 클래스 엔진의 방법 "central_corridor"를 찾습니다 의미 이해
engine.rb:24:in `method': undefined method `central_corridor' for class `Engine'
이지만 map.rb의 클래스 맵에 있고 난 알아낼 수 없습니다 무엇을 할 것인가, 몇 가지 변수를 수정하거나 몇 가지 추가 할 것 : ... (
시도한 내용과 시도에서 얻은 오류 메시지를 포함하도록 게시물을 편집 할 수 있습니까? – sarnold
엔진 클래스의 내부에 map 클래스를''요구하지 마라. 클래스 선언 앞에 놓는다. 그러나'Engine' 인스턴스 메소드 ('Engine' 선언 안에'def'를 통해 정의)는'Engine' 인스턴스를 실행해야합니다. –
실행하려면 Engine 인스턴스가 필요하다는 것은 무엇을 의미합니까? 2 파일에서 2 클래스를 갖는 연습의 전체 요점은 엔진에있는 동안지도의 인스턴스를 사용하는 것입니다 ... – Jauny