Compare commits
No commits in common. "748c2de536afc950815205032b86660c46a32ca4" and "18e9322013d0782bd0134cab2be71d7344b832bd" have entirely different histories.
748c2de536
...
18e9322013
@ -3,8 +3,6 @@ package game
|
||||
import (
|
||||
"crypto/ed25519"
|
||||
"encoding/base64"
|
||||
"errors"
|
||||
"strings"
|
||||
|
||||
petname "github.com/dustinkirkland/golang-petname"
|
||||
)
|
||||
@ -18,28 +16,17 @@ type Session struct {
|
||||
Name string
|
||||
Users []User
|
||||
|
||||
phrase []string
|
||||
AskedLetters []string
|
||||
DiscoveredPhrase []string
|
||||
Mistakes int
|
||||
|
||||
userIndex int
|
||||
CurrentUser *User
|
||||
Phrase []string
|
||||
HiddenPhrase []string
|
||||
}
|
||||
|
||||
func NewSession(phrase string) Session {
|
||||
sessionName := petname.Generate(3, "-")
|
||||
|
||||
s := Session{
|
||||
id: lastSessionId,
|
||||
Name: sessionName,
|
||||
Users: []User{},
|
||||
phrase: []string{phrase},
|
||||
AskedLetters: []string{},
|
||||
DiscoveredPhrase: make([]string, len(phrase)),
|
||||
Mistakes: 0,
|
||||
userIndex: 0,
|
||||
CurrentUser: nil,
|
||||
id: lastSessionId,
|
||||
Name: sessionName,
|
||||
Users: []User{},
|
||||
}
|
||||
|
||||
sessionStorage = append(sessionStorage, s)
|
||||
@ -55,10 +42,6 @@ func GetSession(name string) *Session {
|
||||
|
||||
func (s *Session) AddUser(user User) {
|
||||
s.Users = append(s.Users, user)
|
||||
|
||||
if s.CurrentUser == nil {
|
||||
s.CurrentUser = &s.Users[s.userIndex]
|
||||
}
|
||||
}
|
||||
|
||||
func (s Session) VerifySignature(signature string, message []byte) *User {
|
||||
@ -72,33 +55,3 @@ func (s Session) VerifySignature(signature string, message []byte) *User {
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (s *Session) GuessLetter(letter string) (*Session, error) {
|
||||
letter = strings.ToLower(letter)
|
||||
if len(letter) != 1 {
|
||||
return s, errors.New("the letter needs to have a length of one")
|
||||
}
|
||||
for _, asked := range s.AskedLetters {
|
||||
if letter == asked {
|
||||
return s, errors.New("the letter " + letter + " was already asked")
|
||||
}
|
||||
}
|
||||
|
||||
s.AskedLetters = append(s.AskedLetters, letter)
|
||||
|
||||
found := false
|
||||
for i, l := range s.phrase {
|
||||
if l == letter {
|
||||
found = true
|
||||
s.DiscoveredPhrase[i] = s.phrase[i]
|
||||
}
|
||||
}
|
||||
|
||||
if !found {
|
||||
s.Mistakes++
|
||||
}
|
||||
|
||||
s.userIndex = (s.userIndex + 1) % len(s.Users)
|
||||
s.CurrentUser = &s.Users[s.userIndex]
|
||||
return s, nil
|
||||
}
|
||||
|
@ -2,10 +2,9 @@ package words
|
||||
|
||||
import (
|
||||
"math/rand/v2"
|
||||
"strings"
|
||||
)
|
||||
|
||||
func GetRandomWord() string {
|
||||
// https://stackoverflow.com/a/22876612/16804841
|
||||
return strings.ToLower(Words[rand.IntN(len(Words))])
|
||||
return Words[rand.IntN(len(Words))]
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user