My solution for the slice exercise on A Tour of Go.

Exercise: Slices

Implement Pic. It should return a slice of length dy, each element of which is a slice of dx 8-bit unsigned integers. When you run the program, it will display your picture, interpreting the integers as grayscale (well, bluescale) values.

The choice of image is up to you. Interesting functions include (x+y)/2, x*y, and x^y.

package mainimport (
"golang.org/x/tour/pic"
)
func Pic(dx, dy int) [][]uint8 {
//using make to create a slice of length dy
pic := make([][]uint8, dy)
for i := 0; i < dy; i++ {
//using make to create a slice of length dx
pic[i] = make([]uint8, dx)
}
//creating image
for y, _ := range pic {
for x, _ := range pic[y] {
//choice for image

//pic[y][x] = uint8(x ^ y)
pic[y][x] = uint8(x+y)/2
//pic[y][x] = uint8(x-y)
//pic[y][x] = uint8((x <<uint8(y))/2)
}
}
return pic
}
func main() {
pic.Show(Pic)
}

Output:

Simple and straight forward let me know if there is a better solution (:

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store