现在把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 之 狐狸和兔子(二)相关推荐

  1. 狐狸和兔子围绕山洞c语言,有关与老虎狐狸和兔子的童话故事

    森林里,大大小小.食肉5261的.食草的动物们生活在一起,各4102自都有各自的觅食本领,1653都在一块儿成长长大.一只狐狸在生活之余,感觉闲着无聊,便自愿做了教书先生,每天傍晚时分,在湖畔一棵大树 ...

  2. c语言程序兔子反之问题,C语言解决兔子产子问题代码及解析

    有一对兔子,从出生后的第3个月起每个月都生一对兔子.小兔子长到第3个月后每个月又生一对兔子,假设所有的兔子都不死,问30个月内每个月的兔子总数为多少? 问题分析 兔子数的规律,如下表所示: 月数 小兔 ...

  3. C语言试题106之有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

    1.题目 题目:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月 后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 分析:兔子的规律为数列 1,1,2,3,5, ...

  4. 兔子繁衍问题--C语言

    兔子繁衍问题--C语言 问题提出 一对兔子,从出生后第三个月起每个月都生一对兔子.小兔子长到第三个月后每个月又生一对兔子.假如兔子都不死,请问第一个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才 ...

  5. php编程狼和兔子山洞,一天,一只兔子在山洞前写论文, 一只狼走了过来,问:“兔子啊,你在干什么?” 兔。。。...

    一天,一只兔子在山洞前写论文, 一只狼走了过来,问:"兔子啊,你在干什么?" 兔... 兔子在山洞前写论文, 一只狼走了过来,问:"兔子啊,你在干什么?" 兔子 ...

  6. c语言编程题兔子产子问题,C语言兔子产子问题

    问题描述 有一对兔子,从出生后的第3个月起每个月都生一对兔子.小兔子长到第3个月后每个月又生一对兔子,假设所有的兔子都不死,问30个月内每个月的兔子总数为多少? 问题分析 兔子数的规律,如下表所示: ...

  7. 兔子繁衍问题—c语言

    问题: 一对兔子,从出生后第三个月起每个月都生一对兔子.小兔子长到第三个月后每个月又生一对兔子.假如兔子都不死,请问第一个月出生的一对兔子,至少需要繁衍到第几个月时兔子总数才能到达n对?输入一个不超过 ...

  8. C语言实现,古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可)

    题目:古典问题(兔子生崽):有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子, 假如兔子都不死,问每个月的兔子总数为多少?(输出前40个月即可) 程序分析:兔子 ...

  9. C语言经典例题:有一对兔子,从出生后第 3 个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,两年内每个月的兔子总数为多少?

    咱们自己可以列前7项的结果出来统计规律 前八项的结果分别为:1对,1对,2对,5对,8对,13对,21对:看到这里就差不多能看出来规律了,从第三项开始,当前项等于前两项之和----由此我们来看代码怎么 ...

最新文章

  1. java怎么建立内部类_语法 - 是否可以在Java静态中创建匿名内部类?
  2. ssl握手过程和ca证书验证
  3. 对话AI大师Bengio:AI不应变成军备竞赛
  4. 如何使用应用程序库缓存
  5. 【学习笔记】关于最大公约数(gcd)的定理
  6. java setlt;intgt;_java使用Nagao算法实现新词发现、热门词的挖掘
  7. Python中利用LSTM模型进行时间序列预测分析
  8. django-模板的母版与子版
  9. python comprehension_Python从题目中学习:List comprehension
  10. 在苹果 Mac上接收和暂停或停止接收通知操作方法?
  11. 测试人员常用的20个Linux命令(附Linux视频教程)
  12. country-converter官方文档----机翻人工确认
  13. 太极团队首发:iOS 8.3完美越狱工具发布
  14. win10蓝屏提示重新启动_Win10系统开机提示Winload.efi丢失的蓝屏问题怎么解决?
  15. unity 导入 obj 模型 和 json 数据
  16. 火爆互动小游戏源码接入方法,需要的产品人请查收
  17. 卸载360天擎企业版
  18. 如何用python画出一般函数图_python如何画函数图像
  19. Specular/Glossiness传统材质简单转换金属度流程材质metallic/roughness小记
  20. Python OpenCV 彩色图像与灰度图像的转换

热门文章

  1. 靶机渗透练习56-digitalworld.local:TORMENT
  2. [转载]***编年史 之 上帝派来的***
  3. 循环中频繁查询数据库优化
  4. 碰撞检测 Unity实验代码
  5. 转:德鲁克用自己7段人生经历,讲述如何突破自我
  6. V4L2文档翻译(十二)
  7. Python学习之requests接口测试
  8. 心态-《自卑与超越》书中的精髓:我们为什么会感到自卑,以及如何做才能克服自卑情绪。
  9. 羽毛球双打区域_测试双打简介
  10. 学生成绩管理系统软件测试毕业设计,软件测试《学生成绩管理系统》测试资料报告材料.doc...