AIZU ONLINE JUDGEでアルゴリズムの勉強をしているのですが、サイコロの問題で、わからない部分があります。
昨日も、Javaのプログラムで質問させて頂きました。同じ問題なのですが、他の方が書いたScalaのプログラムで、よくわからない部分があります。
Scala
1 2import scala.io.StdIn._ 3 4object Main { 5 6 object Dice{ 7 private val north = List(2,6,3,4,1,5).map(_-1) 8 private val east = List(4,2,1,6,5,3).map(_-1) 9 private val ccw = List(3,2,6,1,5,4).map(_-1) 10 } 11 12 case class Dice(pip: List[Int]) { 13 def north = Dice(Dice.north.map(pip)) 14 def east = Dice(Dice.east.map(pip)) 15 def south = north.north.north 16 def west = east.east.east 17 } 18 19 def main(args: Array[String]): Unit = { 20 val pip = readLine.split(" ").map(_.toInt).toList 21 val commands = readLine 22 23 var dice = Dice(pip) 24 25 for(com <- commands){ 26 dice = com match { 27 case 'N' => dice.north 28 case 'E' => dice.east 29 case 'S' => dice.south 30 case 'W' => dice.west 31 case _ => dice 32 } 33 } 34 35 println(dice.pip(0)) 36 } 37} 38
object Dice{
private val north = List(2,6,3,4,1,5).map(-1)
private val east = List(4,2,1,6,5,3).map(-1)
private val ccw = List(3,2,6,1,5,4).map(_-1)
Listの中身が、2,6,3,4,1,5になるのは、なぜでしょうか?
northであれば、2,6,5,1だと思うのですが…。
わかる方いらっしゃいましたら、教えて下さい。
よろしくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/10/24 03:34