本地代码能跑出结果,但洛谷跑出来RE
查看原帖
本地代码能跑出结果,但洛谷跑出来RE
1347427
st_hs楼主2024/6/5 12:48

经过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))

玄学代码,蒟蒻已经放弃了

2024/6/5 12:48
加载中...