twashing

Scala Intuition

Aug 4th, 2015
251
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Scala 1.28 KB | None | 0 0
  1. package com.foo
  2.  
  3. object TicTacToe {
  4.  
  5.   trait Piece
  6.   case object X extends Piece
  7.   case object O extends Piece
  8.   case object E extends Piece
  9.  
  10.   sealed trait ColumnCoordinate
  11.   case object COL1 extends ColumnCoordinate
  12.   case object COL2 extends ColumnCoordinate
  13.   case object COL3 extends ColumnCoordinate
  14.  
  15.   sealed trait RowCoordinate
  16.   case object ROW1 extends RowCoordinate
  17.   case object ROW2 extends RowCoordinate
  18.   case object ROW3 extends RowCoordinate
  19.  
  20.   type Row = Map[ColumnCoordinate, Piece]
  21.   type Board = Map[RowCoordinate, Row]
  22.  
  23.   /*class Boardx {
  24.     private val grid = Array(Array(X, X, X), Array(X, X, X), Array(X, X, X))
  25.   }
  26.  
  27.   case class Move(coordinates: (ColumnCoordinate, RowCoordinate), piece: Piece)
  28.  
  29.   val er = Map(
  30.     COL1 -> E,
  31.     COL2 -> E,
  32.     COL3 -> E)
  33.  
  34.   val bd = Map(
  35.     ROW1 -> er,
  36.     ROW2 -> er,
  37.     ROW3 -> er
  38.   )*/
  39.  
  40.   def move (board:Board, col: ColumnCoordinate, row: RowCoordinate, value:Piece) : Board = {
  41.     board.updated(row, board(row).updated(col, value))
  42.   }
  43. }
  44.  
  45.  
  46. object Thing {
  47.  
  48.   /*val bd = Board(
  49.     Row(E, E, E),
  50.     Row(E, E, E),
  51.    Row(E, E, E))
  52.  
  53.   import TicTacToe._
  54.   val er = (
  55.     COL1 -> E,
  56.     COL2 -> E,
  57.     COL3 -> E)
  58.   val bd = Map(
  59.     ROW1 -> er,
  60.     ROW2 -> er,
  61.     ROW3 -> er
  62.   )*/
  63. }
Advertisement
Add Comment
Please, Sign In to add comment