2016-11-05 55 views
1

我正在从事一个基本上是数独求解器的scala程序,为了测试它,我需要制作一个包含数独板(0,0),(0,1)的每个坐标的“空” ,(0,2)等,直到(8,8),代表数独板上的81个单元格。地图中的List [Int]表示可以放置在该单元格的可能值。所以,我需要制作一个映射,将所有这些坐标映射到List(1,2,3,4,5,6,7,8,9),以表示每个值都可以放置在每个单元格中。如何制作一个从(0,0)到(8,8)跨度的Map [(Int,Int),List [Int]]?

我该怎么做?我试图修改功能(0.to(9)),但我不能得到它的工作

+2

请插入你试过的代码,即使它不起作用,所以人们可以基于它来帮助你。 – Tom

+0

好像你的数据类型Map [(Int,Int),List [Int]]比需要的更复杂。解决这个问题的另一种方法可能是简化这种类型。 – Brian

+0

具有所有坐标组合的地图看起来应该是一个二维数组。如果它是一个Map,我不会想到在Sudoku中解决这个问题会更容易。 –

回答

5

我认为你是这样做的所有错误,但我知道什么?

val grid = (for { 
    x <- 0 to 8 
    y <- 0 to 8 
} yield (x,y) -> (1 to 9).toList).toMap