import java.awt.*;
import java.applet.*;
import java.util.*;

public class Queens_Swap extends Applet {
/****************************************************************/
/*								*/
/* Class Queens_Swap: A demo program for swapping queen columns	*/
/*								*/
/*		Copyright (C) 1996 by Yasusi Kanada		*/
/*		Last Modified: 11/23/96				*/
/*								*/
/****************************************************************/

   final int N = 8;
   final int drawing_step = 20;
   final int drawing_size = N * drawing_step;
   final int queen_size = drawing_step * 4 / 5;

   protected int offset;

   protected int[] rows = {3, 6};
   protected int[] columns = {2, 4};

   public boolean action(Event e, Object arg) {
      if ("Swap".equals(arg)) {
         int temp = columns[0];
         columns[0] = columns[1];
         columns[1] = temp;
         repaint();
         return true;
      } else {
         return false;
      };
   }

   public void paint(Graphics g) {
      offset = 8;
      for (int i = 0; i <= N; i++) {
         int grid_coord = i * drawing_step;
         g.drawLine(offset, offset + grid_coord,
                    offset + drawing_size - 1, offset + grid_coord);
         g.drawLine(offset + grid_coord, offset,
                    offset + grid_coord, offset + drawing_size - 1);
      };
      offset = offset + drawing_step / 10;
      g.setColor(Color.magenta);
      for (int i = 0; i < columns.length; i++) {
         g.fillOval(offset + columns[i] * drawing_step,
                    offset + rows[i] * drawing_step,
                    queen_size, queen_size);
      };
   }

   public void init() {
      setLayout(new BorderLayout());
      add("South", new Button("Swap"));
   }

}
