Игра Go-lang Рок Бумажные ножницы - PullRequest
1 голос
/ 16 октября 2019

Наш проект заключается в создании функциональной игры Rock Paper Scissors с использованием Go. Я подумал, что это было бы отличным местом, чтобы попросить несколько указателей на некоторые очевидные ошибки, которые я мог бы сделать.

У меня несколько проблем.

  1. Независимо от того, что пользователь вводит, программа говорит, что я всегда вхожу в "рок".
  2. Независимо от того, что я ввожу в программу, такжевсегда говорит мне, что это «галстук»

Так что для меня совершенно очевидно, что у меня возникают проблемы с моими утверждениями if / else, но я не уверен, где и что именно. Также я знаю свои PlayerPlay func уродлив, но по какой-то причине, когда у меня изначально было мое меню дисплея, оно продолжало бы возвращаться к моему меню, не проходя через остальную часть программы.

package main

import (
        "fmt"
        "math/rand"
        "time"
)

func ComputerPlay() int {

    return rand.Intn(2) + 1
}

func PlayerPlay(play int) int {

    fmt.Scanln(&play)

    return play
}

func PrintPlay(playerName string, play int) {

    fmt.Printf("%s picked ", playerName)

    if play == 0 {
        fmt.Printf("rock\n")
    } else if play == 1 {
        fmt.Printf("paper\n")
    } else if play == 2 {
        fmt.Printf("scissors\n")
    }



    fmt.Printf("Computer has chose ")
            switch ComputerPlay() {
            case 0:
                    fmt.Println("rock\n")
            case 1:
                    fmt.Println("paper\n")
            case 2:
                    fmt.Println("scissors\n")
}

}


func ShowResult(computerPlay int, humanPlay int){

    var play int
    computerPlay = ComputerPlay()
    humanPlay = PlayerPlay(play)

        if humanPlay == 0 && humanPlay == 0 {
        fmt.Printf("It's a tie\n")
    } else if humanPlay == 0 && computerPlay == 1 {
        fmt.Printf(" Rock loses to paper\n")
    }   else if humanPlay == 0 && computerPlay == 2 {
        fmt.Printf("Rock beats scissors\n")
    }   else if humanPlay == 1 && computerPlay == 0 {
        fmt.Printf(" Paper beats rock\n")
    }   else if humanPlay == 1 && computerPlay == 1 {
        fmt.Printf("It's a tie!\n")
    }   else if humanPlay == 1 && computerPlay == 2 {
        fmt.Printf("Paper loses to scissors\n")
    } else if humanPlay == 2 && computerPlay == 0 {
        fmt.Printf("Scissors loses to rock\n")
    } else if humanPlay == 2 && computerPlay == 1 {
        fmt.Printf(" Scissors beats paper\n")
    } else if humanPlay == 2 && computerPlay == 2 {
        fmt.Printf(" It's a tie!\n")
    }


}

func main() {
        rand.Seed(time.Now().UnixNano())

        fmt.Printf("Welcome to Rock, Paper, Scissors\n\n")
        fmt.Printf("What is your name?\n")
        var playerName string
        fmt.Scanln(&playerName)

        fmt.Printf("Choose\n")
        fmt.Printf("0. Rock\n")
        fmt.Printf("1. paper\n")
        fmt.Printf("2. scissors\n")
        fmt.Printf("Your choice -> ")
        var play int
        PlayerPlay(play)
        PrintPlay(playerName, play)

        var computerPlay int
        ComputerPlay()
        ShowResult(computerPlay, play)

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...