mirror of https://github.com/01-edu/public.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
1.0 KiB
72 lines
1.0 KiB
5 years ago
|
package main
|
||
|
|
||
|
import (
|
||
|
"fmt"
|
||
|
|
||
|
"./student"
|
||
|
)
|
||
|
|
||
|
func drawLineRaid1b(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 raid1b(x, y int) {
|
||
|
if x < 1 || y < 1 {
|
||
|
return
|
||
|
}
|
||
|
strBeg := "/*\\"
|
||
|
strMed := "* *"
|
||
|
strEnd := "\\*/"
|
||
|
|
||
|
if y >= 1 {
|
||
|
drawLineRaid1b(x, strBeg)
|
||
|
}
|
||
|
if y > 2 {
|
||
|
for i := 0; i < y-2; i++ {
|
||
|
drawLineRaid1b(x, strMed)
|
||
|
}
|
||
|
}
|
||
|
if y > 1 {
|
||
|
drawLineRaid1b(x, strEnd)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
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("Raid1b", raid1b, student.Raid1b, table[i], table[i+1])
|
||
|
}
|
||
|
}
|
||
|
}
|