编写的五子棋程序中,有存盘退出和续上盘的功能
package main
import "fmt"
type ValNode struct {
row int
col int
val int
}
func main() {
var chessMap [10][10]int
chessMap[1][2] = 1
chessMap[2][3] = 2
var arr []ValNode
val := ValNode{
row: 11,
col: 11,
val: 0,
}
arr = append(arr, val)
for i, v := range chessMap {
for j, v2 := range v {
if v2 != 0 {
arr = append(arr, ValNode{
row: i,
col: j,
val: v2,
})
}
}
}
fmt.Println(":::::当前的稀疏数组是:::::")
show(arr)
fmt.Println(":::::还原后的数组:::::")
var chessMap2 [11][11]int
for i, valNode := range arr {
if i != 0 { // 跳过第一行记录值
chessMap2[valNode.row][valNode.col] = valNode.val
}
}
for _, k := range chessMap2 {
fmt.Println(k)
}
}
func show(m []ValNode) {
for _, v := range m {
fmt.Println(v)
}
}
输出结果