Improve star-shapes-mk2
This commit is contained in:
parent
b8fe0a216b
commit
829a84fabb
|
@ -8,40 +8,66 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
type Shaper interface {
|
type Shaper interface {
|
||||||
Shape(int) Square
|
GenerateCube(num int)
|
||||||
|
GenerateLine(num int)
|
||||||
|
GenerateFlag(num int)
|
||||||
}
|
}
|
||||||
|
|
||||||
type Square struct {
|
type Shape struct {
|
||||||
form string
|
shape string
|
||||||
quantity int
|
numOfChars int
|
||||||
}
|
}
|
||||||
|
|
||||||
func (s Square) Shape(num int) Square {
|
func (s Shape) GenerateCube(num int) {
|
||||||
for i := 0; i < num; i++ {
|
for i := 0; i < num; i++ {
|
||||||
for i := 0; i < num; i++ {
|
for i := 0; i < num; i++ {
|
||||||
s.form += "* "
|
fmt.Printf("* ")
|
||||||
|
}
|
||||||
|
fmt.Printf("\n")
|
||||||
}
|
}
|
||||||
s.form += "\n"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
s.quantity = num
|
func (s Shape) GenerateLine(num int) {
|
||||||
return s
|
for i := 0; i < num; i++ {
|
||||||
|
fmt.Printf("* ")
|
||||||
|
}
|
||||||
|
fmt.Printf("\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
func showShape(s Shaper, num int) {
|
func (s Shape) GenerateFlag(num int) {
|
||||||
fmt.Println(s.Shape(num).form)
|
for a := 0; a < num; a++ {
|
||||||
|
for i := -1; i < a; i++ {
|
||||||
|
fmt.Printf("* ")
|
||||||
|
}
|
||||||
|
fmt.Printf("\n")
|
||||||
|
}
|
||||||
|
for i := 0; i < num/2; i++ {
|
||||||
|
fmt.Println("*")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func getNumberStars() int {
|
func passToShaper(s Shaper, num int, choice int) {
|
||||||
numStr := os.Args[1]
|
switch choice {
|
||||||
num, err := strconv.Atoi(numStr)
|
case 1:
|
||||||
if err != nil {
|
s.GenerateLine(num)
|
||||||
log.Panicln(err)
|
case 2:
|
||||||
|
s.GenerateCube(num)
|
||||||
|
case 3:
|
||||||
|
s.GenerateFlag(num)
|
||||||
}
|
}
|
||||||
return num
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
s := Square{}
|
if len(os.Args) != 3 {
|
||||||
showShape(s, getNumberStars())
|
fmt.Println("Use an argument like 5 and then 1")
|
||||||
|
os.Exit(0)
|
||||||
|
}
|
||||||
|
numToGen, err := strconv.Atoi(os.Args[1])
|
||||||
|
if err != nil {
|
||||||
|
log.Fatalf("Error: %v\n", err)
|
||||||
|
}
|
||||||
|
numToChoose, err := strconv.Atoi(os.Args[2])
|
||||||
|
|
||||||
|
s := Shape{}
|
||||||
|
passToShaper(s, numToGen, numToChoose)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue