學了一段golang,覺得應該實踐一下,寫了這個猜拳小遊戲,順帶著學習下go testing。
主程式原始碼:
[plain]
package main
import (
"bufio" // 輸入輸出
"fmt"
"math"
"math/rand"
"os"
"strconv"
"time"
)
//rock, *****, scissors
const (
rock int = 1
scissors int = 2
***** int = 3
rockname string = "石頭"
scissorsname string = "剪刀"
*****name string = "布"
win int = 1
lose int = -1
draw int = 0
)
// 拳的結構
type finger struct
func createfinger(n int) (finger finger)
return
}
func isaiwin(ai finger, user finger) int
if result < 0 else if result > 0
return draw
}
func randfinger() (finger finger)
return
}
func main()
input, err := strconv.atoi(string(data))
if err != nil
if input == 9
switch input else if aiwin == lose else
default:
fmt.println("輸入不合要求,繼續輸入:")
} }
} testing 原始碼
[plain] main
import (
"testing" // 載入test包
)
func testcreatefinger(t *testing.t) ,
scissors: finger,
*****: finger,
6: finger{}, // other
} for cs, except := range cases
} }
func testisaiwin(t *testing.t) , win},
, lose},
, win},
, lose},
, win},
, lose},
, draw},
} for i := 0; i < len(cases); i++
} }
執行預覽
[plain]
請輸入你要出的拳:1->石頭,2->剪刀,3->布, 9->退出
3 電腦出拳為: 石頭
你出拳為: 布
你贏了,繼續輸入:
2 電腦出拳為: 布
你出拳為: 剪刀
你贏了,繼續輸入:
1 電腦出拳為: 石頭
你出拳為: 石頭
平局,繼續輸入:
1 電腦出拳為: 剪刀
你出拳為: 石頭
你贏了,繼續輸入:
1 電腦出拳為: 布
你出拳為: 石頭
你輸了,繼續輸入:
9 exit code 0, process exited normally.
實踐過程中,還是發現諸多問題,例如丟失型別是長出現的問題,例如
[plain]
cases := [...]struct , win},
, lose},
, win},
, lose},
, win},
, lose},
, draw}, //原來設想[2]int是可以省略,但是在這裡會造語義分析失敗,從而丟失cs的資料
} 一些疑問
import分開的話(即中間有空行的話),fmt是不會將之順序對調,不知道會不會對import產生影響
[plain]
import (
"bufio" // 輸入輸出
"os"
"fmt"
"strconv"
"math"
"math/rand"
"time"
)
不分開的話,會是這樣
[plain]
import (
"bufio" // 輸入輸出
"fmt"
"math"
"math/rand"
"os"
"strconv"
"time"
)
猜拳小遊戲
coding utf8 author hk date 2020 10 30 檔案說明 import random count 0win c 0com y while com y count count 1 player input 請猜拳 n computer random.choice 石頭 剪刀...
猜拳小遊戲
作者沒事的時候,編寫了個猜拳小遊戲的 現在上傳分享給大家,如下 匯入產生隨機數的函式包 import random 設定迴圈的初始化條件 i 繼續 判斷i是否等於 繼續 字串,如果不等於則退出迴圈,遊戲結束 while i 繼續 電腦產生的隨機數 computer random.randint 1,...
猜拳小遊戲(python)
import random 載入模組random 隨機數 win 0 定義勝場 lose 0 定義敗場 dogfall 0 定義平局 while true while 迴圈 print 10 猜拳遊戲 10 遊戲開頭輸出 遊戲名 print 勝 s,敗 s,平 s win,lose,dogfall ...