c++ - 如何在 IF 语句 c++ 中创建“除非条件”
问题描述
我正在用 C++ 制作二十一点,而且快结束了!我正在做我的输赢陈述。但我的问题是,我需要我的 if 语句来确定庄家/玩家的手牌是大于还是小于另一手,还需要检查其中一个是否超过 21。
因此,让 if 语句确定这不是问题,如果另一个超过 21 岁,我只需要它不通过一个 if 语句
if (dealerTotal > 21 || playerTotal > dealerTotal)//For win
{
}
if (playerTotal > 21 || dealerTotal > playerTotal)// For lose
{
}
所以第一个它需要通过如果除非“playerTotal 超过 21”,而下一个 IF 则相反
任何建议将不胜感激。非常感谢!
解决方案
在二十一点中,如果玩家和庄家都获得超过 21 点(称为“爆牌”),则玩家输,庄家赢。因此,您必须相应地设计逻辑:
if (
//player busted, or
playerTotal > 21 ||
//dealer not busted and dealer has more points than player
( dealerTotal <= 21 && dealerTotal > playerTotal )
)
{
printf( "Dealer wins!\n" );
}
else if ( dealerTotal == playerTotal )
{
printf( "Tie!\n" );
}
else
{
printf( "Player wins!\n" );
}
请注意,第一个if
条件中的括号不是必需的,因为运算符优先级&&
高于. 我只是为了清楚起见才添加它们。||
此逻辑没有考虑二十一点 21 对非二十一点 21 的胜利。如果一方有二十一点而另一方有非二十一点 21,则上述逻辑将错误地报告平局。如果不查看更多代码,则无法解决此问题,因为您仅显示变量playerTotal
和dealerTotal
,它们并未指定一侧是否有二十一点。
推荐阅读
- ubuntu - 无法使用 apt 解决未满足的依赖问题 - pkgProblemResolver::Resolve 生成的中断
- python - 在 csv 文件 pandas 中手动分配时的列值更改
- javascript - 谷歌应用脚本的 Java 脚本优化
- python - ModuleNotFoundError:没有名为“data_engine”的模块
- python - 如何在for循环下打开多个TXT文件并为每个文件分配一个名称
- c++ - 删除“。”之后的一些文本 来自字符串,不包括 ".'space'" 和句子中的最后一个句号
- elasticsearch - ElasticSearch 如何按文档/字段权重排序?
- php - 找不到类放大器
- kubernetes - Kubernetes 具有相同配置的多个入口对象
- python - 无法从单独的文件中定义坐标和速度