
GO
爱蹄子的羊头
中电金信GienTech开发工程师,原博雅互动开发工程师
展开
-
golang版 4阶幻方
LUA版 四阶幻方生成办法_爱蹄子的羊头的博客-优快云博客。原创 2022-09-13 20:00:00 · 284 阅读 · 0 评论 -
golang泛型: 简单例子
golang 1.18 支持了泛型,虽然看起来好像不是很好用的样子。官方给的例子太不直观了, 先从一个直观的例子来看看package mainimport "fmt"func main() { fmt.Println(myfunc(3)) // 1 fmt.Println(myfunc(3.0)) // 1.5}func myfunc[V int | float64](a V) V { return a / 2}如果设置值的话, 是可以得到正确的返回值的pac原创 2022-04-25 18:07:39 · 607 阅读 · 0 评论 -
golang 编译ETCD报错
更新了下go mod 结果发现有个报错 go.etcd.io/etcd/clientv3 tested by go.etcd.io/etcd/clientv3.test imports github.com/coreos/etcd/auth imports github.com/coreos/etcd/mvcc/backend imports github.com/coreos/bbolt: github.com/coreos/bbo原创 2021-12-03 12:12:27 · 818 阅读 · 2 评论 -
golang missing dot in first path element
[root@127 MiddleServer]# go mod tidyMiddleServer/application/admin/mergeEverdayGameUserLog imports github.com/yangtizi/log/zaplog imports gopkg.in/natefinch/lumberjack.v2 tested by gopkg.in/natefinch/lumberjack.v2.test imports github.com/BurntSushi/t.原创 2021-08-18 21:08:00 · 6967 阅读 · 0 评论 -
govcl 添加ICON错误
编译时,报错内容 too many .rsrc sections ,原因: govcl 默认使用了syso,删除掉 github.com/ying32/govcl/pkgs/winappres/uac 即可原创 2021-02-02 13:22:13 · 501 阅读 · 1 评论 -
golang 麻将胡牌快速算法,非常快
package mainimport ( "fmt" "io/ioutil" "math" "sort" "time" "github.com/yangtizi/go/sysutils")var mp map[int]boolfunc main() { mp = make(map[int]bool) dt := time.Now() for i := 1; i <= 9; i++ { jiangtou([]int{i, i}) } fmt.Println.原创 2020-12-04 16:07:28 · 741 阅读 · 0 评论 -
ubuntu 安装最新版本的 golang
sudo add-apt-repository ppa:longsleep/golang-backportssudo apt updatesudo apt install golang-go目前是1.15正在读取软件包列表... 完成正在分析软件包的依赖关系树 正在读取状态信息... 完成 将会同时安装下列软件: g++ g++-9 golang-1.15-go golang-1.15-src golang-src libstdc++-9-dev建议安...原创 2020-11-23 17:30:23 · 8542 阅读 · 1 评论 -
golang 根据IP获取真实地址(不联网,单机版)
package mainimport ( "fmt" "github.com/yangtizi/cz88")func main() { fmt.Println(cz88.GetAddress("47.56.100.100"))}$go mod init cz88$go build -o cz88.exe$./cz88.exe香港 阿里云...原创 2020-05-05 18:06:02 · 1030 阅读 · 0 评论 -
golang.org 无法访问的问题
使用说明windows下git clone https://gitee.com/warrially/golang.org.git %GOPATH%/src/golang.orglinux下git clone https://gitee.com/warrially/golang.org.git $GOPATH/src/golang.org...原创 2019-09-29 13:55:18 · 443 阅读 · 0 评论 -
golang 解决SQL 空值Null 的问题
type TRows struct { rows *sql.Rows}func NewRows(rows *sql.Rows) *TRows { r := &TRows{} r.rows = rows return r}func (self *TRows) Scan(args ...interface{}) error { args2 := []interface...原创 2019-09-26 21:09:47 · 3236 阅读 · 0 评论 -
golang unicode形态的[]byte, 转行成utf8形态的string
func u16To8(u16 []byte) string { log.Println("u16 = ", u16) if len(u16)%2 != 0 { log.Println("err len", len(u16)) return "" } var body bytes.Buffer for i := 0; i < len(u16)/2; i++ { ...原创 2019-08-23 21:07:54 · 10282 阅读 · 0 评论 -
golang制作一个斗地主游戏服务器[15]:再写打牌和跟牌(下)
本来两个文章想叠加写在一起的,发现内容有点多, 拆分一下前面讲了客户端发送协议的, 现在就要讲服务器如何接收到协议 // 大部分还是抄袭23协议的内容 case 26: // 26 是打掉具体手牌的 req := pack.GetOutCardReq() log.Println("玩家要求打牌", req) nTableIndex := req.GetTab...原创 2019-04-09 18:38:05 · 643 阅读 · 0 评论 -
golang制作一个斗地主游戏服务器[14]:再写打牌和跟牌(上)
golang制作一个斗地主游戏服务器[6]:打牌和跟牌前面叫地主和抢地主结束了, 本篇基本上就是属于打牌的范畴了.首先把超时的时间延长起来. 不要再超时了. 一定等着我们操作完再继续 select { case <-ch: log.Println("模拟打牌") case <-time.After(time.Second * 10000): // 临时改成10...原创 2019-04-03 18:59:31 · 1062 阅读 · 0 评论 -
golang制作一个斗地主游戏服务器[12]:再写发牌
前面已经写过一个发牌的逻辑了golang制作一个斗地主游戏服务器[3]:斗地主给其他三家玩家发牌这时要在上面稍微添加一些逻辑.主要是1. 把实际玩家关联进去2. 给玩家发送手牌数据// dealcard 发牌阶段func (self *TDDZ) dealcard() { // 需要洗一副牌, 并且发送给三个玩家 pCardHeap := NewCards...原创 2019-03-27 18:03:33 · 872 阅读 · 0 评论 -
golang制作一个斗地主游戏服务器[11]:快速加入
//"服务器, 我想加入XXX号桌子 / 服务器, 帮我快速找一个空位座下吧?"message TJoinTableReq{ optional int32 TableIndex = 1; // 需要加入的桌子编号, 不填就快速加入 optional string NickName = 2; // 昵称 optional int32 Cash = 3; //...原创 2019-03-27 12:02:22 · 942 阅读 · 2 评论 -
golang八字库
go get github.com/warrially/BaziGohttps://github.com/warrially/BaziGo.gitgit clone https://github.com/warrially/BaziGo.gitGO 语言 八字算法 三清宫命理八字 golang 八字 四柱---------------------------------------------...原创 2018-04-25 09:34:04 · 974 阅读 · 0 评论 -
golang制作一个斗地主游戏服务器[0]:前言
原先用C++写的服务器, 现在打算翻译一份golang版的, 顺带整理下思路代码会放在git上托管, 边写边更吧git 地址 http://github.com/后面你们猜--------------------------------------------------------------服务器大概的架构是这样的Client(客户端) <-----&...原创 2019-03-14 16:31:59 · 2155 阅读 · 2 评论 -
golang制作一个斗地主游戏服务器[1]:从扑克牌开始
打牌, 首先就应该从最基础的扑克牌类入手单个牌来说 斗地主3最小, 然后依次是 ... K, A, 2, 小王, 大王// 花色const ( flowerNIL int = iota // 留空 flowerHEITAO // 黑桃(小王) flowerHONGTAO // 红桃(大王) flowerMEIH...原创 2019-03-14 19:08:09 · 6198 阅读 · 10 评论 -
golang制作一个斗地主游戏服务器[2]:一副扑克牌
前一章写的是单张的扑克牌, 这里要写一整副扑克牌首先定义一个扑克牌的切片// TCards type TCards []*TCard新建卡牌的时候, 分配空间, 并且随机洗牌package mainimport ( "log" "math/rand" "sort" "time")func init() { //以时间作为初始化种子 rand.Seed(t...原创 2019-03-14 22:10:52 · 1502 阅读 · 0 评论 -
golang制作一个斗地主游戏服务器[3]:斗地主给其他三家玩家发牌
接下来需要做一个简单的给三家发牌的逻辑package main// TDDZ -----------------------------------------------------// 斗地主执行type TDDZ struct { pHandCardList1 TCards //第1家的手牌 pHandCardList2 TCards //第2家的手牌 pHandC...原创 2019-03-14 22:18:27 · 1021 阅读 · 0 评论 -
golang制作一个斗地主游戏服务器[4]:叫地主和抢地主
发牌结束以后, 就是三家依次进行叫地主和抢地主了所以逻辑是 叫地主/不要 -> 抢地主/不要 -> 抢地主/不要 -> 抢回来/不要在这里可以用golang 自身的一个特性就是, 通过select 来很方便的执行超时逻辑. 玩家正常选择的时候, 执行上面的chan逻辑. 超时执行下面的chan逻辑 // 叫地主 ch := make(chan in...原创 2019-03-15 10:13:19 · 889 阅读 · 0 评论 -
golang制作一个斗地主游戏服务器[5]:牌型
下面就该进入打牌环节了打牌之前, 首先应该定义牌的类型有哪些.斗地主里面分成单牌, 对子, 三不带, 三带一拖拉机, 顺子, 飞机王炸其中, 拖拉机最多10对, 顺子至少5张 最多12张飞机内容比较多我们先把所有可能出现的牌型列举出来// 牌型const ( cardTypeNIL int = iota // 留空 // 单牌 cardTy...原创 2019-03-18 11:36:49 · 897 阅读 · 1 评论 -
golang制作一个斗地主游戏服务器[8]:先开一个服务器再说
golang的游戏服务器框架有挺多的, 大体上一个游戏成品的客户端, 都需要接入账号系统和其他分类的系统.这里为了简单化, 先开一个最简单的TCPServer服务器端(网络上的各种服务器框架大同小异, 这里选择用266的tcp框架. 其实是一个意思)package mainimport ( "log" "time" connection "github.com/266ga...原创 2019-03-25 15:59:52 · 877 阅读 · 0 评论 -
golang制作一个斗地主游戏服务器[6]:打牌和跟牌
终于到了最重要(其实也是最不重要)的打牌环节了.打牌的逻辑其实很简单选完地主以后 由地主开牌判断手牌是否消耗完毕 ->-> 开牌 -> 有人跟牌 -> 无人跟牌 -> 循环一圈会到自己 -> 本轮结束-> 游戏结束// playcard 出牌阶段func (self *TDDZ) pla...原创 2019-03-18 18:13:02 · 1388 阅读 · 3 评论 -
golang制作一个斗地主游戏服务器[9]:pb基础
根据前面文章的协议 golang制作一个斗地主游戏服务器[7]:服务器和协议的一些想法message TDDZ{ message THeader { 头部应该包含很多内容, 目前先不填 } optional THeader Header = 1; optional int32 Command =...原创 2019-03-25 17:30:12 · 690 阅读 · 0 评论 -
golang制作一个斗地主游戏服务器[10]:房间、桌子、玩家
什么房间那些先暂时不管吧. 最简单的方法就是先快速加入桌子, 也不要准备了. 加入就算自动准备, 断线重连什么的也都不管, 现在的目标就是先跑通流程一个斗地主房间 (高级场 中级场 初级场, 通常是倍率不同) 里面有很多桌子package mainimport "log"// TRoom 房间类type TRoom struct {}// NewRoo...原创 2019-03-25 18:41:41 · 1969 阅读 · 0 评论 -
golang制作一个斗地主游戏服务器[13]:再写叫地主抢地主
golang制作一个斗地主游戏服务器[4]:叫地主和抢地主之前的叫地主和抢地主, 都是通过golang 的协程去模拟的我们现在已经有正牌的客户端了. 首先要把超时时间从原先的5秒钟, 暂时延长到足够长的1000秒然后去掉协程中的模拟. 改成通过服务器收到客户端消息来判断模拟首先先在客户端 放两个按钮 一个叫 叫地主 一个叫不叫 self.Btn3 = vcl.New...原创 2019-03-29 18:38:24 · 571 阅读 · 3 评论 -
GO下载地址备份百度网盘
百度网盘: https://pan.baidu.com/s/1lu4Y_LB_vplz-RaAu1iv3QStable versionsgo1.10.1 ▾File nameKindOSArchSizeSHA256 Checksumgo1.10.1.src.tar.gzSource 17MB589449ff6c3ccbff1d391d4e7ab5bb5d5643a5a41a04c99315e55...翻译 2018-04-10 11:54:22 · 9699 阅读 · 0 评论