golang rock paper scissors code example

Example: rock paper scissors in golang

package main

import (
	"fmt"
	"math/rand"
)

func rpsGame() int {
	won := false
	turns := 0
	for !won {
		fmt.Println("Rock Paper Scissors")
		fmt.Println("1=Rock 2=Paper 3=Scissors")
		fmt.Println("VVV Enter VVV")
		choice := 10
		for !(choice < 4 && choice > 0) {
			fmt.Println("VVV")
			fmt.Scanln(&choice)
		}
		pchoice := rand.Intn(4)
		for pchoice == 0 {
			pchoice = rand.Intn(4)
		}
		fmt.Println(pchoice)
		if pchoice-choice == 1 || choice-pchoice == 2 {
			fmt.Println("You lose")
		} else if choice-pchoice == 1 || pchoice-choice == 2 {
			fmt.Println("you win!!")
			won = true
		} else if choice-pchoice == 0 || pchoice-choice == 0 {
			fmt.Println("TIE!!")
		}
		turns++
	}
	return turns
}

func main() {
	terminate := false
	for !terminate {
		fmt.Print(rpsGame())
		fmt.Println(" turns to win")
		fmt.Println("play again? 1 = yes, anything else is no")
		g := 0
		fmt.Scanln(&g)
		if g != 1 {
			terminate = true
		}
	}
}

Tags:

Go Example