Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

Source code: com/adorphuye/othello/player/HumanPlayer.java


1   package com.adorphuye.othello.player;
2   
3   import java.util.*;
4   import java.awt.*;
5   import java.awt.event.*;
6   import com.adorphuye.othello.gui.*;
7   import com.adorphuye.othello.gui.board.*;
8   
9   public class HumanPlayer extends Player implements BoardListener, MouseListener
10  {
11    private Vector hs = null;
12    
13    /**
14     * @param mod
15     * @param num  */  
16    public HumanPlayer(BoardDataModel mod,int num)
17    {
18      super(mod,num);
19    }
20    
21    /**
22     * @return  */  
23    public String toString()
24    {
25      return "Human "+getIndex();
26    }
27    
28    public void play()
29    {
30      hs = getModel().getPossibleMoves(getIndex());
31      if(hs.size()==0)
32      {
33        Thread d = new Thread()
34        {
35          public void run()
36          {
37            getModel().pass(HumanPlayer.this);
38          }
39        };
40        d.start();
41      }
42    }
43    
44    /**
45     * @param mouseEvent  */  
46    public void mouseExited(java.awt.event.MouseEvent mouseEvent)
47    {
48    }
49    
50    /**
51     * @param mouseEvent  */  
52    public void mouseReleased(java.awt.event.MouseEvent mouseEvent)
53    {
54    }
55    
56    /**
57     * @param mouseEvent  */  
58    public void mousePressed(java.awt.event.MouseEvent mouseEvent)
59    {
60    }
61    
62    /**
63     * @param mouseEvent  */  
64    public void mouseClicked(final java.awt.event.MouseEvent mouseEvent)
65    {
66      if(getModel().getCurrentSide()==this)
67      {
68        Thread d = new Thread(){public void run(){
69        Board b = (Board)mouseEvent.getSource();
70        Point loc = b.toBoardCoordinate(mouseEvent.getPoint());
71        for(int i=0;i<hs.size();i++)
72        {
73          Point l = (Point)hs.elementAt(i);
74          if(loc.equals(l))
75          {
76            Vector s = getModel().flips(loc,getIndex());
77  
78            getModel().setDataAt(loc,getSide());
79            
80            for(int w=0;w<s.size();w++)
81            {
82              Point pos = (Point)s.elementAt(w);
83              getModel().setDataAt(pos,getSide());
84            }
85            getModel().nextSide();
86            break;
87          }
88        }
89        }};d.start();
90      }    
91    }
92    
93    /**
94     * @param mouseEvent  */  
95    public void mouseEntered(java.awt.event.MouseEvent mouseEvent)
96    {
97    }  
98    
99    /**
100    * @param evt  */  
101   public void boardChanged(BoardEvent evt)
102   {
103   }
104   
105   public void reset()
106   {
107     getModel().nextSide();
108   }
109   
110 }