| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2165 人关注过本帖
标题:关于一维life game的代码,请看一下错在什么地方
只看楼主 加入收藏
纯蓝之刃
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:76
帖 子:570
专家分:3727
注 册:2019-7-29
收藏
得分:20 
一维的情况,你给的条件不对,我在程序里标注了,你想好后在相应的地方改了就行了。

程序代码:
#include <stdio.h>

int array[22]= {0}; //点号状态
int sum[22]= {0};   //点号周围八个点状态
int num=0;

void array_around_left(int x,int y);
void array_around_right(int x,int y);
void array_generation(int x);       //进行下一代
void array_printf(void);

int main()
{
    int i,k;

    while(1)
    {
        scanf("%d",&i);
        if(i==-1)
            break;
        else
            array[i]=1;
    }
    scanf("%d",&num);

    array_printf();
    for(k=0; k<num; k++)
    {
        for(i=1; i<=20; i++)
        {
            sum[i]=0;
            array_around_left(i,i);       //统计数据
            array_around_right(i,i);       //统计数据

            printf("%d ",sum[i]);    //调试打印,后期删除
        }
        printf("\n");                //调试打印,后期删除

        for(i=1; i<=20; i++)
            array_generation(i);       //进行下一代

        array_printf();
    }

    return 0;
}

void array_around_left(int x,int y)
{
    if(array[x-1])
    {
        sum[y]++;
        array_around_left(x-1,y);
    }
}

void array_around_right(int x,int y)
{
    if(array[x+1])
    {
        sum[y]++;
        array_around_right(x+1,y);
    }
}

void array_generation(int x)
{
    if(array[x])
    {
        if(sum[x]==2||sum[x]==4)    //活着的邻居数
            array[x]=1;
        else
            array[x]=0;
    }
    else
    {
        if(sum[x]==3||sum[x]==3)    //死的邻居数
            array[x]=1;
        else
            array[x]=0;
    }
}

void array_printf()     //打印
{
    int i;

    for(i=1; i<=20; i++)
    {
        if(array[i])
            printf("*");
        else
            printf("-");
    }
    printf("\n\n");
}

一沙一世界,一花一天堂。无限掌中置,刹那成永恒。
2020-03-09 22:40
快速回复:关于一维life game的代码,请看一下错在什么地方
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.117853 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved