C++ if statement
C++ if statement
我正在尝试制作"Lights Out"c ++控制台游戏,但我遇到了问题:我使用数字占卜来取决于它是开灯还是关灯,例如:
if(a1/2){a1s="*";}else{a1s="o";};
,但是,此语句在一次使用后失败:如果您从外板开始,它仍然处于打开状态。如果语句再次工作,有没有办法"刷新"。谢谢。:)顺便说一句。代码如下:
#include <iostream>
using namespace std;
int main()
{
string zaidimas,l,a1s,b1s,c1s,d1s,e1s,a2s,b2s,c2s,d2s,e2s,a3s,b3s,c3s,d3s,e3s,a4s,b4s,c4s,d4s,e4s,a5s,b5s,c5s,d5s,e5s;
zaidimas = "veikia";
int a1,b1,c1,d1,e1,a2,b2,c2,d2,e2,a3,b3,c3,d3,e3,a4,b4,c4,d4,e4,a5,b5,c5,d5,e5;
a1=b1=c1=d1=e1=a2=b2=c2=d2=e2=a3=b3=c3=d3=e3=a4=b4=c4=d4=e4=a5=b5=c5=d5=e5=1;
cout<<string( 100, 'n' );
while(zaidimas=="veikia")
{
{
if(a1/2){a1s="*";}else{a1s="o";};
if(a2/2){a2s="*";}else{a2s="o";};
if(a3/2){a3s="*";}else{a3s="o";};
if(a4/2){a4s="*";}else{a4s="o";};
if(a5/2){a5s="*";}else{a5s="o";};
if(b1/2){b1s="*";}else{b1s="o";};
if(b2/2){b2s="*";}else{b2s="o";};
if(b3/2){b3s="*";}else{b3s="o";};
if(b4/2){b4s="*";}else{b4s="o";};
if(b5/2){b5s="*";}else{b5s="o";};
if(c1/2){c1s="*";}else{c1s="o";};
if(c2/2){c2s="*";}else{c2s="o";};
if(c3/2){c3s="*";}else{c3s="o";};
if(c4/2){c4s="*";}else{c4s="o";};
if(c5/2){c5s="*";}else{c5s="o";};
if(d1/2){d1s="*";}else{d1s="o";};
if(d2/2){d2s="*";}else{d2s="o";};
if(d3/2){d3s="*";}else{d3s="o";};
if(d4/2){d4s="*";}else{d4s="o";};
if(d5/2){d5s="*";}else{d5s="o";};
if(e1/2){e1s="*";}else{e1s="o";};
if(e2/2){e2s="*";}else{e2s="o";};
if(e3/2){e3s="*";}else{e3s="o";};
if(e4/2){e4s="*";}else{e4s="o";};
if(e5/2){e5s="*";}else{e5s="o";};
}
cout<<" ABCDE"<<endl;
cout<<"1 "<<a1<<b1s<<c1s<<d1s<<e1s<<endl;
cout<<"2 "<<a2s<<b2s<<c2s<<d2s<<e2s<<endl;
cout<<"3 "<<a3s<<b3s<<c3s<<d3s<<e3s<<endl;
cout<<"4 "<<a4s<<b4s<<c4s<<d4s<<e4s<<endl;
cout<<"5 "<<a5s<<b5s<<c5s<<d5s<<e5s<<endl;
cin>>l;
{
if(l=="a1"){a1++;b1++;a2++;}
else if(l=="a2"){a2++;b2++;a1++;a3++;}
else if(l=="a3"){a3++;b3++;a4++;a2++;}
else if(l=="a4"){a4++;b4++;a3++;a5++;}
else if(l=="a5"){a5++;b5++;a4++;}
else if(l=="b1"){b1++;a1++;c1++;b2++;}
else if(l=="b2"){b2++;a2++;c2++;b3++;b1++;}
else if(l=="b3"){b3++;a3++;c3++;b4++;b2++;}
else if(l=="b4"){b4++;a4++;c4++;b3++;b5++;}
else if(l=="b5"){b5++;a5++;c5++;b4++;}
else if(l=="c1"){c1++;b1++;d1++;c2++;}
else if(l=="c2"){c2++;b2++;d2++;c3++;c1++;}
else if(l=="c3"){c3++;b3++;d3++;c4++;c2++;}
else if(l=="c4"){c4++;b4++;d4++;c5++;c3++;}
else if(l=="c5"){c5++;b5++;d5++;c4++;}
else if(l=="d1"){c1++;e1++;d2++;d1++;}
else if(l=="d2"){c2++;d2++;e2++;d3++;d1++;}
else if(l=="d3"){c3++;d3++;e3++;d4++;d2++;}
else if(l=="d4"){c4++;d4++;e4++;d3++;d5++;}
else if(l=="d5"){c5++;d5++;e5++;d4++;}
else if(l=="e1"){d1++;e1++;e2++;}
else if(l=="e2"){d2++;e2++;e1++;e3++;}
else if(l=="e3"){d3++;e3++;e2++;e4++;}
else if(l=="e4"){d4++;e4++;e3++;e5++;}
else if(l=="e5"){d5++;e5++;e4++;}
}
cout<<string( 100, 'n' );
}
return 0;
}
(Zaidimas代表游戏,l代表正方形,a1s a2s等代表A行1号符号(*或o),veikia代表跑步)
在这种情况下,您可能希望使用模。
您不断增加变量,因此在第一次使用后,它们将始终> 0,从而导致操作返回 true。
if(a1/2){a1s="*";}else{a1s="o";};
您可以确保在 0 和 1 之间切换 a1(并丢失/2),或者在使用时坚持使用 ++,而是这样做
if(a1%2){a1s="*";}else{a1s="o";};
使用 %
而不是 /
来获取余数模数 2,当您增加数字时,它将在 0 和 1 之间切换。
您还可以使用:
if(a1&1){a1s="*";}else{a1s="o";};
只看最低有效位。
相关文章:
- 我的简单if-else语句是如何无法访问的代码
- std::bind c++ in if statement
- Arduino array and if statement
- C++ if statement with ||
- 在if-Statement条件下与分配有关的错误
- 为什么IF-Statement不返回C 中的值
- Problems in using ?: as if statement in C++
- C++ : "if statement"中的 prim()
- c if-statement的最大值在数组中的最大值未指向正确的元素
- 无法在循环中的if statement结束时增加
- 用if-statement移动构造函数,但使用三元运算符复制构造函数
- if statement中的平等比较
- C++ if statement
- 为什么"constructor-way"在"for-loop"允许但不允许"if-statement"声明变量?
- C++入门第5版练习1.19 "The If Statement"的误解 ?
- "complicated-nested" "for/if statement"真的遵循C标准吗?
- C++ if statement
- Trying If statement
- 是否可以在继续使用 c++ 之前将"for loop"嵌入"if statement"中以比较多个条件
- C++ if...then statement