= River Crossing = * 2011ë…„ 4ì›” 4ì¼ ì •ëª¨ì—서 ì§„í–‰ëœ ë ˆì´íм êµìˆ˜ì™€ 함께하는 CodeRace.ì§„í–‰ìžë¼ì„œ ì§ì ‘ CodeRaceì— ì°¸ì—¬í•˜ì§€ 못한 ê²ƒì´ ì•„ì‰¬ì›Œ 늦게ë¼ë„ 코딩해본다. 오늘 ì •ë§ ì¼ì° ìžë ¤ê³ í–ˆëŠ”ë° ëˆ„ì›Œìžˆë‹¤ê°€ ì´ê±° 너무너무 ì§œë³´ê³ ì‹¶ì–´ì„œ ê°‘ìžê¸° ìž ì´ ìŠ¬ìŠ¬ 깨길래 어떻게 í• ì§€ ê³ ë¯¼. ê³ ë¯¼í•˜ë‹¤ ìž ì´ ë‹¬ì•„ë‚ ì •ë„로 í•˜ê³ ì‹¶ì€ ê²ƒì€ ê·¸ëƒ¥ 넘기면 안 ë˜ê² 다 ì‹¶ì–´ 새벽 3ì‹œì— ì¼ì–´ë‚˜ 코딩 시작. * 사용 언어는 RubyLanguage * TDD로 ê°œë°œí•˜ë ¤ í–ˆëŠ”ë° rake aborted! No Rakefile found. ë¼ëŠ” 메세지가 뜨면서 테스트가 실행ë˜ì§€ 않아 í¬ê¸°í•¨. 한시간ë™ì•ˆ ê³„ì† ì°¾ì•„ë´¤ì§€ë§Œ ëª¨ë¥´ê² ë‹¤. ì˜ì–´ 문서를 ì½ìœ¼ë©´ ë‹µì´ ìžˆì„ ê²ƒ ê°™ì€ë° ë” ì´ìƒì€ ì˜ì–´ë¥¼ ì½ê³ 싶지않아ㅜㅜㅜㅜㅜㅜ == 목표 == * ëª¨ë“ ì‚¬ëžŒì´ A 마ì„ì—서 B 마ì„로 건너간다. == ì „ì œ == * A 마ì„ê³¼ B ë§ˆì„ ì‚¬ì´ì—는 ê°•ì´ ìžˆë‹¤. * ê°•ì€ ë„ˆë¬´ë‚˜ ë„“ê³ ê¹Šê¸° ë•Œë¬¸ì— ë°°ë¥¼ 타지 ì•Šê³ ê±´ë„ ìˆ˜ 없다. == Step 1 == * ë ˆì´íм êµìˆ˜ê°€ A 마ì„ì—서 B 마ì„로 건너간다. {{{ class Layton @location attr_accessor :location def initialize @location = false end def crossRiver @location = true end end }}} {{{ layton = Layton.new() layton.crossRiver if !layton.location print "FAIL" end }}} == Step 2 == * ë ˆì´íм êµìˆ˜ëŠ” 배를 íƒ€ê³ ë§žì€íޏ 마ì„로 건너갈 수 있다. * A ë§ˆì„ -> B ë§ˆì„ * B ë§ˆì„ -> A ë§ˆì„ {{{ class Layton @location attr_accessor :location def initialize @location = false end def crossRiver @location = !@location end end }}} {{{ class Solver def run(person) person.crossRiver end end }}} {{{ solver = Solver.new() layton = Layton.new() solver.run(layton) }}} == Step 3 == * ë£¨í¬ * 루í¬ëŠ” ì–´ë ¤ì„œ 혼ìžì„œëŠ” 배를 탈 수 없다. == Step 4 == * ëˆ íŒŒìš¸ë¡œ * ëˆ íŒŒìš¸ë¡œëŠ” ë ˆì´íм êµìˆ˜ê°€ 없으면 루í¬ë¥¼ ê°•ì— ë˜ì ¸ë²„린다. == Step 5 == * 2ì¸ìй ë°°ë§Œ 탈 수 있다. ---- [ì •ëª¨/2011.4.4/CodeRace]