goslice

Tour of Go exercise #18: Slices


I am trying to complete the Exercise: Slices from the Go Tour.
However I don't really understand what I'm being asked to do.

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.

I have the following code

package main

import "golang.org/x/tour/pic"

func Pic(dx, dy int) [][]uint8 {
    a := make([][]uint8, dy)
    return a
}

func main() {
    pic.Show(Pic)
}

I have created the slice of length dy so far. However I don't understand the next step. Do I need to create a for loop in which I assign every element of my slice to a value in the range of dx? I don't ask for code but rather for an explanation/clarification


Solution

  • Do I need to create a for loop in which I assign every element of my slice to a value in the range of dx?

    Yes:

    I like (x ^ y) * (x ^ y):

    res

    As rwilson04 comments below:

    x*x + y*y is another good one

    x square plus y square

    Waqas Ilyas suggests in the comments: y * 10000 / (x + 1)

    y * 10000 / (x + 1)

    EdvardM suggests in the comments: (x+y)/2 * (x^y):

    (x+y)/2 * (x^y)

    Chubby Cows proposes in the comments: ((x - y) * -1) * (x + y) / 2:

    ((x - y) * -1) * (x + y) / 2