This commit is contained in:
a.pivkin 2025-12-10 11:34:00 +03:00
parent a79fe7c843
commit 7d67459626

View File

@ -2,12 +2,86 @@ package main
import (
"fmt"
"sort"
)
func main() {
var total int
for i := 0; i < 10; i++ {
total = total + i
fmt.Println(total)
}
type Player struct {
name string
}
type Team struct {
Name string
Members []Player
}
type League struct {
Wins map[string]int
}
type Ranker interface {
Ranking () []string
}
func (l League) MatchResult(ft, st string, fscore, sscore int) {
l.Wins[ft] += fscore
l.Wins[st] += sscore
}
func (l League) Ranking() []string {
for k, v := range l.Wins {
fmt.Printf("Command %s has %d scores\n", k, v)
}
keys := make([]string, 0, len(l.Wins))
for k := range l.Wins {
keys = append(keys, k)
}
sort.Slice(keys, func(i, j int) bool {
return l.Wins[keys[i]] > l.Wins[keys[j]]
})
for _, k := range keys {
fmt.Println(k, l.Wins[k])
}
return keys
}
func main() {
Spartak := Team{
Name: "Spartak",
Members: []Player{
{name: "Titov"},
{name: "Dzuba"},
},
}
Dinamo := Team{
Name: "Dinamo",
Members: []Player{
{name: "Ivanov"},
{name: "Petrov"},
},
}
Torpedo := Team{
Name: "Torpedo",
Members: []Player{
{name: "Sidorov"},
{name: "Zalupkin"},
},
}
league := League{
Wins: make(map[string]int),
}
league.MatchResult(Spartak.Name, Dinamo.Name, 2, 4)
league.MatchResult(Torpedo.Name, Dinamo.Name, 3, 3)
league.MatchResult(Spartak.Name, Torpedo.Name, 1, 2)
fmt.Println(league)
fmt.Println(league.Ranking())
}