作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个填满的填字游戏,我想做一个程序来扫描水平单词并将它们放入一个新数组中,填字游戏是 20x20 数组,新数组将是 40x20。前任。如果我找到 3 个水平单词,例如:狗、猫、鱼,则 40x20 必须看起来像
狗 --> 第一行
猫
鱼
0
...
0 --> 第 40 行
(最大字数为 40,因为 40x20 = 40 行)每个字一行...到目前为止我所做的并不是那么多......
#include<stdio.h>
char cross[20][20]={
{'*','*','*','*','*','*','*','*','*','*','*','*','*','*','*','*','*','*','*','*'},
{'*','T','Y','P','E','*','*','*','*','G','U','I','T','A','R','I','S','T','*','*'},
{'*','E','*','*','V','A','I','N','*','A','*','*','*','V','*','*','T','*','I','*'},
{'*','R','O','M','E','*','*','*','*','M','A','R','R','I','A','G','E','*','N','*'},
{'*','R','*','*','N','O','O','D','L','E','*','O','*','A','*','*','A','N','T','*'},
{'*','I','N','*','*','*','*','O','*','*','*','P','E','T','R','O','L','*','I','*'},
{'*','F','*','C','*','C','U','T','*','L','I','E','*','I','*','A','T','O','M','*'},
{'*','I','*','O','*','U','*','*','M','*','N','*','M','O','U','T','H','*','A','*'},
{'*','E','N','V','E','L','O','P','E','*','F','*','I','N','*','H','*','A','T','*'},
{'*','D','*','E','*','T','*','*','A','*','E','*','N','*','*','*','A','G','E','*'},
{'*','*','A','R','T','*','I','N','T','E','R','I','O','R','*','A','*','O','*','*'},
{'*','K','*','*','O','*','R','*','*','A','T','*','R','O','B','B','E','R','Y','*'},
{'*','A','T','*','A','I','R','*','S','T','I','R','*','O','*','O','*','A','*','*'},
{'*','N','O','*','S','*','I','T','*','*','L','*','S','M','I','L','E','*','S','*'},
{'*','G','*','*','T','*','T','*','O','*','I','*','O','*','N','I','G','H','T','*'},
{'*','A','C','E','*','M','A','N','D','A','T','O','R','Y','*','T','O','*','O','*'},
{'*','R','*','N','Y','*','T','*','E','*','Y','*','T','*','*','I','*','*','P','*'},
{'*','O','*','D','O','*','E','*','*','*','*','I','*','O','Z','O','N','E','*','*'},
{'*','O','N','*','U','N','D','E','R','W','A','T','E','R','*','N','O','U','N','*'},
{'*','*','*','*','*','*','*','*','*','*','*','*','*','*','*','*','*','*','*','*'}
};
int main(){
int i,j,a,b;
char cross1[40][20];
for(a=0;a<40;a++){
for(b=0;b<20;b++){
cross1[a][b]='0';
}
}
for(i=0;i<40;i++){
for(j=0;j<20;j++){
printf("%c ",cross1[i][j]);
}
printf("\n");
}
for(i=0;i<20;i++){
for(j=0;j<20;j++){
printf("%c ",cross[i][j]);
}
printf("\n");
}
for(i=0,a=0;i<20;i++){
for(j=0;j<20;j++){
if(cross[i][j]=='*'){}
else{
cross1[i][j]=cross[i][j];
}
}
}
printf("Cross1:\n");
for(i=0;i<40;i++){
for(j=0;j<20;j++){
printf("%c ",cross1[i][j]);
}
printf("\n");
}
return 0;
}
最佳答案
想象一下从一行中挑选单词!你能做到吗?如果是,请编写代码并用循环包裹它:
for (line = 0; line < 20; ++line)
{
// cross[line] is just one line
}
如果您不知道如何从一行中选择单词,这里有一个想法。有一个临时变量“单词开始的地方”,初始化为-1。扫描阵列;如果你找到一封信,请记住它在哪里。如果发现非字母,请打印该单词并忘记它。水平单词在水平方向上应该有超过 1 个字母 - 这是区分水平单词和垂直单词的方式。
类似这样的事情:
start_index = -1;
for (i = 0; i < 20; ++i)
{
if (line[i] == '*')
{
if (start_index != -1 && i - start_index > 1)
printf(...);
}
else
{
if (start_index == -1)
start_index = i;
}
}
如果您使用此代码,您应该修改它以考虑到在右边距终止的单词。
关于C 将填字游戏水平单词放入新数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27236050/
我是一名优秀的程序员,十分优秀!