0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Rails on Tiles yokohama.rb

0
Last updated at Posted at 2016-09-05

http://qiita.com/Nabetani/items/1234c313776b6588a9d8
そういえば解くの忘れてた

  • SELFTEST=1 ruby ...で自己テスト、そうでない場合1行拾って1行返すモードになります
  • 解いてから気がついたのですが、めぐるセルの方はテストデータがC用なんですね。
# !/usr/bin/env ruby
# http://nabetani.sakura.ne.jp/yokohamarb/2016.07.ront/
# http://qiita.com/Nabetani/items/1234c313776b6588a9d8
D=[[1,0],[0,1],[-1,0],[0,-1]]
C=[
	[3,2,1,0],
	[1,0,3,2],
	[0,1,2,3],
]

def solve(s)
	res=''
	a=s.split('/').map{|e|e.chars.map(&:to_i)}
	d=1;x=1;y=0
	while 0<=x&&x<4&&0<=y&&y<4
		res+=(y*4+x+97).chr
		break if a[y][x]==3
		d=C[a[y][x]][d]
		x+=D[d][0];y+=D[d][1]
	end
	res
end

if !ENV['SELFTEST']
	while gets
		puts solve($_.chomp)
		STDOUT.flush
	end
else
	$case=0
	def test(s,t)
		puts 'Case '+$case.to_s+': '+(solve(s)==t ? 'OK' : 'NG')
		$case+=1
	end
test( "0113/1201/2201/2100", "bcgfeabfjnoklpo" ) # 0    
test( "2110/2013/2210/0122", "bcgh" ) # 1    
test( "2222/2130/2121/2002", "bfg" ) # 2    
test( "0021/2212/2102/1220", "baeimnoplhdcbfjkgfe" ) # 3    
test( "0213/1221/0220/1103", "bfjnokgcbaefghlkjimn" ) # 4    
test( "3201/3120/3333/3333", "bfghdcgk" ) # 5    
test( "3233/3233/3133/3333", "bfjk" ) # 6    
test( "3333/3333/3333/3333", "b" ) # 7    
test( "1212/1201/2123/2220", "bfjkl" ) # 8    
test( "2212/3102/1002/2100", "bfgcba" ) # 9    
test( "0023/2221/1102/0031", "baeijnm" ) # 10    
test( "1121/3120/0212/1120", "bcdhgfba" ) # 11    
test( "2202/3211/2120/1210", "bfjklhgcd" ) # 12    
test( "3201/3211/1111/0100", "bfjkonjie" ) # 13    
test( "0121/1120/1111/1211", "bcdhgfbaefjkop" ) # 14    
test( "1212/1213/2103/0213", "bfjkgfea" ) # 15    
test( "1121/2212/1323/3031", "bcdhl" ) # 16    
test( "0030/1230/1121/0031", "baefg" ) # 17    
test( "2223/1211/0002/1200", "bfjimnokl" ) # 18    
test( "3210/0033/0201/0130", "bfei" ) # 19    
test( "0213/2220/0021/3002", "bfjim" ) # 20    
test( "2121/2112/1110/1010", "bcdhlkgfba" ) # 21    
test( "0113/1003/2303/2220", "bcgfj" ) # 22    
test( "2202/1110/1302/0313", "bfgkj" ) # 23    
test( "1211/3202/2102/0222", "bfjkgh" ) # 24    
test( "3113/0002/0112/1022", "bcgfjko" ) # 25    
test( "1200/3000/0121/0121", "bfe" ) # 26    
test( "2221/1122/1031/2200", "bfgh" ) # 27    
test( "1202/0121/0222/1300", "bfghlpo" ) # 28    
test( "0002/1012/1021/3300", "baefbc" ) # 29    
test( "0211/1200/2220/2103", "bfjnokghdc" ) # 30
end
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?