java 编写的生命游戏 窗体程序 完整代码 下载即可以运行

今天为大家继续分享生命小游戏的开发与制作 416,目前系统已经完成了初步功能,后续会进一步完善。整个系统界面漂亮,有完整得源码,希望大家可以喜欢。喜欢的帮忙点赞和关注。一起编程、一起进步!!

开发环境 

  开发语言为Java,开发环境Eclipse或者IDEA都可以。运行主程序,或者执行打开JAR文件即可以运行本程序

系统框架

  利用JDK自带的SWING框架开发,不需要安装第三方JAR包。纯窗体模式,直接运行Main文件即可以。选中Main.java,点右键 run as application启动相关程序。也客户把程序打包成JAR包,双击JAR即可以启动相关的程序。

主要功能

  游戏背景

    生命游戏其实是一个零玩家游戏,它包括一个二维矩形世界,这个世界中的每个方格居住着一个活着的或死了的细胞。一个细胞在下一个时刻生死取决于相邻八个方格中活着的或死了的细胞的数量。如果相邻方格活着的细胞数量过多,这个细胞会因为资源匮乏而在下一个时刻死去;相反,如果周围活细胞过少,这个细胞会因太孤单而死去。

    游戏规则

   实际中,你可以设定周围活细胞的数目怎样时才适宜该细胞的生存。如果这个数目设定过低,世界中的大部分细胞会因为找不到太多的活的邻居而死去,直到整个世界都没有生命;如果这个数目设定过高,世界中又会被生命充满而没有什么变化。实际中,这个数目一般选取2或者3;这样整个生命世界才不至于太过荒凉或拥挤,而是一种动态的平衡。这样的话,游戏的规则就是:当一个方格周围有2或3个活细胞时,方格中的活细胞在下一个时刻继续存活;即使这个时刻方格中没有活细胞,在下一个时刻也会“诞生”活细胞。在这个游戏中,还可以设定一些更加复杂的规则,例如当前方格的状况不仅由父一代决定,而且还考虑祖父一代的情况。你还可以作为这个世界的上帝,随意设定某个方格细胞的死活,以观察对世界的影响。

     游戏玩法

        〇代表死细胞,●代表活细胞。点击〇将死细胞复活。

        选好初始活细胞后点击“开始”细胞会繁衍至下一时期,再此期间,如果活细胞周围的活细胞太少,细胞会因为孤单而死亡,如果周围的活细胞太多,细胞会因为缺" 乏资源而死亡。

      如果活细胞适中,那死去的细胞也可以复活.不断点击“点我不要停”,观察细胞的繁衍情况。按“重来”重新开始游戏。

      游戏中会发现无论初始活细胞摆放是多么不规律,过程中细胞总会呈现出规则而对称的形状.这可能就是生命的奥秘吧。

运行效果

1 游戏初始界面

2 游戏初始预设

初始预设种类可以为:滑翔机、轻型飞船、中型飞船、重型飞船、烟花、凤凰1号
、十五步、蝴蝶、60P5H2V0飞船、滑翔机枪。

3 当前活细胞

 关键代码

 for(int i=0;i<row;i++)
            {
                for(int j=0;j<col;j++)
                {
                    switch(number[i][j])
                    {

                        case 2:
                            a[i][j]=a[i][j];
                            break;
                        case 3:
                            a[i][j]=1;
                            break;
                        default:
                            a[i][j]=0;
                    }
                }
            }
 for(int i=0;i<row;i++){
                for(int j=0;j<col;j++){
                    if(a[i][j]==1){
                        btns[i][j].setBackground(Color.black);
                    }
                    if(a[i][j]==0){
                        btns[i][j].setBackground(Color.white);

                    }
                }
            }
            num=0;
            for(int i=0;i<row;i++){
                for(int j=0;j<col;j++){
                    if(a[i][j]==1){
                        num++;

                    }
                }
            }
            label1.setText("目前共有"+num+"个活细胞");
        }

猜你喜欢

转载自blog.csdn.net/bangxiecode/article/details/129827661