Maison  >  Article  >  développement back-end  >  Comment implémenter le jeu Niu Niu en utilisant le langage Go

Comment implémenter le jeu Niu Niu en utilisant le langage Go

PHPz
PHPzoriginal
2023-04-05 13:50:161131parcourir

Le langage Go est un langage de programmation open source, simple et efficace. Son émergence résout les problèmes de performances des langages de programmation traditionnels. Ces dernières années, avec le développement continu et la vulgarisation de la technologie Internet, le langage Go a reçu de plus en plus d'attention et est devenu l'un des langages de programmation les plus populaires. Cet article explique comment utiliser le langage Go pour implémenter le jeu Niu Niu.

Le jeu Niu Niu est un jeu de poker populaire, également connu sous le nom de jeu « Tauromachie ». Les règles du jeu consistent à combiner 5 cartes à jouer pour calculer la taille de la vache. des 5 cartes à jouer. Calculée par la somme des points, si la somme des points est un multiple de 10, elle est appelée "Niu Niu", qui est le plus grand type de carte.

Tout d'abord, nous devons définir la structure des données du jeu de poker, le code est le suivant :

type Card struct {
    num int // 扑克牌点数
    typ int // 扑克牌花色
}

type Deck struct {
    cards []*Card // 每个牌组的扑克牌
}

Ensuite, ce que nous devons implémenter est la méthode de mélange aléatoire, utilisez le package rand pour implémenter le mélange aléatoire, le code est le suivant suit :

func (d *Deck) Shuffle() {
    for i := range d.cards {
        j := rand.Intn(i + 1)
        d.cards[i], d.cards[j] = d.cards[j], d.cards[i]
    }
}

Suivant Comment calculer la taille de la vache. Nous définissons d'abord un type d'énumération pour représenter le type de carte :

type Cow int

const (
    Cow0 Cow = iota // 无牛
    Cow1 Cow = iota // 牛1
    Cow2 Cow = iota // 牛2
    Cow3 Cow = iota // 牛3
    Cow4 Cow = iota // 牛4
    Cow5 Cow = iota // 牛5
    Cow6 Cow = iota // 牛6
    Cow7 Cow = iota // 牛7
    Cow8 Cow = iota // 牛8
    Cow9 Cow = iota // 牛9
    CowCow Cow = iota // 牛牛
)

La méthode de calcul de la taille de la vache est la suivante :

func calcCow(cards []*Card) Cow {
    // 先将所有牌从小到大排序
    sort.Slice(cards, func(i, j int) bool {
        return cards[i].num < cards[j].num
    })

    for i := 0; i < 3; i++ {
        for j := i + 1; j < 4; j++ {
            for k := j + 1; k < 5; k++ {
                sum := cards[i].num + cards[j].num + cards[k].num
                if sum%10 == 0 {
                    // 如果剩下两张牌的点数之和也为10的倍数,则是牛牛
                    if (cards[0].num+cards[1].num+cards[2].num+cards[3].num+cards[4].num-sum)%10 == 0 {
                        return CowCow
                    }

                    // 否则计算剩下的两张牌点数之和
                    s := (cards[0].num + cards[1].num + cards[2].num + cards[3].num + cards[4].num - sum) % 10
                    if s == 0 {
                        return CowCow
                    } else {
                        return Cow(s)
                    }
                }
            }
        }
    }

    // 如果没有牛,则返回无牛
    return Cow0
}

Enfin, il nous faut pour mettre en œuvre le processus de jeu, y compris la distribution des cartes et le calcul de la taille de la vache, comparer la taille des cartes, etc. Le code complet est le suivant :

func main() {
    // 初始化一副牌
    deck := &Deck{}
    for i := 1; i <= 13; i++ {
        for j := 1; j <= 4; j++ {
            deck.cards = append(deck.cards, &Card{num: i, typ: j})
        }
    }

    // 洗牌
    deck.Shuffle()

    // 发牌
    player1 := deck.cards[0:5]
    player2 := deck.cards[5:10]

    // 计算牛的大小
    cow1 := calcCow(player1)
    cow2 := calcCow(player2)

    // 比较牌的大小
    if cow1 > cow2 {
        fmt.Println("player1 wins")
    } else if cow1 < cow2 {
        fmt.Println("player2 wins")
    } else {
        fmt.Println("draw")
    }
}

Résumé :

Cet article présente comment utiliser le langage Go. pour mettre en œuvre le jeu Niu Niu. En implémentant le jeu Cow Cow, nous avons appris à définir des structures de données, à utiliser des nombres aléatoires pour mélanger les cartes, à calculer la taille de la vache, à comparer les tailles des cartes, etc. Ce sont des compétences couramment utilisées dans le développement réel du langage Go.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Le Golang est-il gratuit ?Article suivant:Le Golang est-il gratuit ?