package main

import (

// Write a program which allows the user to get information about a predefined set of animals; "cow", "bird" and "snake"
// Your program should present the user with a prompt “>”
// Your program accepts one request at a time from the user, prints out the answer to the request, and prints out a new prompt
// Your program should continue in this loop forever
// Every request from the user must be a single line containing 2 strings, the former an animal and the latter an action, e.g "cow" "speak"
// Your program should process each request by printing out the requested data

type Animal struct {
	food       string
	locomotion string
	noise      string

func (a Animal) Eat() string {

func (a Animal) Move() string {
	return a.locomotion

func (a Animal) Speak() string {
	return a.noise

func main() {
	cow := Animal{food: "grass", locomotion: "walk", noise: "moo"}
	bird := Animal{food: "seeds", locomotion: "fly", noise: "peep"}
	snake := Animal{food: "mouse", locomotion: "slither", noise: "hsss"}

	animalMap := make(map[string]Animal)
	animalMap["cow"] = cow
	animalMap["bird"] = bird
	animalMap["snake"] = snake

	scanner := bufio.NewScanner(os.Stdin)
	for {
		inpt := strings.Split(scanner.Text(), " ")

		animal := animalMap[inpt[0]]

		switch {
		case inpt[1] == "speak":
		case inpt[1] == "eat":
		case inpt[1] == "move":
downloadDownload PNG downloadDownload JPEG downloadDownload SVG

Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!

Click to optimize width for Twitter