File tree Expand file tree Collapse file tree 4 files changed +44
-4
lines changed Expand file tree Collapse file tree 4 files changed +44
-4
lines changed Original file line number Diff line number Diff line change 1
- .idea /
1
+ .idea /
2
+ myCardDeck
Original file line number Diff line number Diff line change @@ -2,7 +2,10 @@ package main
2
2
3
3
import (
4
4
"fmt"
5
+ "io/ioutil"
5
6
"math/rand"
7
+ "os"
8
+ "strings"
6
9
"time"
7
10
)
8
11
@@ -49,6 +52,28 @@ func (d deck) print() {
49
52
}
50
53
}
51
54
55
+ func deal (d deck , handSize int ) (deck , deck ) {
56
+ return d [:handSize ], d [handSize :]
57
+ }
58
+
59
+ func (d deck ) toString () string {
60
+ return strings .Join (d , "," )
61
+ }
62
+
63
+ func (d deck ) saveToFile (filename string ) error {
64
+ return ioutil .WriteFile (filename , []byte (d .toString ()), 0666 )
65
+ }
66
+
67
+ func newDeckFromFile (filename string ) deck {
68
+ bs , err := ioutil .ReadFile (filename )
69
+ if err != nil {
70
+ fmt .Println ("Error: " , err )
71
+ os .Exit (1 )
72
+ }
73
+ sliceOfStrings := strings .Split (string (bs ), "," )
74
+ return sliceOfStrings
75
+ }
76
+
52
77
func (d deck ) shuffle () {
53
78
source := rand .NewSource (time .Now ().UnixNano ())
54
79
r := rand .New (source )
Original file line number Diff line number Diff line change 1
1
package main
2
2
3
- import "testing"
3
+ import (
4
+ "os"
5
+ "testing"
6
+ )
4
7
5
8
func TestNewDeck (t * testing.T ) {
6
9
deck := newDeck ()
7
10
if len (deck ) != 52 {
8
11
t .Errorf ("Expected deck length of 52, but got %d" , len (deck ))
9
12
}
10
-
11
13
if deck [0 ] != "Ace of Spades" {
12
14
t .Errorf ("Expected first card to be Ace of Spades, but got %s" , deck [0 ])
13
15
}
14
-
15
16
if deck [len (deck )- 1 ] != "King of Clubs" {
16
17
t .Errorf ("Expected last card to be King of Clubs, but got %s" , deck [len (deck )- 1 ])
17
18
}
18
19
}
20
+
21
+ func TestSaveToDeckAndNewDeckFromFile (t * testing.T ) {
22
+ os .Remove ("_deckTesting" )
23
+ deck := newDeck ()
24
+ deck .saveToFile ("_deckTesting" )
25
+
26
+ loadedDeck := newDeckFromFile ("_deckTesting" )
27
+ if len (loadedDeck ) != 52 {
28
+ t .Errorf ("Expected deck length of 52, but got %d" , len (loadedDeck ))
29
+ }
30
+ os .Remove ("_deckTesting" )
31
+ }
Original file line number Diff line number Diff line change @@ -4,4 +4,5 @@ func main() {
4
4
cards := newDeck ()
5
5
cards .shuffle ()
6
6
cards .print ()
7
+ cards .saveToFile ("myCardDeck" )
7
8
}
You can’t perform that action at this time.
0 commit comments