golang學習例項 猜拳小遊戲

2021-12-29 20:52:56 字數 2766 閱讀 1156

學了一段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 ...