Skip to content

Commit 74a9e53

Browse files
author
westernsam
committed
initial commit
0 parents  commit 74a9e53

File tree

8 files changed

+105
-0
lines changed

8 files changed

+105
-0
lines changed

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
.idea/
2+
target/
3+
project/target/

build.sbt

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
2+
name := "Connect4"
3+
4+
version := "0.1"
5+
6+
scalaVersion := "2.12.8"
7+
8+
resolvers += "jitpack" at "https://jitpack.io"
9+
10+
libraryDependencies += "com.github.westernsam" % "replrunner" % "v0.0.1" % Test
11+
libraryDependencies += "org.scalatest" %% "scalatest" % "3.0.0" % Test

project/build.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
sbt.version = 1.2.8
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package play.canvas
2+
3+
import java.io.{InputStream, OutputStream}
4+
5+
import play.util.CommandLineApp
6+
7+
class AsciCanvas(outputStream: OutputStream, inputStream: InputStream) extends CommandLineApp(outputStream, inputStream, "Ascii paint") {
8+
override def processCommand(line: String): String = line
9+
}
10+
11+
object AsciCanvas extends App {
12+
new AsciCanvas(System.out, System.in).run()
13+
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package play.echo
2+
3+
import java.io.{InputStream, OutputStream}
4+
5+
import play.util.CommandLineApp
6+
7+
class Echo(out: OutputStream, in: InputStream) extends CommandLineApp(out, in, "Echo") {
8+
override def processCommand(line: String): String = line
9+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package play.util
2+
3+
import java.io._
4+
5+
abstract class CommandLineApp(outputStream: OutputStream, inputStream: InputStream, appName: String) extends Runnable {
6+
val in = new BufferedReader(new InputStreamReader(inputStream))
7+
val out = new BufferedWriter(new OutputStreamWriter(outputStream))
8+
9+
def processCommand(line: String): String
10+
11+
override def run(): Unit = {
12+
out.write(s"Welcome to $appName!!!\n")
13+
out.flush()
14+
15+
while (true) {
16+
out.write("> ")
17+
out.flush()
18+
19+
val line: String = in.readLine()
20+
if (line == null || line == "Q") return
21+
22+
if (line != "") {
23+
val message = processCommand(line)
24+
out.write(message)
25+
out.write("\n")
26+
out.flush()
27+
}
28+
}
29+
}
30+
}
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package play.canvas
2+
3+
import github.westernsam.repltest.ReplRunner
4+
import org.scalatest.FunSuite
5+
6+
class AsciiPaintSpec extends FunSuite {
7+
8+
val runner: ReplRunner = new ReplRunner(">", true, (out, in) => new AsciCanvas(out, in)).start()
9+
10+
test("Start a canvas") {
11+
runner
12+
.enter("C 4",
13+
" ----",
14+
"| |",
15+
"| |",
16+
"| |",
17+
"| |",
18+
" ----")
19+
}
20+
21+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package play.echo
2+
3+
import github.westernsam.repltest.ReplRunner
4+
import org.scalatest.FunSuite
5+
import play.echo.Echo
6+
7+
class EchoSpec extends FunSuite {
8+
9+
val runner: ReplRunner = new ReplRunner(">", true, (out, in) => new Echo(out, in)).start()
10+
11+
test("Echos") {
12+
runner
13+
.enter("hello", "hello")
14+
.enter("boo", "boo")
15+
}
16+
17+
}

0 commit comments

Comments
 (0)