import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
public class c_river extends Applet implements Runnable{
int pm[] = { 1, 1, 1};
int pf[] = { 1, 1, 1};
int rf = 1;
int rs[] = {0,0};
int rix[] = {260,340,460,140};
int riy[] = {0,0,200,200};
int px,py;
int c1,c2;
int sn,pn,sx;
Image pmi[] = new Image[3];
Image pfi[] = new Image[3];
Image raft,arr,arl;
Button rep;
Thread th = null;
Image os;
Graphics og;
public void init(){
setBackground(Color.white);
os = createImage(600,200);
og = os.getGraphics();
add(rep = new Button(" replay "));
for(int k = 0;k < 3;k ++){
pmi[k] = getImage(getDocumentBase(),"Picture/m"+(k+1)+".gif");
pfi[k] = getImage(getDocumentBase(),"Picture/f"+(k+1)+".gif");
}
raft = getImage(getDocumentBase(),"Picture/raft.gif");
arr = getImage(getDocumentBase(),"Picture/ar5.gif");
arl = getImage(getDocumentBase(),"Picture/ar6.gif");
addMouseListener(
new MouseAdapter(){
public void mousePressed(MouseEvent e){
px = e.getX();
py = e.getY();
c1 = 0; c2 = 0;
if((px > 238) && (px < 280) && (py > 157) && (py < 200)){
if((rs[0] != 0) || (rs[1] != 0)){
if((pm[0] != 1) && (pm[1] != 1) && (pm[2] != 1)){
c1 = 1;
}
for(int i = 0;i < 3;i ++){
if((pf[i] == 1) && (pm[i] != 1)){
c2 = 1;
}
}
if((c1 == 1) || (c2 == 0)){
rf = -1;
repaint();
}
}
}
if((px > 320) && (px < 362) && (py > 157) && (py < 200)){
if((rs[0] != 0) || (rs[1] != 0)){
if((pm[0] != -1) && (pm[1] != -1) && (pm[2] != -1)){
c1 = 1;
}
for(int i = 0;i < 3;i ++){
if((pf[i] == -1) && (pm[i] != -1)){
c2 = 1;
}
}
if((c1 == 1) || (c2 == 0)){
rf = 1;
repaint();
}
}
}
if((px > 40) && (px < 160) && (py > 20) && (py < 100)){
sn = (160 - px) / 40;
if((pf[sn] == -1) && (rf == -1)){
if(rs[0] == 0){
pf[sn] = 10;
rs[0] = -1 * (sn + 1);
repaint();
}else if(rs[1] == 0){
pf[sn] = 11;
rs[1] = -1 * (sn + 1);
repaint();
}
}
}
if((px > 440) && (px < 560) && (py > 20) && (py < 100)){
sn = (px - 440) / 40;
if((pf[sn] == 1) && (rf == 1)){
if(rs[0] == 0){
pf[sn] = 10;
rs[0] = -1 * (sn + 1);
repaint();
}else if(rs[1] == 0){
pf[sn] = 11;
rs[1] = -1 * (sn + 1);
repaint();
}
}
}
if((px > 20) && (px < 140) && (py > 100) && (py < 180)){
sn = (140 - px) / 40;
if((pm[sn] == -1) && (rf == -1)){
if(rs[0] == 0){
pm[sn] = 10;
rs[0] = sn + 1;
repaint();
}else if(rs[1] == 0){
pm[sn] = 11;
rs[1] = sn + 1;
repaint();
}
}
}
if((px > 460) && (px < 580) && (py > 100) && (py < 180)){
sn = (px - 460) / 40;
if((pm[sn] == 1) && (rf == 1)){
if(rs[0] == 0){
pm[sn] = 10;
rs[0] = sn + 1;
repaint();
}else if(rs[1] == 0){
pm[sn] = 11;
rs[1] = sn + 1;
repaint();
}
}
}
if((px > 200) && (px < 280) && (py > 60) && (py < 140)){
if(rf == -1){
sn = (px - 200) / 40;
if(rs[sn] != 0){
if(rs[sn] < 0){
sx = -1;
pn = -1 * rs[sn] - 1;
pf[pn] = -1;
rs[sn] = 0;
repaint();
}else{
sx = 1;
pn = rs[sn] - 1;
pm[pn] = -1;
rs[sn] = 0;
repaint();
}
}
}
}
if((px > 320) && (px < 400) && (py > 60) && (py < 140)){
if(rf == 1){
sn = (px - 320) / 40;
if(rs[sn] != 0){
if(rs[sn] < 0){
sx = -1;
pn = -1 * rs[sn] - 1;
pf[pn] = 1;
rs[sn] = 0;
repaint();
}else{
sx = 1;
pn = rs[sn] - 1;
pm[pn] = 1;
rs[sn] = 0;
repaint();
}
}
}
}
}
}
);
rep.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
for(int i = 0;i < 3;i ++){
pm[i] = 1;pf[i] = 1;rf = 1;rs[0] = 0;rs[1] = 0;
}
repaint();
}
});
}
public void paint(Graphics g){
og.setColor(Color.white);
og.fillRect(0,0,600,200);
og.setColor(new Color(88,226,243));
og.fillPolygon(rix,riy,4);
og.drawImage(raft,240 + rf * 60,120,this);
og.drawImage(arr,238,157,this);
og.drawImage(arl,320,157,this);
for(int i = 0;i < 3;i ++){
if(pf[i] < 10){
og.drawImage(pfi[i],280 + pf[i] * (i * 40 + 160),20,this);
}else if((pf[i] == 10) || (pf[i] == 11)){
og.drawImage(pfi[i],260 + (pf[i] - 10) * 40 + rf * 60,60,this);
}
if(pm[i] < 10){
og.drawImage(pmi[i],280 + pm[i] * (i * 40 + 180),100,this);
}else if((pm[i] == 10) || (pm[i] == 11)){
og.drawImage(pmi[i],260 + (pm[i] - 10) * 40 + rf * 60,60,this);
}
}
g.drawImage(os,0,0,this);
}
public void start(){
if(th == null){
th = new Thread(this);
th.start();
}
}
public void stop(){
th = null;
}
public void run(){
while(th != null){
try{
Thread.sleep(100);
}
catch (InterruptedException e){
}
}
}
public void update( Graphics g ){
paint( g ) ;
}
}