Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def isBoatBuilt(boat:List[Square], boardSize:Int, usage:String):Boolean = {
- //Check for boat of size 1 (one boat-tile is surrounded by water)
- if(boat.length == 1){
- if(boat.head.getNeighbours(boardSize).forall((n:String) => n == "-")) return true
- }
- else {
- val headNeighbours = boat.head.getNeighbours(boardSize)
- val lastNeighbours = boat.last.getNeighbours(boardSize)
- if (usage == "built") {
- //Check for horizontal boat
- //Head -> left tile = water, right tile = boat, Last -> left tile = boat, right tile = water
- if (headNeighbours(2) == "-" && headNeighbours.head == "S"
- && lastNeighbours(2) == "S" && lastNeighbours.head == "-") return true
- //Check for vertical boat
- //Head -> upper tile = water, lower tile = boat, Last -> upper tile = boat, lower tile = water
- if (headNeighbours(3) == "-" && headNeighbours(1) == "S"
- && lastNeighbours(3) == "S" && lastNeighbours(1) == "-") return true
- } else if (usage == "finished") {
- //Horizontal
- if (headNeighbours(2) == "-" && headNeighbours.head != "?"
- && lastNeighbours(2) != "?" && lastNeighbours.head == "-") return true
- //Vertical
- if (headNeighbours(3) == "-" && headNeighbours(1) != "?"
- && lastNeighbours(3) != "?" && lastNeighbours(1) == "-") return true
- }
- }
- false
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement