ios - Swift - Coding A Tie Function in Tic Tac Toe -


i'm 13 , trying follow swift tutorial brian advent. he's teaching me how simple tic tac toe game. i'm trying code tie function in swift after many hours of research found lot of code nothing me.

this message winner:

if winner != "" { //if winner      let alert = uialertcontroller(title: "tic tac toe", message: "the winner \(winner)!", preferredstyle: uialertcontrollerstyle.alert)     alert.addaction(uialertaction(title: "ok", style: uialertactionstyle.default, handler: { (alert:uialertaction!) -> void in         //todo reset fields         self.resetfield()      }))      self.presentviewcontroller(alert, animated: true, completion: nil)  } 

and message in case of tie:

else if winner == "" {     let alert = uialertcontroller(title: "tic tac toe", message: "it tie", preferredstyle: uialertcontrollerstyle.alert)     alert.addaction(uialertaction(title: "ok", style: uialertactionstyle.default, handler: { (alert:uialertaction!) -> void in         //todo reset fields         self.resetfield()     }))     self.presentviewcontroller(alert, animated: true, completion: nil) } 

but when enter code in , run it, brings out "it's tie" alert because @ start there still no winner.

now need code tells me when spaces filled "it's tie" block isn't called.

i have code if help. checks if there winner:

func checkresults(){     var winner = ""     if fields[0].player == "steve" && fields[1].player == "steve" && fields[2].player == "steve"{         winner = "steve"     }else if fields[0].player == "creeper" && fields[1].player == "creeper" && fields[2].player == "creeper"{         winner = "creeper"     }else if fields[3].player == "steve" && fields[4].player == "steve" && fields[5].player == "steve"{         winner = "steve"     }else if fields[3].player == "creeper" && fields[4].player == "creeper" && fields[5].player == "creeper"{         winner = "creeper"     }else if fields[6].player == "steve" && fields[7].player == "steve" && fields[8].player == "steve"{         winner = "steve"     }else if fields[6].player == "creeper" && fields[7].player == "creeper" && fields[8].player == "creeper"{         winner = "creeper"     }else if fields[0].player == "steve" && fields[3].player == "steve" && fields[6].player == "steve"{         winner = "steve"     }else if fields[0].player == "creeper" && fields[3].player == "creeper" && fields[6].player == "creeper"{         winner = "creeper"     }else if fields[1].player == "steve" && fields[4].player == "steve" && fields[7].player == "steve"{         winner = "steve"     }else if fields[1].player == "creeper" && fields[4].player == "creeper" && fields[7].player == "creeper"{         winner = "creeper"     }else if fields[2].player == "steve" && fields[5].player == "steve" && fields[8].player == "steve"{         winner = "steve"     }else if fields[2].player == "creeper" && fields[5].player == "creeper" && fields[8].player == "creeper"{         winner = "creeper"     }else if fields[0].player == "steve" && fields[4].player == "steve" && fields[8].player == "steve"{         winner = "steve"     }else if fields[0].player == "creeper" && fields[4].player == "creeper" && fields[8].player == "creeper"{         winner = "creeper"     }else if fields[2].player == "steve" && fields[4].player == "steve" && fields[6].player == "steve"{         winner = "steve"     }else if fields[2].player == "creeper" && fields[4].player == "creeper" && fields[6].player == "creeper"{         winner = "creeper"     } 

edited include daniel t's function:

the final working allfieldsfull() code:

  else if allfieldsfull() == true && winner == "" {         let alert = uialertcontroller(title: "tic tac toe", message: "it's tie", preferredstyle: uialertcontrollerstyle.alert)         alert.addaction(uialertaction(title: "ok", style: uialertactionstyle.default, handler: { (alert:uialertaction!) -> void in             //todo reset fields             self.resetfield()         }))         self.presentviewcontroller(alert, animated: true, completion: nil)     } 

thank appreciated :) if have questions please comment down below

your code never checks see if game over. checks see if won.

you need if statement checks see if squares full, if are, , winner == "", then game tie.

-edit-

have learned loops , writing own functions yet? way solve new problem create function loops through of fields.

func allfieldsfull() -> bool {     in 0 ..< 9 {         if fields[i].player.isempty {             return false         }     }     return true } 

i leave figure out how use above. luck!


Comments

Popular posts from this blog

ruby on rails - RuntimeError: Circular dependency detected while autoloading constant - ActiveAdmin.register Role -

c++ - OpenMP unpredictable overhead -

javascript - Wordpress slider, not displayed 100% width -