Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // James Jay
- import Foundation
- import UIKit
- enum RPS: Printable {
- case Rock
- case Paper
- case Scissor
- //initializes one of them
- init() {
- let randomNumber = arc4random() % 3
- let randomNumber2 = arc4random() % 3
- if randomNumber == 0 {
- self = RPS.Rock
- } else if randomNumber == 1 {
- self = RPS.Paper
- } else {
- self = RPS.Scissor
- }
- }
- var description: String {
- switch (self) {
- case RPS.Rock:
- return "Rock"
- case RPS.Paper:
- return "Paper"
- case RPS.Scissor:
- return "Scissors"
- }
- }
- }
- enum Outcome {
- case Win
- case Lose
- case Tie
- var Description: String{
- switch(self){
- case .Win:
- return "Win"
- case .Lose:
- return "Lose"
- case .Tie:
- return "Tie"
- }
- }
- }
- struct RPSMatch{
- var playerMove: RPS
- var opponentMove: RPS
- var outcome: Outcome{
- if(playerMove.description == opponentMove.description){
- return .Tie
- }
- else if(playerMove.description == "Paper" && opponentMove.description == "Rock"){
- return .Win
- }
- else if(playerMove.description == "Scissor" && opponentMove.description == "Paper"){
- return .Win
- }
- else if(playerMove.description == "Rock" && opponentMove.description == "Scissor"){
- return .Win
- }
- else {
- return .Lose
- }
- }
- var description: String{
- get{
- //use playerMove.description to change enum to string.
- switch(playerMove){
- case .Rock:
- switch(outcome){
- case .Win:
- return "Rock vs Scissors. Win"
- case .Lose:
- return "Rock vs Paper. Lose"
- case .Tie:
- return "Rock vs Rock. Tie"
- }//rock switch
- case .Paper:
- switch(outcome){
- case .Win:
- return "Paper vs Rock. Win"
- case .Lose:
- return "Paper vs Scissors. Lose"
- case .Tie:
- return "Paper vs Paper. Tie"
- }//paper switch
- case .Scissor:
- switch(outcome){
- case .Win:
- return "Scissors vs Paper. Win"
- case .Lose:
- return "Scissors vs Rock. Lose"
- case .Tie:
- return "Scissors vs Scissors. Tie"
- }
- }
- }
- }
- }
- let playerMove = RPS()
- print("player one has chosen \(playerMove.description)")
- let opponentMove = RPS()
- print("player two has chosen \(opponentMove.description)")
- let playerHand = playerMove
- let opponentHand = opponentMove
- var match = RPSMatch(playerMove: playerHand, opponentMove: opponentHand)
- match.description
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement