狐狸和兔子围绕山洞c语言,弎问笔录30 之 狐狸和兔子(二)
现在把FoxAndRabbit给码出来:
package foxnrabbit;
import java.util.ArrayList;
import java.util.List;
import javax.swing.JFrame;
import ICell.ICell;
import animal.Animal;
import animal.Fox;
import animal.Rabbit;
import field.Field;
import field.Location;
import field.View;
public class FoxAndRabbit {
private Field field;
private View view;
public FoxAndRabbit(int size) {
field = new Field(size, size);
for(int row = 0; row
for(int col = 0; col
double probability = Math.random();
if(probability
field.place(row, col, new Fox());
}else if(probability
field.place(row, col, new Rabbit());
}
}
}
view = new View(field);
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(false);
frame.setTitle("FoxAndRabbit");
frame.add(view);
frame.pack();
frame.setVisible(true);
}
public void start(int steps) {
for(int i = 0; i
step();
view.repaint();
try {
Thread.sleep(200);
} catch (Exception e) {
e.printStackTrace();
}
}
}
public void step() {
for(int row = 0; row
for(int col = 0; col
ICell cell = field.get(row, col);
if(cell != null) {
Animal animal = (Animal) cell;
animal.grow();
System.out.println(animal);
if(animal.isAlive()){
//move
Location[] freeAdj = field.getFreeAdj(row, col);
if(freeAdj.length > 0) {
Location moveloc = animal.move(row, col, freeAdj);
if(moveloc != null) {
field.move(row, col, moveloc);
}
}
//feed,注意,吃掉的animal一定要remove出来;
ICell[] neighbour = field.getNeighbour(row, col);
List listofRabbit = new ArrayList();
if(neighbour.length > 0) {
for(ICell c : neighbour) {
if(c instanceof Rabbit) {
listofRabbit.add((Rabbit) c);
}
}
if(!listofRabbit.isEmpty()){
Animal fed = animal.feed(row, col, listofRabbit);
if(fed != null) {
field.remove((ICell) fed);
}
}
}
//breed
Animal baby = animal.breed();
if(baby != null) {
field.placeRandomAdj(row, col, (ICell)baby);
}
}else {
field.remove(row, col);
}
}
}
}
}
public static void main(String[] args) {
FoxAndRabbit fnr = new FoxAndRabbit(40);
fnr.start(150);
}
}
狐狸和兔子围绕山洞c语言,弎问笔录30 之 狐狸和兔子(二)相关推荐
- 狐狸和兔子围绕山洞c语言,有关与老虎狐狸和兔子的童话故事
森林里,大大小小.食肉5261的.食草的动物们生活在一起,各4102自都有各自的觅食本领,1653都在一块儿成长长大.一只狐狸在生活之余,感觉闲着无聊,便自愿做了教书先生,每天傍晚时分,在湖畔一棵大树 ...
- c语言程序兔子反之问题,C语言解决兔子产子问题代码及解析
有一对兔子,从出生后的第3个月起每个月都生一对兔子.小兔子长到第3个月后每个月又生一对兔子,假设所有的兔子都不死,问30个月内每个月的兔子总数为多少? 问题分析 兔子数的规律,如下表所示: 月数 小兔 ...
- C语言试题106之有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
1.题目 题目:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 分析:兔子的规律为数列 1,1,2,3,5, ...
- 兔子繁衍问题--C语言
兔子繁衍问题--C语言 问题提出 一对兔子,从出生后第三个月起每个月都生一对兔子.小兔子长到第三个月后每个月又生一对兔子.假如兔子都不死,请问第一个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才 ...
- php编程狼和兔子山洞,一天,一只兔子在山洞前写论文, 一只狼走了过来,问:“兔子啊,你在干什么?” 兔。。。...
一天,一只兔子在山洞前写论文, 一只狼走了过来,问:"兔子啊,你在干什么?" 兔... 兔子在山洞前写论文, 一只狼走了过来,问:"兔子啊,你在干什么?" 兔子 ...
- c语言编程题兔子产子问题,C语言兔子产子问题
问题描述 有一对兔子,从出生后的第3个月起每个月都生一对兔子.小兔子长到第3个月后每个月又生一对兔子,假设所有的兔子都不死,问30个月内每个月的兔子总数为多少? 问题分析 兔子数的规律,如下表所示: ...
- 兔子繁衍问题—c语言
问题: 一对兔子,从出生后第三个月起每个月都生一对兔子.小兔子长到第三个月后每个月又生一对兔子.假如兔子都不死,请问第一个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才能到达n对?输入一个不超过 ...
- C语言实现,古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)
题目:古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子, 假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可) 程序分析:兔子 ...
- C语言经典例题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,两年内每个月的兔子总数为多少?
咱们自己可以列前7项的结果出来统计规律 前八项的结果分别为:1对,1对,2对,5对,8对,13对,21对:看到这里就差不多能看出来规律了,从第三项开始,当前项等于前两项之和----由此我们来看代码怎么 ...
最新文章
- java怎么建立内部类_语法 - 是否可以在Java静态中创建匿名内部类?
- ssl握手过程和ca证书验证
- 对话AI大师Bengio:AI不应变成军备竞赛
- 如何使用应用程序库缓存
- 【学习笔记】关于最大公约数(gcd)的定理
- java setlt;intgt;_java使用Nagao算法实现新词发现、热门词的挖掘
- Python中利用LSTM模型进行时间序列预测分析
- django-模板的母版与子版
- python comprehension_Python从题目中学习:List comprehension
- 在苹果 Mac上接收和暂停或停止接收通知操作方法?
- 测试人员常用的20个Linux命令(附Linux视频教程)
- country-converter官方文档----机翻人工确认
- 太极团队首发:iOS 8.3完美越狱工具发布
- win10蓝屏提示重新启动_Win10系统开机提示Winload.efi丢失的蓝屏问题怎么解决?
- unity 导入 obj 模型 和 json 数据
- 火爆互动小游戏源码接入方法,需要的产品人请查收
- 卸载360天擎企业版
- 如何用python画出一般函数图_python如何画函数图像
- Specular/Glossiness传统材质简单转换金属度流程材质metallic/roughness小记
- Python OpenCV 彩色图像与灰度图像的转换
热门文章
- 靶机渗透练习56-digitalworld.local:TORMENT
- [转载]***编年史 之 上帝派来的***
- 循环中频繁查询数据库优化
- 碰撞检测 Unity实验代码
- 转:德鲁克用自己7段人生经历,讲述如何突破自我
- V4L2文档翻译(十二)
- Python学习之requests接口测试
- 心态-《自卑与超越》书中的精髓:我们为什么会感到自卑,以及如何做才能克服自卑情绪。
- 羽毛球双打区域_测试双打简介
- 学生成绩管理系统软件测试毕业设计,软件测试《学生成绩管理系统》测试资料报告材料.doc...