環境を維持するシミュレータを設計する必要があります。これは、任意のサイズの長方形のグリッドに配置されたパッチの集合で構成されています。各パッチには、0個以上の木片が含まれています。Javaを使用したシロアリコロニーシミュレータ
パッチは、世界中に存在し、簡単なルールに従って動作するモバイルエンティティである1つ以上のシロアリまたは捕食者によって占有されている可能性があります。
TERMITEは、現在装着されているパッチから木材チップをピックアップしたり、搭載している木材チップを落とすことができます。シロアリは、4つの可能な方向のうちの1つで、現在のパッチから近隣のパッチに無作為に移動することによって、グリッドの周りを移動します。新しいシロアリは卵から孵化することがあり、これは環境内のランダムなパッチで新しいシロアリの出現によってシミュレートされます。
PREDATORはシロアリと同様に動きますが、捕食者がシロアリが占めるパッチ に移動すると、捕食者はシロアリを食べます。
初期状態では、シロアリ、捕食者、木材チップは環境内にランダムに分布しています。シミュレーションはループで進行し、環境の新しい状態が各反復で取得されます。
私はJPanelを使ってアリーナをデザインしましたが、そのアリーナに木材、シロアリ、捕食者をランダムに配置することはできません。誰も私を助けることができますか?
アリーナのための私のコードは次のとおりです。
01 import java.awt.*;
02 import javax.swing.*;
03
04 public class Arena extends JPanel
05 {
06 private static final int Rows = 8;
07 private static final int Cols = 8;
08 public void paint(Graphics g)
09 {
10 Dimension d = this.getSize();
11 // don't draw both sets of squares, when you can draw one
12
// fill in the entire thing with one color
13
g.setColor(Color.WHITE);
14
// make the background
15
g.fillRect(0,0,d.width,d.height);
16
// draw only black
17
g.setColor(Color.BLACK);
18
// pick a square size based on the smallest dimension
19
int sqsize = ((d.width<d.height) ? d.width/Cols : d.height/Rows);
20
// loop for rows
21
for (int row=0; row<Rows; row++)
22
{
23 int y = row*sqsize; // y stays same for entire row, set here
24 int x = (row%2)*sqsize; // x starts at 0 or one square in
25 for (int i=0; i<Cols/2; i++)
26 {
27 // you will only be drawing half the squares per row
28 // draw square
29 g.fillRect(x,y,sqsize,sqsize);
30 // move two square sizes over
31 x += sqsize*2;
32 }
33 }
34
35 }
36
37
38
39 public void update(Graphics g) { paint(g); }
40
41
42
43 public static void main (String[] args)
44 {
45
46 JFrame frame = new JFrame("Arena");
47 frame.setSize(600,400);
48 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
49 frame.setContentPane(new Arena());
50 frame.setVisible(true);
51 }
52
53 }
ような何かを得るために
コードの各行の先頭に4つのスペースを追加してください。これにより、コードを読みやすくすることができます。 – yurib
アリーナ内に木材、シロアリまたは捕食者を無作為に配置しようとする試みもあります。何を試しましたか?あなたが与えられたコードを投稿して、誰かがあなたの任務を遂行することを期待しないでください。 –