|
|
|
package main
|
|
|
|
|
|
|
|
import (
|
|
|
|
"fmt"
|
|
|
|
|
|
|
|
"./student"
|
|
|
|
"github.com/01-edu/public/go/lib"
|
|
|
|
)
|
|
|
|
|
|
|
|
func drawLine(x int, s string) {
|
|
|
|
beg := s[0]
|
|
|
|
med := s[1]
|
|
|
|
end := s[2]
|
|
|
|
if x >= 1 {
|
|
|
|
fmt.Printf("%c", beg)
|
|
|
|
}
|
|
|
|
if x > 2 {
|
|
|
|
for i := 0; i < (x - 2); i++ {
|
|
|
|
fmt.Printf("%c", med)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if x > 1 {
|
|
|
|
fmt.Printf("%c", end)
|
|
|
|
}
|
|
|
|
fmt.Println()
|
|
|
|
}
|
|
|
|
|
|
|
|
func printTheLines(x, y int, strBeg, strMed, strEnd string) {
|
|
|
|
if y >= 1 {
|
|
|
|
drawLine(x, strBeg)
|
|
|
|
}
|
|
|
|
if y > 2 {
|
|
|
|
for i := 0; i < y-2; i++ {
|
|
|
|
drawLine(x, strMed)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
if y > 1 {
|
|
|
|
drawLine(x, strEnd)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
func raid1a(x, y int) {
|
|
|
|
if x < 1 || y < 1 {
|
|
|
|
return
|
|
|
|
}
|
|
|
|
printTheLines(x, y, "o-o", "| |", "o-o")
|
|
|
|
}
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
// testing examples of subjects
|
|
|
|
table := []int{
|
|
|
|
5, 3,
|
|
|
|
5, 1,
|
|
|
|
1, 1,
|
|
|
|
1, 5,
|
|
|
|
}
|
|
|
|
|
|
|
|
// testing special cases and one valid random case.
|
|
|
|
table = append(table,
|
|
|
|
0, 0,
|
|
|
|
-1, 6,
|
|
|
|
6, -1,
|
|
|
|
lib.RandIntBetween(1, 20), lib.RandIntBetween(1, 20),
|
|
|
|
)
|
|
|
|
|
|
|
|
// Tests all possibilities including 0 0, -x y, x -y
|
|
|
|
for i := 0; i < len(table); i += 2 {
|
|
|
|
if i != len(table)-1 {
|
|
|
|
lib.Challenge("Raid1a", raid1a, student.Raid1a, table[i], table[i+1])
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|