// // simple(?) ascii-art program // val prompt = "what would you like to do?" + "\n 'n' new array" + "\n 'p' print" + "\n 's' set element"+ "\n 'r' set rectangle of elements"+ "\n 'q' quit" var cmd = "" var array1 = makeArray(1, 1) do { println(prompt) cmd = readLine cmd match { case "n" => { println("enter rows, columns:") val rows = readInt val cols = readInt array1 = makeArray(rows, cols) } case "p" => { printArray(array1) } case "s" => { println("enter row, column, character:") val row = readInt val col = readInt val c = readChar array1(row)(col) = c } case "r" => { println("enter start row, end row, start column, end column, character:") val startRow = readInt val endRow = readInt val startCol = readInt val endCol = readInt val c = readChar for (row <- startRow to endRow; col <- startCol to endCol) array1(row)(col) = c } case "q" => { } case _ => { println("not a valid response") } } } while (cmd != "q") def makeArray(rows : Int, cols : Int) : Array[Array[Char]] = { Array.fill(rows,cols)('.') } def printArray(a : Array[Array[Char]]) = { a.foreach(row => println(row.mkString)) }