- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用在 involuntaryexercise.com 上找到的 reni2D 库构建这个程序我创建了一个由二维行列组成的网格,单击其中的每个方 block 即可打开和关闭。现在,我正在尝试制作一些遵守规则的工作算法,但在运行程序时,在程序通过相关循环后它们都会消失。我看不出这里有什么本质上的错误,所以我依靠熟练的程序员的眼睛来指导我走上正确的道路。
[更新]:该程序现在运行得更好,只是它出于某种原因不遵循 Game Of Life 规则。
if(raGetKey(VK_RETURN))
{
//occupied cells
for(int i=0; i<ROWS; i++){ //768/24 = 32
for(int j=0; j<COLS; j++){ //768/32 = 24
//Occupied cells
if(sq[i][j].isOn == true && sq[i][j].neighbors < 4)
{
//UDLR
if((j+1)<COLS && sq[i][j+1].isOn == true){
sq[i][j].neighbors += 1;
printf("The occupied sq[%d][%d] gains a neighbor\n", i, j);
}
if((j-1)>(-1) && sq[i][j-1].isOn == true){
sq[i][j].neighbors += 1;
printf("The occupied sq[%d][%d] gains a neighbor\n", i, j);
}
if((i+1)<ROWS && sq[i+1][j].isOn == true){
sq[i][j].neighbors += 1;
printf("The occupied sq[%d][%d] gains a neighbor\n", i, j);
}
if((i-1)>(-1) && sq[i-1][j].isOn == true){
sq[i][j].neighbors += 1;
printf("The occupied sq[%d][%d] gains a neighbor\n", i, j);
}
if(sq[i][j].neighbors >= 4)
break;
//Diagonal
if((i+1)<ROWS && (j+1)<COLS && sq[i+1][j+1].isOn == true){
sq[i][j].neighbors += 1;
printf("The occupied sq[%d][%d] gains a neighbor\n", i, j);
}
if((i-1)>(-1) && (j-1)> (-1) && sq[i-1][j-1].isOn == true){
sq[i][j].neighbors += 1;
printf("The occupied sq[%d][%d] gains a neighbor\n", i, j);
}
if((i-1)>(-1) && (j+1)<COLS && sq[i-1][j+1].isOn == true){
sq[i][j].neighbors += 1;
printf("The occupied sq[%d][%d] gains a neighbor\n", i, j);
}
if((i+1)<ROWS && (j-1)> (-1) && sq[i+1][j-1].isOn == true){
sq[i][j].neighbors += 1;
printf("The occupied sq[%d][%d] gains a neighbor\n", i, j);
}
}
//Empty cells
if(sq[i][j].isOn == false && sq[i][j].neighbors < 4)
{
//UDLR
/*if((i+1)<ROWS && (j+1)<COLS && (i-1)>0 && (j-1)>0)
{*/
if((j+1)<COLS && sq[i][j+1].isOn == true){
sq[i][j].neighbors += 1;
printf("The empty sq[%d][%d] gains a neighbor\n", i, j);
}
if((j-1)>0 && sq[i][j-1].isOn == true){
sq[i][j].neighbors += 1;
printf("The empty sq[%d][%d] gains a neighbor\n", i, j);
}
if((i+1)<ROWS && sq[i+1][j].isOn == true){
sq[i][j].neighbors += 1;
printf("The empty sq[%d][%d] gains a neighbor\n", i, j);
}
if((i-1)>-1 && sq[i-1][j].isOn == true){
sq[i][j].neighbors += 1;
printf("The empty sq[%d][%d] gains a neighbor\n", i, j);
}
if(sq[i][j].neighbors >= 4)
break;
//Diagonal
if((i+1)<ROWS && (j+1)<COLS && sq[i+1][j+1].isOn == true){
sq[i][j].neighbors += 1;
printf("The empty sq[%d][%d] gains a neighbor\n", i, j);
}
if((i-1)>(-1) && (j-1)> (-1) && sq[i-1][j-1].isOn == true){
sq[i][j].neighbors += 1;
printf("The empty sq[%d][%d] gains a neighbor\n", i, j);
}
if((i-1)>(-1) && (j+1)<COLS && sq[i-1][j+1].isOn == true){
sq[i][j].neighbors += 1;
printf("The empty sq[%d][%d] gains a neighbor\n", i, j);
}
if((i+1)<ROWS && (j-1)> (-1) && sq[i+1][j-1].isOn == true){
sq[i][j].neighbors += 1;
printf("The empty sq[%d][%d] gains a neighbor\n", i, j);
}
//}
}
}
}
for(int i=0; i<ROWS; i++) //768/24 = 32
{
for(int j=0; j<COLS; j++) //768/32 = 24
{
if(sq[i][j].isOn == true)
{
if(sq[i][j].neighbors <= 1){
sq[i][j].isOn = false;
sq[i][j].neighbors = 0;
printf("sq[%d][%d] is ON and has less than 1 neighbors ... Died from lonliness\n", i, j);
}
if(sq[i][j].neighbors >= 4){
sq[i][j].isOn = false;
sq[i][j].neighbors = 0;
printf("sq[%d][%d] is ON and has neighbors is greater than or equal to 4... Died from overpopulation\n", i, j);
}
if(sq[i][j].neighbors > 1 && sq[i][j].neighbors < 4){
sq[i][j].isOn = true;
printf("sq[%d][%d] is ON has 2 or 3 neighbors... Lives\n", i, j);
sq[i][j].neighbors = 0;
}
}
if(/*sq[i][j].isOn == false && */sq[i][j].neighbors == 3){
printf("sq[%d][%d] is OFF has 3 neighbors... Reproduce\n", i, j);
sq[i][j].isOn = true;
sq[i][j].neighbors = 0;
}
}
}
}
最佳答案
这里可能有几个问题,但至少其中一个可能是花括号放错地方:您的意思是要将第 3 个和第 4 个 for 循环放在第一个 for 循环中吗?
顺便说一句,许多程序员喜欢使用具有自动缩进功能的文本编辑器,这有助于捕获这些类型的错误。
关于c++ - 尝试用 C++ 编写 Conway 的生命游戏时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4181036/
冷静下来,不吹不黑。 01 最近半年,互联网一款现象级的应用诞生:「ChatGPT」; 其火爆的程度,不输前面的羊了个羊; 最初了解到ChatGP
在了解在 .Net 中开发是什么样子之前,我有几个新手问题: 非管理员用户能否安装 .Net 框架,无论是原始包还是运行程序所需的任何后续更新?我们的一些客户锁定了 XP/Vista 主机,当我们上传
https://plus.google.com/u/1/110412141990454266397/posts/Nvr6Se6eAPh 有谁知道如何使用最新版本的 GWT(来自 svn)和 Chrom
已关闭。此问题不符合Stack Overflow guidelines 。目前不接受答案。 要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是偏离
我需要在加载 NSDocument 之前创建多个窗口,或者创建一个阻止 NSDocument 窗口和顶部菜单的窗口。 我尝试了几种解决方案 - 但它们都不起作用。 模态窗口,一个接一个。 Async
尝试配置 spring 3 MVC,这是我目前所做的: 我将所有 spring 3.0 库添加到我的 netbeans 项目中。 我的 web.xml 是: WebApp
As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be
我无法让 Resharper 的清理代码停止更改如下属性: public long Value { get { return _thingy; } se
我并不是真的在寻找基本的 SQL 指南,而是寻找特定于 PostgreSQL 的东西。 而且我确实运行自己的服务器,因此获取最新版本(我相信是 8.2?)没问题。 最佳答案 重要的事情: 如果可以(既
这是 Adobe Encore 程序的屏幕截图。 在这里,您可以看到一组深色组件。 可以购买,下载等吗?它们是从 Adobe Cor. 公开的吗? 谢谢 最佳答案 实现这种外观和感觉的最简单方
我有一个代码(可以正常工作)用于使用 C++ Builder 来引导 word。它对于访问文档中的不同书签很有用。 Variant vNom, vWDocuments, vWDocument, vMS
我是一名优秀的程序员,十分优秀!