我正在使用GUI制作一个简单的Guess-The-Number游戏.我需要等待一个循环,等待用户在文本框中输入一个数字,然后按"确定".如何在循环中等待事件?
注意:我不想要消息框.这是在主窗口中完成的,因此需要等待输入.
编辑:我应该更好地解释自己.我知道GUI中有一个循环.我想要的是方法中的另一个循环.也许有更好的方法来做到这一点.我可以在按钮的事件处理程序中编写代码,现在我考虑一下.虽然我需要全局变量.不管怎样,我会考虑一下,但我希望我的问题现在更清楚了.
编辑2:对不起,我的问题不明确,编辑没有多大帮助.首先,代码太大,无法在此处发布.我可能不得不发布GUI的截图,所以它没什么用处.基本上,我有两个字段,"最大数量"和"允许的猜测数量".用户输入这两个并单击"播放".一个新面板可用,带有一个文本框和一个"猜猜"按钮.用户输入猜测,程序检查是否正确.
第二个无限循环的目的是避免全局变量.看,每当用户点击"播放"时,游戏必须生成一个新的随机数作为正确的猜测.如果一切都在一个方法内完成,没问题.但是如果多次调用"Guess"按钮的事件处理程序,则必须将该数字存储为Form的实例变量.当然,这不是什么大不了的事,但我认为这个数字应该是指导当前游戏的方法的属性,而不是表格的属性.
我还必须跟踪方法之外的剩余猜测数.再说一次,这没什么大不了的.如果可以的话,我只想避免使用全局变量.
我再次抱歉,我的问题不太清楚.我有点累了,我觉得写得太多了.如果仍然不清楚,那就不要打扰了.我会想到一些事情.
如果标题看起来太模糊了......嗯我想显示我用来生成页面的每个变量及其变量名称和值,是否可能以及如何?
foreach($_SESSION as $varname => $value) {
print "<b>".$varname."</b> = $value <br/>";
}
Run Code Online (Sandbox Code Playgroud)
^上面的示例是我用来显示所有会话变量,如果我需要显示我设置显示页面的变量怎么办?他们是以某种形式的阵列注册还是我也应该单独回应它们?
这可能是一个愚蠢而简单的问题,但似乎有时最简单的事情会给我带来更多问题!
这个公式假设给我一个0到100之间的数字.
(200 / 23) * Abs(Mod(2987, 23) - 23 / 2)
Run Code Online (Sandbox Code Playgroud)
在目标CI编码它像这样:
(200 / 23) * abs(2987 % 23) - (23 / 2);
Run Code Online (Sandbox Code Playgroud)
公式是否有缺陷(并且在0到100之间没有给出答案)或者我的代码是错的?似乎我的模数没有给我正确的结果.它不应该给我一个整数吗?
谢谢
我正在开发一个构建机器人的小型有趣项目.我们作为程序员正在与建造机器人的人并行工作.因此,我们经常尝试运行已更改的软件并且构建器已更改硬件.如果软件测试没有运行,那么确定软件或硬件是否出现故障总是很难,如果集成失败则更糟糕.有一些硬件可以自动测试这个问题.
我们已经找到了一些破坏方法,所以我们有控制权让机器人在没有软件的情况下通过一些动作来确保他仍在工作.然后我们开始一些软件测试,使机器人运行一些定义的数字,以显示软件的行为与以前一样.但这总是归结为一个非常耗时的任务,因为你不能自动化它,有人必须开始测试,观察测试并试图弄清楚机器人是否应该做它应该做的事情.
另一个问题是,使用我们的真实硬件进行的持续测试会损坏我们的硬件,接头,电机,齿轮等部件.
但是,测试已经证明不会造成太多麻烦并且消耗了太多时间,我想知道在处理硬件软件交互的其他项目中使用了哪种技术,以及是否有可以使用的工具.
我有一个查询计算两个日期之间所有项目的价格.这是select语句:
SELECT SUM(Price) AS TotalPrice
FROM Inventory
WHERE (DateAdded BETWEEN @StartDate AND @EndDate)
Run Code Online (Sandbox Code Playgroud)
您可以假设所有表都已正确设置.
如果我在两个日期之间进行选择并且该日期范围内没有项目,则该函数将返回NULL作为TotalPrice而不是0.
我怎样才能确保如果没有找到记录,则返回0而不是NULL?
如何围绕测试框架创建包装器?我们仍然不知道将使用哪个测试框架,但我需要开始编写单元测试.有了这个问题,我想知道如何从NUnit切换到mbUnit,xUnit甚至是MSTest.
我有一个名为ftest的测试程序.它加载包含测试的.so文件并运行它在那里找到的测试.其中一个测试加载并运行.so,其中包含用于O/RM的Postgres数据库驱动程序.
当Postgres驱动程序抛出一个在该.so文件中定义的异常(或者它链接到的那个,但是ftest没有链接到它)并被测试框架捕获时,异常析构函数会触发段错误.
只要编译的异常位于动态加载的.so中(使用dload),就会发生此段错误.
这种东西在具有相同架构的Windows中运行良好.我们并不想限制自己只使用来自核心库的异常 - 加载项应该可以自由创建自己的异常类并让它们正常处理.
例外是std :: exception的子类.有时可以在库中定义异常(例如libpqxx),这意味着异常有时也不受我们的控制.
使用以下内容抛出异常:
throw exception_class( exception_arguments );
Run Code Online (Sandbox Code Playgroud)
并使用:
catch ( std::exception &e ) {
// handler code
}
Run Code Online (Sandbox Code Playgroud)
是否需要一些特殊的编译器选项才能使其正常工作?我们是否需要切换到通过throw new exception_class( args )(我们真的不想这样做)抛出异常?
我想创建一个用于测试目的的选项列表.起初,我这样做了:
ArrayList<String> places = new ArrayList<String>();
places.add("Buenos Aires");
places.add("Córdoba");
places.add("La Plata");
Run Code Online (Sandbox Code Playgroud)
然后我重构代码如下:
ArrayList<String> places = new ArrayList<String>(
Arrays.asList("Buenos Aires", "Córdoba", "La Plata"));
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?
这是SELECT语句:
SELECT ROUND(ISNULL(SUM(Price),0),2) As TotalPrice
FROM Inventory
WHERE (DateAdded BETWEEN @StartDate AND @EndDate)
Run Code Online (Sandbox Code Playgroud)
任何想法为什么它没有四舍五入到小数点后两位?