Задание номер 26 в Туре Го.
Реализуйте функцию Фибоначчи, которая возвращает функцию (замыкание), возвращающую последовательные числа Фибоначчи (0, 1, 1, 2, 3, 5, …).
Решение:
Числа Фибоначчи — это когда каждое следующее число является суммой двух предыдущих. Сначала я сделал простой с точки зрения логики вариант, но он не соотносится с техзаданием.. Поэтому пришлось переделать.
package main
import "fmt"
// fibonacci is a function that returns
// a function that returns an int.
func fibonacci() func() int {
n1 := 0
n2 := 1
return func() int {
// return n1 + n2.. save previous values and again
/*
sum := n1 + n2
n1 = n2
n2 = sum
return sum
// doesn't start with 0.. our goal is to print _1st_ number, not a summ
// we must return no the third number, but 1st number! but calculate next ones
*/
// 1) save n1 as tmp (we are gonna to print-return it!)
// 2) save n2 as n1
// 3) complete operation n1 + n2 and save it as n2
// 4) return tmp
tmp := n1
n1 = n2
n2 = tmp + n2
return tmp
}
}
func main() {
f := fibonacci()
for i := 0; i < 10; i++ {
fmt.Println(f())
}
}
А вот, кстати, программа, которая позволяет найти n-ый член последовательности Фибоначчи при помощи рекурсии:
package main
import "fmt"
func fib(n int) int {
if n < 2 {
return n
}
return fib(n - 1) + fib (n - 2)
}
func main () {
var n int
fmt.Print("Which element of Fibonacci sequence to show? ")
fmt.Scanf("%d", &n)
fmt.Println(fib(n))
}
Ну и обычный способ на цикле for
package main
import (
"bufio"
"fmt"
"os"
"strconv"
"strings"
)
func main() {
r := bufio.NewReader(os.Stdin)
input, _ := r.ReadString('\n')
trim := strings.TrimSpace(input)
n, _ := strconv.Atoi(trim)
var n1 int = 0
var n2 int = 1
for i := 0; i < n; i++ {
tmp := n1
n1 = n2
n2 = tmp + n2
fmt.Println(tmp)
}
}

Серверную часть игры на Go решил делать? Да, неплохой вариант для быстрого старта, возможно в этом и есть смысл. Замечу, что один из авторов языка Go — Кен Томпсон, он же соавтор и языка Си, поэтому и похож.
да.. у меня кроме серверной части и не будет ничего, игра текстовая, на менюшках js весь UI