Refactor code, added new checkXu test cases(9 latterns)
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
package pattern
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"log"
|
||||
"os"
|
||||
)
|
||||
|
||||
type PatternDivision struct {
|
||||
Ke int
|
||||
Shun int
|
||||
Dui int
|
||||
Gang int
|
||||
}
|
||||
type Fan struct {
|
||||
Id int
|
||||
Name string
|
||||
Pattern PatternDivision
|
||||
ExcludeIds []int
|
||||
Value int
|
||||
}
|
||||
|
||||
func FansEncoder(fans []Fan) ([]byte, error) {
|
||||
return json.MarshalIndent(fans, "", " ")
|
||||
}
|
||||
|
||||
func FansDecoder(bytedata []byte) ([]Fan, error) {
|
||||
var fans []Fan
|
||||
err := json.Unmarshal(bytedata, &fans)
|
||||
return fans, err
|
||||
}
|
||||
|
||||
func FansToFile(fans []Fan, filepath string) error {
|
||||
jsonBytes, err := FansEncoder(fans)
|
||||
if err != nil {
|
||||
log.Fatalf("Can't encode fan xing: %v", err)
|
||||
return err
|
||||
}
|
||||
err = os.WriteFile(filepath, jsonBytes, 0644)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed to write fan xing into a file(%s): %v", filepath, err)
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func DivisionHelperOnNumbers(tiles [9]int) {
|
||||
|
||||
}
|
||||
func HandPatternDivide() {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
package pattern
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"testing"
|
||||
)
|
||||
|
||||
func TestFanEncoder(t *testing.T) {
|
||||
testFans := []Fan{
|
||||
{Id: 1, Name: "大四喜", Pattern: PatternDivision{Ke: 4, Shun: 0, Dui: 1, Gang: 0}, ExcludeIds: []int{12}, Value: 88},
|
||||
{Id: 2, Name: "七对", Pattern: PatternDivision{Ke: 0, Shun: 0, Dui: 7, Gang: 0}, ExcludeIds: []int{12}, Value: 24},
|
||||
}
|
||||
data, err := FansEncoder(testFans)
|
||||
if err != nil {
|
||||
log.Fatalf("Can't encode fan xing: %v", err)
|
||||
return
|
||||
}
|
||||
fmt.Println(data)
|
||||
}
|
||||
|
||||
func TestFanDecoder(t *testing.T) {
|
||||
testFans := []Fan{
|
||||
{Id: 1, Name: "大四喜", Pattern: PatternDivision{Ke: 4, Shun: 0, Dui: 1, Gang: 0}, ExcludeIds: []int{12}, Value: 88},
|
||||
{Id: 2, Name: "七对", Pattern: PatternDivision{Ke: 0, Shun: 0, Dui: 7, Gang: 0}, ExcludeIds: []int{12}, Value: 24},
|
||||
}
|
||||
jsonBytes, err := FansEncoder(testFans)
|
||||
if err != nil {
|
||||
log.Fatalf("Can't encode fan xing, cancel decoding test: %v", err)
|
||||
return
|
||||
}
|
||||
fans, err := FansDecoder(jsonBytes)
|
||||
if err != nil {
|
||||
log.Fatalf("Failed decoding byte stream of fan xing: %v", err)
|
||||
return
|
||||
}
|
||||
fmt.Println(fans)
|
||||
}
|
||||
@@ -0,0 +1,13 @@
|
||||
package pattern
|
||||
|
||||
type pattern struct {
|
||||
}
|
||||
|
||||
type shun struct {
|
||||
}
|
||||
|
||||
type ke struct {
|
||||
}
|
||||
|
||||
type jiang struct {
|
||||
}
|
||||
Reference in New Issue
Block a user