- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
#include <iostream>
#include <cctype>
#include <ctime>
#include "Console.h"
using namespace System;
using namespace std;
int main()
{
// Console::SetCursorPosition(10,10 );
const int Rows = 3, Cols = 3;
char gameBoard[Rows][Cols]{
};
do
{
Console::Clear();
for (size_t row = 0; row < Rows; row++)
{
Console::SetCursorPosition(30, 10 + row);
for (size_t col = 0; col < Cols; col++)
{
cout << "|" << gameBoard[row][col];
}
cout << '|';
cout << "\n";
}
int rowInput;
int colInput;
Console::SetCursorPosition(28, 15);
cout << "Row (0 -> 2): ";
cin >> rowInput;
if (cin.fail() == true)
{
cin.clear();
cin.ignore(INT_MAX, '\n');
}
else if (rowInput <= 0 || rowInput >= 3)
break;
Console::SetCursorPosition(28, 16);
cout << "Col (0 -> 2): ";
cin >> colInput;
do
{
if (gameBoard[rowInput][colInput] == 'X' || gameBoard[rowInput][colInput] == 'O'){
cout << "That is already taken";
cin.clear();
cin.ignore(INT_MAX, '\n');
}
else {
break;
}
} while (true);
gameBoard[rowInput][colInput] = 'X';
// system("pause");
// return 0;
cout << "\n";
} while (true);
system("pause");
return 0;
}
输出两次的代码是:
do
{
if (gameBoard[rowInput][colInput] == 'X' || gameBoard[rowInput][colInput] == 'O'){
cout << "That is already taken";
cin.clear();
cin.ignore(INT_MAX, '\n');
}
else {
break;
}
} while (true);
这是我的 Tic Tac Toe 游戏的一部分,但我不确定为什么它会打印两次“This is already taken”。任何帮助表示赞赏。如果有人能告诉我,我希望收到的另一个提示是如何让游戏选择一个随机点供 AI 选择。
最佳答案
您可以很容易地在此处遵循代码。通过 Windows 调试单步执行应该可以解决问题。
cin >> colInput
之后您没有执行 cin.ignore
输入流上仍然有一个 \n
。\n
的所有内容来清除 cin
。 cin
现在是空的。while (true)
\n
的所有内容来清除 cin
。因为 cin
为空,这导致程序等待直到返回 enter。如您所见,您已陷入无限循环。需要重新考虑 do...while
循环。
do
{
/* 2 and 6 */ if (gameBoard[rowInput][colInput] == 'X' || gameBoard[rowInput][colInput] == 'O'){
/* 3 and 7 */ cout << "That is already taken";
/* 4 and 8 */ cin.clear();
cin.ignore(INT_MAX, '\n');
}
else {
break;
}
/* 5 */ } while (true);
关于C++ 井字游戏 : My code is doubling my outcome from my loop. 有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23663798/
我最近偶然发现了 this jcstress 中的示例: @JCStressTest @State @Outcome(id = "10", expect =
我们的应用程序经常遇到更改请求,有时希望简单地注释掉功能,以防请求被撤销。 使用 JSP 标签创建表单元素,我们在大多数情况下使用自闭合标签,如: 其中我想像这样简单地评论 onlick 属性: /
在我的环境中,我不能使用异常,所以我需要一个替代解决方案来处理错误。在新的现代项目中,将 int 作为错误代码返回不是一个好方法,因为此接口(interface)会阻止返回其他数据。 std::exp
我使用以下方法获得了以下图片: boxplot(series, col = "orange", border = "brown") 代码: boxplot(d$y, c
所以我试图构建一个程序来告诉你准确的时间(以年、日、小时和分钟为单位)。 我已经检查了我的代码,看起来没问题,结果接近正确,但并不完全正确,我在下面发布了我的代码: #include #includ
我正在使用 Scala API 在 Spark 中运行序列模型。这是查看结果的代码行: model.freqSequences.collect().foreach { freqSequence =>
我是 R 建模的新手,我遇到了用于建模的 GLM 函数。我对使用“二项式”族的逻辑回归感兴趣。我的问题是,当我的因变量可以采用两种可能的结果之一时——比如“正”、“负”——计算估计的默认结果是什么——
我有以下变量,如果它们是宽格式,我会计算类似 lm(happiness ~ personality_trait*condition) 但是我的数据是长格式的。 我想这将是一个重复测量模型,但我不确定。
#include #include #include #include "Console.h" using namespace System; using namespace std; int
在我的 JSF 应用程序中,我有一个页面链接,该页面是使用动态查询字符串构建的: 我不能使用 ,因为每个请求包含的参数数量都会发生变化。 问题在于查询字符串是URL 编码,因为某些参数值可以包含=
我在/template/template.xhtml有一个template.xhtml文件
到目前为止,这是我发现的: from random import randint randint(100000000000000000000, 999999999999999999999) 输出是
我正在尝试将 NSView 保存到 PNG。我从 NSView 开始,然后为 PNG 调用 dataWithPDF 或 cacheDisplay。执行这两项操作的代码如下所示。 guard view.
我正在尝试使用 SUMIFS 并将其输出与相应行中的 a 值相乘。例子: Example 在此示例中,我将仅使用 1 个 SUMIFS 标准,但概念保持不变: SUMIFS(C2:C5;B2:B5;“
关于current Parse iOS Guide :当用户忘记密码时可以使用一种方法: PFUser.requestPasswordResetForEmailInBackground("email@
这个问题在这里已经有了答案: How are the points in CSS specificity calculated (7 个答案) 关闭 6 年前。 我正在尝试理解 CSS 中的特殊性。
使用以下包含二进制 0/1 变量的测试数据帧: test_df = pd.DataFrame([ [0, 0, 0, 1], [1, 0, 1, 1], [0, 0, 0, 1
我已经为一个 Android 应用程序创建了基础,该应用程序会向用户询问一组问题;与糖尿病症状相关联,并根据用户的回答生成糖尿病状态。然而,我在创建一个点系统来产生糖尿病状态时遇到了麻烦。 该应用会提
我要求我的学生编写一个 Python 程序,其中将一对 6 面骰子掷 100 次的结果存储在一个列表中,然后绘制成直方图。 我一直认为 random.choice(1,2,3,4,5,6) 不如 ra
我想避免巨大的 infoWindows,所以这是他们的 html 内容的字符串: var contentString = ""+this.type+""+ "" + this.title + ""+
我是一名优秀的程序员,十分优秀!