/*Program Exclus, Stefan Kontur, August 29th 2000*/ //Competition for Limited Sources import java.applet.Applet; import java.awt.*; public class exclus extends Applet { Label pr1,pr2,pr3,pr4,pr5,pr6,pr7; TextField in1,in2,in3,in4,in5,in6,in7; Button drawbutton; int coop; float i,q,q2,k1,k2,k3,k4,k5,k6,k7,k8,r,d1,d2,qi,qi2,t,ti; public void init() { pr1 = new Label("Start value of population Q: "); in1 = new TextField("8",5); add(pr1);add(in1); pr2 = new Label("Start value of population Q2: "); in2 = new TextField("16",5); add(pr2);add(in2); pr3 = new Label("Growth rate of population Q: "); in3 = new TextField("9",5); add(pr3);add(in3); pr4 = new Label("Mortality rate of population Q: "); in4 = new TextField("5",5); add(pr4);add(in4); pr5 = new Label("Growth rate of population Q2: "); in5 = new TextField("5",5); add(pr5);add(in5); pr6 = new Label("Mortality rate of population Q2: "); in6 = new TextField("5",5); add(pr6);add(in6); pr7 = new Label("Allow cooperative interaction? (0/1): "); in7 = new TextField("0",5); add(pr7);add(in7); drawbutton = new Button("Draw"); add(drawbutton); } public boolean action (Event e, Object o) { q = (float)Integer.parseInt(in1.getText()); q2 = (float)Integer.parseInt(in2.getText()); k5 = 0.01f*(float)Integer.parseInt(in3.getText()); k3 = 0.01f*(float)Integer.parseInt(in4.getText()); k6 = 0.01f*(float)Integer.parseInt(in5.getText()); k4 = 0.01f*(float)Integer.parseInt(in6.getText()); coop = Integer.parseInt(in7.getText()); repaint(); return true; } public void paint (Graphics g) { i=5; k1=0.08f; k2=0.04f; k7=0.003f; k8=0.003f; t=0; ti=0; qi=q; qi2=q2; g.drawRect(5,115,250,180); g.drawRect(260,115,250,180); while (t<250) { if (coop==1) r=i/(1+k8*q*q+k2*q); else r=i/(1+k1*q+k2*q2); if (r<0) r=0; if (coop==1) d1=k7*r*q*q-k3*q; else d1=k5*r*q-k3*q; d2=k6*r*q2-k4*q2; q+=d1; q2+=d2; t+=1; g.setColor(Color.blue); g.drawLine((int)(5+ti),(int)(295-qi),(int)(5+t),(int)(295-q)); g.setColor(Color.red); g.drawLine((int)(5+ti),(int)(295-qi2),(int)(5+t),(int)(295-q2)); g.setColor(Color.orange); g.drawLine((int)(260+2*qi),(int)(295-2*qi2),(int)(260+2*q),(int)(295-2*q2)); ti=t; qi=q; qi2=q2; } } }