项目描述

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

在游戏的进行中,杂乱无序的细胞会逐渐演化出各种精致、有形的结构;这些结构往往有很好的对称性,而且每一代都在变化形状。一些形状已经锁定,不会逐代变化。有时,一些已经成形的结构会因为一些无序细胞的“入侵”而被破坏。但是形状和秩序经常能从杂乱中产生出来。

这个游戏被许多计算机程序实现了。Unix世界中的许多Hacker喜欢玩这个游戏,他们用字符代表一个细胞,在一个计算机屏幕上进行演化。著名的GNUEmacs编辑器中就包括这样一个小游戏。

大学非计算机专业学生上完JAVA课后,了解到生命游戏的玩法,自学设计了用JAVA GUI做的生命游戏,玩法简单粗暴,点击死细胞生成初始活细胞,然后按开始观看下一时刻细胞生存情况,不断重复按开始,观看细胞变化情况。按结束按钮初始化。

运行环境

jdk7+IntelliJ IDEA

项目技术(必填)

swing

数据库文件

jar包文件

java swing 代码_java swing编写gui生命游戏代码,新手上路相关推荐

  1. java猜数字游戏代码_Java如何编写猜数字游戏

    在看到这个小游戏的时候,首先想到的是: 1.电脑会随机生成一个数字. 2.我们需要去猜测生成的这个数字,并输入我们猜测的值. 3.电脑生成的随机数需要和我们猜测的值相比较. 4.比较的结果需要体现出来 ...

  2. java编写排序的代码_在Java 8之前,您编写了几行代码来对对象集合进行排序?...

    java编写排序的代码 在Java 8之前,您编写了几行代码来对对象集合进行排序? Java 8您需要多少个? 您可以在Java 8中用一行完成. 让我们看看下面的Employee类. public ...

  3. 在Java 8之前,您编写了几行代码来对对象集合进行排序?

    在Java 8之前,您编写了几行代码来对对象集合进行排序? Java 8您需要多少个? 您可以在Java 8中用一行完成. 让我们看看下面的Employee类. public class Employ ...

  4. 【软件工程基础实验】使用CheckStyle工具对生命游戏代码进行代码审查和修改

    如题,采用的是Sun Checks规范, 最终将代码修改如下: 增加了package-info.java文件 Cell.java package lifegame;/**Cell为细胞类,以实现数据封 ...

  5. java swing流程图_Java Swing 介绍

    Swing 是一个为Java设计的GUI工具包. Swing是JAVA基础类的一部分. Swing包括了图形用户界面(GUI)器件如:文本框,按钮,分隔窗格和表. Swing提供许多比AWT更好的屏幕 ...

  6. java swing背景_java swing 设置背景图片的方法一

    下面是偶写着玩的下测试的代码:(不好之处,请多多指教,大家共同进步 ) import java.awt.*; import javax.swing.*; public class ImageDemo ...

  7. java jframe教程_Java Swing JFrame窗口的实现

    1. 概述 官方JavaDocsApi: javax.swing.JFrame JFrame,窗口.JFrame 是一个可以独立显示的组件,一个窗口通常包含有标题.图标.操作按钮(关闭.最小化.最大化 ...

  8. java swing 图层_Java swing图层的问题

    我想详细了解swing的多层图层知识,看下面两个代码为什么出来的效果是不一样的?importjavax.swing.*;importjava.awt.*;publicclassMycanvas1{pu ...

  9. java jlabel用法_java swing JLabel详解以及使用示例

    JLabel 对象可以显示文本.图像或同时显示二者.可以通过设置垂直和水平对齐方式,指定标签显示区中标签内容在何处对齐.默认情况下,标签在其显示区内垂直居中对齐.默认情况下,只显示文本的标签是开始边对 ...

最新文章

  1. shell 从1加到100
  2. Vs 2015 批量 删除注释
  3. Apache Spark中实现的MapReduce设计模式
  4. 让你编程能力秃飞猛进的好习惯
  5. 【ES9(2018)】Promise.prototype.finally()
  6. 业界首款!小米10至尊纪念版将有屏下摄像头版本
  7. 卖完砖头的Supreme要卖手机了 这种手机就不要讨论配置了吧...
  8. python以列表的形式输出_简单介绍python输出列表元素的所有排列形式
  9. Shortest Prefixes
  10. HBase 实战(1)--HBase的数据导入方式
  11. PHP函数strtotime()理解笔记
  12. KISSY - A Powerful JavaScript Framework
  13. 英语语法成分:主谓宾定状补
  14. 项目一——电子通讯录
  15. 电脑无法识别U盘的解决方式集锦_艾孜尔江撰稿
  16. 聊一聊C语言位域/位段
  17. 使用DDKWirzard+VS2005开发驱动
  18. 俞敏洪的演讲 看后很受感触
  19. 介绍一下遇到汉字不认识怎么办?
  20. linux中spi驱动框架

热门文章

  1. 一点感想及AIX如何快速入门到精通(转)
  2. Kubernetes学习总结(10)—— 何为云原生,与 kubernetes 是什么关系
  3. 敏捷开发系列学习总结(5)——这几招搞定团队协同Coding
  4. ffmpeg mp4 html5,FFMPEG mkv to mp4 conversion lacks audio in HTML5 player
  5. VisualStudio移动开发(C#、VB.NET)Smobiler开发平台——BarcodeView控件的使用方式,.Net移动开发...
  6. 慢连接攻击的原理和防范
  7. C++菱形继承逆向分析
  8. 处理FTP上传成功推理
  9. PHP中文字符串截取类
  10. trunk配置功能详解