经过exit(0)测试发现出现问题的语句如下
if(this->handCard[i]=='K'&&(t|this->equipment)&&this->playerAttitude(*this->nextPlayer)==unfriendly){
if(this->nextPlayer->jumpCharactor==3) this->jumpCharactor=2;
if(this->nextPlayer->jumpCharactor==2) this->jumpCharactor=3;
this->putCard(i);
i-=1;
this->nextPlayer->react(*this,'K');
}
判断条件中的
this->playerAttitude(*this->nextPlayer)==unfriendly
会导致报RE,测试过和playerAttitude无关,测试后发现这个地方的条件只要是 判断过 == 就会报RE, 例如
//两者都不会报RE
if(this->handCard[i]=='K'&&(t|this->equipment)&&this->playerAttitude(*this->nextPlayer)!=unfriendly)
if(this->handCard[i]=='K'&&(t|this->equipment)&&this->playerAttitude(*this->nextPlayer))
//两者都会RE
if(this->handCard[i]=='K'&&(t|this->equipment)&&this->playerAttitude(*this->nextPlayer)==unfriendly)
if(this->handCard[i]=='K'&&(t|this->equipment)&& !(this->playerAttitude(*this->nextPlayer)!=unfriendly))
玄学代码,蒟蒻已经放弃了