2018 Day09 Complete
This commit is contained in:
parent
2469a641db
commit
7dba9cd112
143
2018/day09/day09.go
Normal file
143
2018/day09/day09.go
Normal file
@ -0,0 +1,143 @@
|
|||||||
|
package main
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"log"
|
||||||
|
"os"
|
||||||
|
"strconv"
|
||||||
|
)
|
||||||
|
|
||||||
|
var playerCount, marbleCount int
|
||||||
|
var game *Game
|
||||||
|
|
||||||
|
func main() {
|
||||||
|
if len(os.Args) < 3 {
|
||||||
|
fmt.Println("Usage: day09 <# players> <# marbles>")
|
||||||
|
os.Exit(1)
|
||||||
|
}
|
||||||
|
playerCount, marbleCount = Atoi(os.Args[1]), Atoi(os.Args[2])
|
||||||
|
part1()
|
||||||
|
}
|
||||||
|
|
||||||
|
func part1() {
|
||||||
|
g := NewGame(playerCount, marbleCount)
|
||||||
|
for i := 1; i <= marbleCount; i++ {
|
||||||
|
if i%23 == 0 {
|
||||||
|
g.score(i)
|
||||||
|
} else {
|
||||||
|
g.insertMarble(&Marble{value: i})
|
||||||
|
}
|
||||||
|
g.nextPlayer()
|
||||||
|
}
|
||||||
|
fmt.Println("* Winner *")
|
||||||
|
g.printWinner()
|
||||||
|
}
|
||||||
|
|
||||||
|
type Game struct {
|
||||||
|
playerCount, marbleCount int
|
||||||
|
currentPlayer int
|
||||||
|
scores map[int]int
|
||||||
|
|
||||||
|
currentMarble *Marble
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewGame(players, marbles int) *Game {
|
||||||
|
startMarble := &Marble{
|
||||||
|
value: 0,
|
||||||
|
}
|
||||||
|
startMarble.clockwise = startMarble
|
||||||
|
startMarble.widdershins = startMarble
|
||||||
|
return &Game{
|
||||||
|
playerCount: players,
|
||||||
|
marbleCount: marbles,
|
||||||
|
currentPlayer: 1,
|
||||||
|
scores: make(map[int]int),
|
||||||
|
currentMarble: startMarble,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *Game) insertMarble(m *Marble) {
|
||||||
|
m.clockwise = g.currentMarble.clockwise.clockwise
|
||||||
|
m.widdershins = g.currentMarble.clockwise
|
||||||
|
g.currentMarble.clockwise.clockwise.widdershins = m
|
||||||
|
g.currentMarble.clockwise.clockwise = m
|
||||||
|
g.currentMarble = m
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *Game) score(val int) {
|
||||||
|
g.scores[g.currentPlayer] += val
|
||||||
|
for i := 0; i < 6; i++ {
|
||||||
|
g.currentMarble = g.currentMarble.widdershins
|
||||||
|
}
|
||||||
|
// Remove g.currentMarble.widdershins
|
||||||
|
// adding it's value to the current player's score
|
||||||
|
rem := g.currentMarble.widdershins
|
||||||
|
g.currentMarble.widdershins = rem.widdershins
|
||||||
|
g.currentMarble.widdershins.clockwise = g.currentMarble
|
||||||
|
g.scores[g.currentPlayer] += rem.value
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *Game) nextPlayer() {
|
||||||
|
if g.currentPlayer == g.playerCount {
|
||||||
|
g.currentPlayer = 1
|
||||||
|
} else {
|
||||||
|
g.currentPlayer++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *Game) printState() {
|
||||||
|
fmt.Printf("[%d] ", g.currentPlayer)
|
||||||
|
p := *g.currentMarble
|
||||||
|
for p.value != 0 {
|
||||||
|
// Find the '0' marble
|
||||||
|
p = *p.clockwise
|
||||||
|
}
|
||||||
|
if p.value == g.currentMarble.value {
|
||||||
|
fmt.Printf("(%d)", p.value)
|
||||||
|
} else {
|
||||||
|
fmt.Printf(" %d ", p.value)
|
||||||
|
}
|
||||||
|
p = *p.clockwise
|
||||||
|
for p.value != 0 {
|
||||||
|
if p.value == g.currentMarble.value {
|
||||||
|
fmt.Printf("(%d)", p.value)
|
||||||
|
} else {
|
||||||
|
fmt.Printf(" %d ", p.value)
|
||||||
|
}
|
||||||
|
p = *p.clockwise
|
||||||
|
}
|
||||||
|
fmt.Println("")
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *Game) printScores() {
|
||||||
|
for i := 1; i <= g.playerCount; i++ {
|
||||||
|
fmt.Println(i, ":", g.scores[i])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (g *Game) printWinner() {
|
||||||
|
var top int
|
||||||
|
var winner int
|
||||||
|
for k, v := range g.scores {
|
||||||
|
if v > top {
|
||||||
|
top = v
|
||||||
|
winner = k
|
||||||
|
}
|
||||||
|
}
|
||||||
|
fmt.Println(winner, ":", top)
|
||||||
|
}
|
||||||
|
|
||||||
|
type Marble struct {
|
||||||
|
value int
|
||||||
|
clockwise *Marble
|
||||||
|
widdershins *Marble
|
||||||
|
}
|
||||||
|
|
||||||
|
func Atoi(i string) int {
|
||||||
|
var ret int
|
||||||
|
var err error
|
||||||
|
if ret, err = strconv.Atoi(i); err != nil {
|
||||||
|
log.Fatal("Invalid Atoi")
|
||||||
|
}
|
||||||
|
return ret
|
||||||
|
}
|
7
2018/day09/myinput.sh
Executable file
7
2018/day09/myinput.sh
Executable file
@ -0,0 +1,7 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
echo "= Part 1 ="
|
||||||
|
./day09 448 71628
|
||||||
|
|
||||||
|
echo "= Part 2 ="
|
||||||
|
./day09 448 7162800
|
114
2018/day09/problem
Normal file
114
2018/day09/problem
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
Advent of Code
|
||||||
|
|
||||||
|
--- Day 9: Marble Mania ---
|
||||||
|
|
||||||
|
You talk to the Elves while you wait for your navigation system to
|
||||||
|
initialize. To pass the time, they introduce you to their favorite marble
|
||||||
|
game.
|
||||||
|
|
||||||
|
The Elves play this game by taking turns arranging the marbles in a
|
||||||
|
circle according to very particular rules. The marbles are numbered
|
||||||
|
starting with 0 and increasing by 1 until every marble has a number.
|
||||||
|
|
||||||
|
First, the marble numbered 0 is placed in the circle. At this point,
|
||||||
|
while it contains only a single marble, it is still a circle: the marble
|
||||||
|
is both clockwise from itself and counter-clockwise from itself. This
|
||||||
|
marble is designated the current marble.
|
||||||
|
|
||||||
|
Then, each Elf takes a turn placing the lowest-numbered remaining marble
|
||||||
|
into the circle between the marbles that are 1 and 2 marbles clockwise of
|
||||||
|
the current marble. (When the circle is large enough, this means that
|
||||||
|
there is one marble between the marble that was just placed and the
|
||||||
|
current marble.) The marble that was just placed then becomes the current
|
||||||
|
marble.
|
||||||
|
|
||||||
|
However, if the marble that is about to be placed has a number which is a
|
||||||
|
multiple of 23, something entirely different happens. First, the current
|
||||||
|
player keeps the marble they would have placed, adding it to their score.
|
||||||
|
In addition, the marble 7 marbles counter-clockwise from the current
|
||||||
|
marble is removed from the circle and also added to the current player's
|
||||||
|
score. The marble located immediately clockwise of the marble that was
|
||||||
|
removed becomes the new current marble.
|
||||||
|
|
||||||
|
For example, suppose there are 9 players. After the marble with value 0
|
||||||
|
is placed in the middle, each player (shown in square brackets) takes a
|
||||||
|
turn. The result of each of those turns would produce circles of marbles
|
||||||
|
like this, where clockwise is to the right and the resulting current
|
||||||
|
marble is in parentheses:
|
||||||
|
|
||||||
|
[-] (0)
|
||||||
|
[1] 0 (1)
|
||||||
|
[2] 0 (2) 1
|
||||||
|
[3] 0 2 1 (3)
|
||||||
|
[4] 0 (4) 2 1 3
|
||||||
|
[5] 0 4 2 (5) 1 3
|
||||||
|
[6] 0 4 2 5 1 (6) 3
|
||||||
|
[7] 0 4 2 5 1 6 3 (7)
|
||||||
|
[8] 0 (8) 4 2 5 1 6 3 7
|
||||||
|
[9] 0 8 4 (9) 2 5 1 6 3 7
|
||||||
|
[1] 0 8 4 9 2(10) 5 1 6 3 7
|
||||||
|
[2] 0 8 4 9 2 10 5(11) 1 6 3 7
|
||||||
|
[3] 0 8 4 9 2 10 5 11 1(12) 6 3 7
|
||||||
|
[4] 0 8 4 9 2 10 5 11 1 12 6(13) 3 7
|
||||||
|
[5] 0 8 4 9 2 10 5 11 1 12 6 13 3(14) 7
|
||||||
|
[6] 0 8 4 9 2 10 5 11 1 12 6 13 3 14 7(15)
|
||||||
|
[7] 0(16) 8 4 9 2 10 5 11 1 12 6 13 3 14 7 15
|
||||||
|
[8] 0 16 8(17) 4 9 2 10 5 11 1 12 6 13 3 14 7 15
|
||||||
|
[9] 0 16 8 17 4(18) 9 2 10 5 11 1 12 6 13 3 14 7 15
|
||||||
|
[1] 0 16 8 17 4 18 9(19) 2 10 5 11 1 12 6 13 3 14 7 15
|
||||||
|
[2] 0 16 8 17 4 18 9 19 2(20)10 5 11 1 12 6 13 3 14 7 15
|
||||||
|
[3] 0 16 8 17 4 18 9 19 2 20 10(21) 5 11 1 12 6 13 3 14 7 15
|
||||||
|
[4] 0 16 8 17 4 18 9 19 2 20 10 21 5(22)11 1 12 6 13 3 14 7 15
|
||||||
|
[5] 0 16 8 17 4 18(19) 2 20 10 21 5 22 11 1 12 6 13 3 14 7 15
|
||||||
|
[6] 0 16 8 17 4 18 19 2(24)20 10 21 5 22 11 1 12 6 13 3 14 7 15
|
||||||
|
[7] 0 16 8 17 4 18 19 2 24 20(25)10 21 5 22 11 1 12 6 13 3 14 7 15
|
||||||
|
|
||||||
|
The goal is to be the player with the highest score after the last marble
|
||||||
|
is used up. Assuming the example above ends after the marble numbered 25,
|
||||||
|
the winning score is 23+9=32 (because player 5 kept marble 23 and removed
|
||||||
|
marble 9, while no other player got any points in this very short example
|
||||||
|
game).
|
||||||
|
|
||||||
|
Here are a few more examples:
|
||||||
|
|
||||||
|
* 10 players; last marble is worth 1618 points: high score is 8317
|
||||||
|
* 13 players; last marble is worth 7999 points: high score is 146373
|
||||||
|
* 17 players; last marble is worth 1104 points: high score is 2764
|
||||||
|
* 21 players; last marble is worth 6111 points: high score is 54718
|
||||||
|
* 30 players; last marble is worth 5807 points: high score is 37305
|
||||||
|
|
||||||
|
What is the winning Elf's score?
|
||||||
|
|
||||||
|
Your puzzle answer was 394486.
|
||||||
|
|
||||||
|
--- Part Two ---
|
||||||
|
|
||||||
|
Amused by the speed of your answer, the Elves are curious:
|
||||||
|
|
||||||
|
What would the new winning Elf's score be if the number of the last
|
||||||
|
marble were 100 times larger?
|
||||||
|
|
||||||
|
Your puzzle answer was 3276488008.
|
||||||
|
|
||||||
|
Both parts of this puzzle are complete! They provide two gold stars: **
|
||||||
|
|
||||||
|
References
|
||||||
|
|
||||||
|
Visible links
|
||||||
|
. https://adventofcode.com/
|
||||||
|
. https://adventofcode.com/2018/about
|
||||||
|
. https://adventofcode.com/2018/events
|
||||||
|
. https://adventofcode.com/2018/settings
|
||||||
|
. https://adventofcode.com/2018/auth/logout
|
||||||
|
. Advent of Code Supporter
|
||||||
|
https://adventofcode.com/2018/support
|
||||||
|
. https://adventofcode.com/2018
|
||||||
|
. https://adventofcode.com/2018
|
||||||
|
. https://adventofcode.com/2018/support
|
||||||
|
. https://adventofcode.com/2018/sponsors
|
||||||
|
. https://adventofcode.com/2018/leaderboard
|
||||||
|
. https://adventofcode.com/2018/stats
|
||||||
|
. https://adventofcode.com/2018/sponsors
|
||||||
|
. https://en.wikipedia.org/wiki/Marble_(toy)
|
||||||
|
. https://adventofcode.com/2018
|
||||||
|
. https://adventofcode.com/2018/day/9/input
|
35
go.mod
35
go.mod
@ -1 +1,36 @@
|
|||||||
module aoc
|
module aoc
|
||||||
|
|
||||||
|
require (
|
||||||
|
9fans.net/go v0.0.0-20181112161441-237454027057 // indirect
|
||||||
|
github.com/alecthomas/gometalinter v2.0.11+incompatible // indirect
|
||||||
|
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf // indirect
|
||||||
|
github.com/cosiner/argv v0.0.1 // indirect
|
||||||
|
github.com/davidrjenni/reftools v0.0.0-20180914123528-654d0ba4f96d // indirect
|
||||||
|
github.com/derekparker/delve v1.1.0 // indirect
|
||||||
|
github.com/fatih/gomodifytags v0.0.0-20180914191908-141225bf62b6 // indirect
|
||||||
|
github.com/fatih/motion v0.0.0-20180408211639-218875ebe238 // indirect
|
||||||
|
github.com/google/shlex v0.0.0-20181106134648-c34317bd91bf // indirect
|
||||||
|
github.com/josharian/impl v0.0.0-20180228163738-3d0f908298c4 // indirect
|
||||||
|
github.com/jstemmer/gotags v1.4.1 // indirect
|
||||||
|
github.com/kisielk/errcheck v1.1.0 // indirect
|
||||||
|
github.com/klauspost/asmfmt v1.2.0 // indirect
|
||||||
|
github.com/koron/iferr v0.0.0-20180615142939-bb332a3b1d91 // indirect
|
||||||
|
github.com/mattn/go-isatty v0.0.4 // indirect
|
||||||
|
github.com/mdempsky/gocode v0.0.0-20181127203757-525aa8bb282c // indirect
|
||||||
|
github.com/nicksnyder/go-i18n v1.10.0 // indirect
|
||||||
|
github.com/pelletier/go-toml v1.2.0 // indirect
|
||||||
|
github.com/peterh/liner v1.1.0 // indirect
|
||||||
|
github.com/rogpeppe/godef v1.0.0 // indirect
|
||||||
|
github.com/sirupsen/logrus v1.2.0 // indirect
|
||||||
|
github.com/spf13/cobra v0.0.3 // indirect
|
||||||
|
github.com/spf13/pflag v1.0.3 // indirect
|
||||||
|
github.com/stamblerre/gocode v0.0.0-20181204161302-e160f63d4b91 // indirect
|
||||||
|
github.com/zmb3/gogetdoc v0.0.0-20181208215853-c5ca8f4d4936 // indirect
|
||||||
|
golang.org/x/arch v0.0.0-20181203225421-5a4828bb7045 // indirect
|
||||||
|
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3 // indirect
|
||||||
|
golang.org/x/sys v0.0.0-20181208175041-ad97f365e150 // indirect
|
||||||
|
golang.org/x/tools v0.0.0-20181207222222-4c874b978acb // indirect
|
||||||
|
gopkg.in/alecthomas/kingpin.v3-unstable v3.0.0-20180810215634-df19058c872c // indirect
|
||||||
|
gopkg.in/yaml.v2 v2.2.2 // indirect
|
||||||
|
honnef.co/go/tools v0.0.0-20180920025451-e3ad64cb4ed3 // indirect
|
||||||
|
)
|
||||||
|
85
go.sum
Normal file
85
go.sum
Normal file
@ -0,0 +1,85 @@
|
|||||||
|
9fans.net/go v0.0.0-20150709035532-65b8cf069318/go.mod h1:diCsxrliIURU9xsYtjCp5AbpQKqdhKmf0ujWDUSkfoY=
|
||||||
|
9fans.net/go v0.0.0-20181112161441-237454027057 h1:OcHlKWkAMJEF1ndWLGxp5dnJQkYM/YImUOvsBoz6h5E=
|
||||||
|
9fans.net/go v0.0.0-20181112161441-237454027057/go.mod h1:diCsxrliIURU9xsYtjCp5AbpQKqdhKmf0ujWDUSkfoY=
|
||||||
|
github.com/alecthomas/gometalinter v2.0.11+incompatible h1:toROE7pXPU/pUB4lh6ICqUKwpDtmkRCyJIr1nYqmKp0=
|
||||||
|
github.com/alecthomas/gometalinter v2.0.11+incompatible/go.mod h1:qfIpQGGz3d+NmgyPBqv+LSh50emm1pt72EtcX2vKYQk=
|
||||||
|
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf h1:qet1QNfXsQxTZqLG4oE62mJzwPIB8+Tee4RNCL9ulrY=
|
||||||
|
github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=
|
||||||
|
github.com/cosiner/argv v0.0.1 h1:2iAFN+sWPktbZ4tvxm33Ei8VY66FPCxdOxpncUGpAXE=
|
||||||
|
github.com/cosiner/argv v0.0.1/go.mod h1:p/NrK5tF6ICIly4qwEDsf6VDirFiWWz0FenfYBwJaKQ=
|
||||||
|
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||||
|
github.com/davidrjenni/reftools v0.0.0-20180914123528-654d0ba4f96d h1:aRvyac5PN1NEfcANJ1tfs8GMs5I9OXsVeg0FJkpXOys=
|
||||||
|
github.com/davidrjenni/reftools v0.0.0-20180914123528-654d0ba4f96d/go.mod h1:8o/GRMvsb9VyFbSEZGXfa0dkSXml4G23W0D/h9FksWM=
|
||||||
|
github.com/derekparker/delve v1.1.0 h1:icd65nMp7s2HiLz6y/6RCVXBdoED3xxYLwX09EMaRCc=
|
||||||
|
github.com/derekparker/delve v1.1.0/go.mod h1:pMSZMfp0Nhbm8qdZJkuE/yPGOkLpGXLS1I4poXQpuJU=
|
||||||
|
github.com/fatih/camelcase v1.0.0 h1:hxNvNX/xYBp0ovncs8WyWZrOrpBNub/JfaMvbURyft8=
|
||||||
|
github.com/fatih/camelcase v1.0.0/go.mod h1:yN2Sb0lFhZJUdVvtELVWefmrXpuZESvPmqwoZc+/fpc=
|
||||||
|
github.com/fatih/gomodifytags v0.0.0-20180914191908-141225bf62b6 h1:iXJdM8Uob6EPOG/PFr5q0J124ysiZdJfACHqICBb3b8=
|
||||||
|
github.com/fatih/gomodifytags v0.0.0-20180914191908-141225bf62b6/go.mod h1:p2/x7bnOQsbq/deXsDIlj2yLiKFGPkD2nuoYqwn8R4Y=
|
||||||
|
github.com/fatih/motion v0.0.0-20180408211639-218875ebe238 h1:Qo4RxRMFag+fvDqQ6A3MblYBormptQUZ1ssOtV+EeQ8=
|
||||||
|
github.com/fatih/motion v0.0.0-20180408211639-218875ebe238/go.mod h1:pseIrV+t9A4+po+KJ1LheSnYH8m1qs6WhKx2zFiGi9I=
|
||||||
|
github.com/fatih/structtag v1.0.0 h1:pTHj65+u3RKWYPSGaU290FpI/dXxTaHdVwVwbcPKmEc=
|
||||||
|
github.com/fatih/structtag v1.0.0/go.mod h1:IKitwq45uXL/yqi5mYghiD3w9H6eTOvI9vnk8tXMphA=
|
||||||
|
github.com/google/shlex v0.0.0-20181106134648-c34317bd91bf h1:7+FW5aGwISbqUtkfmIpZJGRgNFg2ioYPvFaUxdqpDsg=
|
||||||
|
github.com/google/shlex v0.0.0-20181106134648-c34317bd91bf/go.mod h1:RpwtwJQFrIEPstU94h88MWPXP2ektJZ8cZ0YntAmXiE=
|
||||||
|
github.com/josharian/impl v0.0.0-20180228163738-3d0f908298c4 h1:gmIVMdGlVf5e6Yo6+ZklxdOrvtOvyrAjJyXAbmOznyo=
|
||||||
|
github.com/josharian/impl v0.0.0-20180228163738-3d0f908298c4/go.mod h1:t4Tr0tn92eq5ISef4cS5plFAMYAqZlAXtgUcKE6y8nw=
|
||||||
|
github.com/jstemmer/gotags v1.4.1 h1:aWIyXsU3lTDqhsEC49MP85p2cUUWr2ptvdGNqqGA3r4=
|
||||||
|
github.com/jstemmer/gotags v1.4.1/go.mod h1:b6J3X0bsLbR4C5SgSx3V3KjuWTtmRzcmWPbTkWZ49PA=
|
||||||
|
github.com/kisielk/errcheck v1.1.0 h1:ZqfnKyx9KGpRcW04j5nnPDgRgoXUeLh2YFBeFzphcA0=
|
||||||
|
github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=
|
||||||
|
github.com/kisielk/gotool v1.0.0 h1:AV2c/EiW3KqPNT9ZKl07ehoAGi4C5/01Cfbblndcapg=
|
||||||
|
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
|
||||||
|
github.com/klauspost/asmfmt v1.2.0 h1:zwsyBYgEdabg32alMful/5pRtMTcR5C5w1LKNg9OD78=
|
||||||
|
github.com/klauspost/asmfmt v1.2.0/go.mod h1:RAoUvqkWr2rUa2I19qKMEVZQe4BVtcHGTMCUOcCU2Lg=
|
||||||
|
github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=
|
||||||
|
github.com/koron/iferr v0.0.0-20180615142939-bb332a3b1d91 h1:hunjgdb3b21ZdRmzDPXii0EcnHpjH7uCP+kODoE1JH0=
|
||||||
|
github.com/koron/iferr v0.0.0-20180615142939-bb332a3b1d91/go.mod h1:C2tFh8w3I6i4lnUJfoBx2Hwku3mgu4wPNTtUNp1i5KI=
|
||||||
|
github.com/mattn/go-isatty v0.0.4 h1:bnP0vzxcAdeI1zdubAl5PjU6zsERjGZb7raWodagDYs=
|
||||||
|
github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4=
|
||||||
|
github.com/mattn/go-runewidth v0.0.3 h1:a+kO+98RDGEfo6asOGMmpodZq4FNtnGP54yps8BzLR4=
|
||||||
|
github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU=
|
||||||
|
github.com/mdempsky/gocode v0.0.0-20181127203757-525aa8bb282c h1:saoWWUaidAuBfvWlcGr+nhXB+MX4DKxGZ6lrux0Cq2M=
|
||||||
|
github.com/mdempsky/gocode v0.0.0-20181127203757-525aa8bb282c/go.mod h1:hltEC42XzfMNgg0S1v6JTywwra2Mu6F6cLR03debVQ8=
|
||||||
|
github.com/nicksnyder/go-i18n v1.10.0 h1:5AzlPKvXBH4qBzmZ09Ua9Gipyruv6uApMcrNZdo96+Q=
|
||||||
|
github.com/nicksnyder/go-i18n v1.10.0/go.mod h1:HrK7VCrbOvQoUAQ7Vpy7i87N7JZZZ7R2xBGjv0j365Q=
|
||||||
|
github.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc=
|
||||||
|
github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=
|
||||||
|
github.com/peterh/liner v1.1.0 h1:f+aAedNJA6uk7+6rXsYBnhdo4Xux7ESLe+kcuVUF5os=
|
||||||
|
github.com/peterh/liner v1.1.0/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf8GS0=
|
||||||
|
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
|
||||||
|
github.com/rogpeppe/godef v1.0.0 h1:+3JM5juQRFS/Vifg5lMHkAtRELpcGicuZXdBmf7NIhE=
|
||||||
|
github.com/rogpeppe/godef v1.0.0/go.mod h1:FWOCnfqToTbJkUGS32JdUoCuBBjtBQ3ZawrP7InscsM=
|
||||||
|
github.com/sirupsen/logrus v1.2.0 h1:juTguoYk5qI21pwyTXY3B3Y5cOTH3ZUyZCg1v/mihuo=
|
||||||
|
github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=
|
||||||
|
github.com/spf13/cobra v0.0.3 h1:ZlrZ4XsMRm04Fr5pSFxBgfND2EBVa1nLpiy1stUsX/8=
|
||||||
|
github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ=
|
||||||
|
github.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=
|
||||||
|
github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=
|
||||||
|
github.com/stamblerre/gocode v0.0.0-20181204161302-e160f63d4b91 h1:qbbVAmcNQXZK9o2ilqULvg++8kTyHIIm/n8Mq1szYgI=
|
||||||
|
github.com/stamblerre/gocode v0.0.0-20181204161302-e160f63d4b91/go.mod h1:EM2T8YDoTCvGXbEpFHxarbpv7VE26QD1++Cb1Pbh7Gs=
|
||||||
|
github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
|
||||||
|
github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=
|
||||||
|
github.com/zmb3/gogetdoc v0.0.0-20181208215853-c5ca8f4d4936 h1:+We2eeE8UuACEPcT7Ez1/yK0MN6SAqzy6S2JPxJTycQ=
|
||||||
|
github.com/zmb3/gogetdoc v0.0.0-20181208215853-c5ca8f4d4936/go.mod h1:ofmGw6LrMypycsiWcyug6516EXpIxSbZ+uI9ppGypfY=
|
||||||
|
golang.org/x/arch v0.0.0-20181203225421-5a4828bb7045 h1:Pn8fQdvx+z1avAi7fdM2kRYWQNxGlavNDSyzrQg2SsU=
|
||||||
|
golang.org/x/arch v0.0.0-20181203225421-5a4828bb7045/go.mod h1:cYlCBUl1MsqxdiKgmc4uh7TxZfWSFLOGSRR090WDxt8=
|
||||||
|
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793 h1:u+LnwYTOOW7Ukr/fppxEb1Nwz0AtPflrblfvUudpo+I=
|
||||||
|
golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=
|
||||||
|
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3 h1:x/bBzNauLQAlE3fLku/xy92Y8QwKX5HZymrMz2IiKFc=
|
||||||
|
golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=
|
||||||
|
golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
|
golang.org/x/sys v0.0.0-20181208175041-ad97f365e150 h1:a+Y1JYYfPXfb6xhWlOV++uijPyhhJy5Y/ROUAOZSre4=
|
||||||
|
golang.org/x/sys v0.0.0-20181208175041-ad97f365e150/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
|
||||||
|
golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20180824175216-6c1c5e93cdc1/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181207195948-8634b1ecd393/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
golang.org/x/tools v0.0.0-20181207222222-4c874b978acb h1:YIXCxYolAiiPmVSqA4gVUVcHo8Mi1ivU7ANnK9a63JY=
|
||||||
|
golang.org/x/tools v0.0.0-20181207222222-4c874b978acb/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
|
||||||
|
gopkg.in/alecthomas/kingpin.v3-unstable v3.0.0-20180810215634-df19058c872c h1:vTxShRUnK60yd8DZU+f95p1zSLj814+5CuEh7NjF2/Y=
|
||||||
|
gopkg.in/alecthomas/kingpin.v3-unstable v3.0.0-20180810215634-df19058c872c/go.mod h1:3HH7i1SgMqlzxCcBmUHW657sD4Kvv9sC3HpL3YukzwA=
|
||||||
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
|
gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw=
|
||||||
|
gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
|
||||||
|
honnef.co/go/tools v0.0.0-20180920025451-e3ad64cb4ed3 h1:LyX67rVB0kBUFoROrQfzKwdrYLH1cRzHibxdJW85J1c=
|
||||||
|
honnef.co/go/tools v0.0.0-20180920025451-e3ad64cb4ed3/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=
|
Loading…
Reference in New Issue
Block a user