1
在一个简单的游戏循环中,我有active_player
指向2个玩家对象之一。不能借X作为不可改变的,因为它也被借用为可变
let mut active_player = &mut self.player1;
loop {
// do stuff with active_player
println!("{} {}", self.player1.last_move(), self.player2.last_move());
// Switch to next player
}
问题是当我尝试阅读self.player1.last_move()
我明白为什么我得到的错误,但我不知道正确的方式来解决这个问题。这是一个例子,active_player
应该是Rc
?
那么,这个想法是,第一次通过循环'active_player'是self.player1,下次是player2,然后回到player1。通过改变'active_player'的范围,我失去了谁是主动球员,这是需要切换到下一个球员 – Shaun
是的,你的解决方案将工作。直到现在,我没有尝试写下“切换到下一个玩家”的部分......这会遇到多次借入问题。我只需要用一个整数或者其他东西来跟踪活动球员 – Shaun
我想你可能会把“积极球员”的逻辑变成一种自己的方法。如果不知道游戏其他部分的内部情况,我不能真正建议你如何去解决这个问题。 –