puk
This commit is contained in:
parent
a79fe7c843
commit
7d67459626
|
|
@ -2,12 +2,86 @@ package main
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"sort"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
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() {
|
func main() {
|
||||||
var total int
|
Spartak := Team{
|
||||||
for i := 0; i < 10; i++ {
|
Name: "Spartak",
|
||||||
total = total + i
|
Members: []Player{
|
||||||
fmt.Println(total)
|
{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())
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user