package ludo

import (
	"crypto/rand"
	"math/big"
	"server/msg"
)

func randomSz() int32 {
	// 生成0-5的随机数
	n, err := rand.Int(rand.Reader, big.NewInt(6))
	if err != nil {
		panic(err) // 在实际应用中应该更优雅地处理错误
	}
	// 转换为int32并加1得到1-6的范围
	return int32(n.Int64()) + 1
}
func roleIndexOf(arr []*msg.ColorData, target *msg.ColorData) int {
	for i, v := range arr {
		if v == target { // 比较指针地址
			return i
		}
	}
	return -1 // 未找到
}

func getRandomItem[T any](slice []T) T {
	if len(slice) == 0 {
		var zero T
		return zero
	}

	// 生成加密安全的随机数
	n, _ := rand.Int(rand.Reader, big.NewInt(int64(len(slice))))
	return slice[n.Int64()]
}
