支持获取下一个座位号
This commit is contained in:
parent
c8d701bea5
commit
0741d19b7f
|
@ -172,6 +172,38 @@ func (slf *RoomSeat[PlayerID, Player]) GetSeatInfoWithPlayerIDMap() map[PlayerID
|
||||||
return slf.seatPS.Map()
|
return slf.seatPS.Map()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (slf *RoomSeat[PlayerID, Player]) GetNextSeat(seat int) int {
|
||||||
|
l := len(slf.seatSP)
|
||||||
|
if l == 0 || seat >= l || seat < 0 {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
var target = seat
|
||||||
|
for {
|
||||||
|
target++
|
||||||
|
if target >= l {
|
||||||
|
target = 0
|
||||||
|
}
|
||||||
|
if target == seat {
|
||||||
|
return seat
|
||||||
|
}
|
||||||
|
if slf.seatSP[target] != nil {
|
||||||
|
return target
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (slf *RoomSeat[PlayerID, Player]) GetNextSeatVacancy(seat int) int {
|
||||||
|
l := len(slf.seatSP)
|
||||||
|
if l == 0 || seat >= l || seat < 0 {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
seat++
|
||||||
|
if seat >= l {
|
||||||
|
seat = 0
|
||||||
|
}
|
||||||
|
return seat
|
||||||
|
}
|
||||||
|
|
||||||
func (slf *RoomSeat[PlayerID, Player]) onJoinRoom(room game.Room[PlayerID, Player], player Player) {
|
func (slf *RoomSeat[PlayerID, Player]) onJoinRoom(room game.Room[PlayerID, Player], player Player) {
|
||||||
slf.AddSeat(player.GetID())
|
slf.AddSeat(player.GetID())
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,4 +26,12 @@ type RoomSeat[PlayerID comparable, P Player[PlayerID]] interface {
|
||||||
GetSeatInfoMapVacancy() map[int]*PlayerID
|
GetSeatInfoMapVacancy() map[int]*PlayerID
|
||||||
// GetSeatInfoWithPlayerIDMap 获取座位信息,将以玩家ID作为key
|
// GetSeatInfoWithPlayerIDMap 获取座位信息,将以玩家ID作为key
|
||||||
GetSeatInfoWithPlayerIDMap() map[PlayerID]int
|
GetSeatInfoWithPlayerIDMap() map[PlayerID]int
|
||||||
|
// GetNextSeat 获取下一个座位号,空缺的位置将会被跳过
|
||||||
|
// - 超出范围将返回-1
|
||||||
|
// - 当没有下一个座位号时将始终返回本身
|
||||||
|
GetNextSeat(seat int) int
|
||||||
|
// GetNextSeatVacancy 获取下一个座位号,空缺的位置将被保留
|
||||||
|
// - 超出范围将返回-1
|
||||||
|
// - 当没有下一个座位号时将始终返回本身
|
||||||
|
GetNextSeatVacancy(seat int) int
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue