Beispiel #1
0
  /**
   * Main Sudoku Paint. Paints everything for the sudoku board.
   *
   * @param m
   * @param g
   * @param w
   * @param oh
   */
  @Override
  public void paint(SudokuModel m, Graphics g, int w, int oh) {
    this.oh = oh;
    this.w = w;
    int h = oh - 100;
    this.h = h;
    g.setFont(new Font(SANS_SERIF, PLAIN, 50));

    m.checkConflict();

    for (int i = 0; i < 3; ++i)
      for (int j = 0; j < 3; ++j) paintSmallGrid(g, i * w / 3, j * h / 3, w / 3, h / 3);

    m.updateSelection();
    for (int i = 0; i < 9; ++i)
      for (int j = 0; j < 9; ++j) paintBox(g, i * w / 9, j * h / 9, m.get(j, i), w / 9, h / 9);
    paintGrid(g, w, h);

    if (m.gameOver()) {
      g.setColor(Color.BLACK);
      g.fillRect(w / 2 - 200, h / 2 - 100, 400, 200);
      g.setColor(Color.RED);
      drawStringBox(g, w / 2 - 200, h / 2 - 200, "GAME OVER", 400, 400);
    }
  }
Beispiel #2
0
 /**
  * @param model
  * @param ea
  * @param me
  */
 @Override
 public void handleMouseClick(SudokuModel model, int ea, MouseEvent me) {
   if (model.gameOver()) return;
   int row = mousePos(me, w, h)[0];
   int col = mousePos(me, w, h)[1];
   model.setSelected(row, col);
 }
Beispiel #3
0
 /**
  * @param model
  * @param ea
  * @param ke
  */
 @Override
 public void handleKeyPress(SudokuModel model, int ea, KeyEvent ke) {
   if (model.gameOver()) return;
   switch (ke.getKeyCode()) {
     case KeyEvent.VK_UP:
       model.move(-1, 0);
       break;
     case KeyEvent.VK_DOWN:
       model.move(1, 0);
       break;
     case KeyEvent.VK_LEFT:
       model.move(0, -1);
       break;
     case KeyEvent.VK_RIGHT:
       model.move(0, 1);
       break;
     case KeyEvent.VK_0:
       model.submit(0);
       break;
     case KeyEvent.VK_1:
       model.submit(1);
       break;
     case KeyEvent.VK_2:
       model.submit(2);
       break;
     case KeyEvent.VK_3:
       model.submit(3);
       break;
     case KeyEvent.VK_4:
       model.submit(4);
       break;
     case KeyEvent.VK_5:
       model.submit(5);
       break;
     case KeyEvent.VK_6:
       model.submit(6);
       break;
     case KeyEvent.VK_7:
       model.submit(7);
       break;
     case KeyEvent.VK_8:
       model.submit(8);
       break;
     case KeyEvent.VK_9:
       model.submit(9);
       break;
     case KeyEvent.VK_BACK_SPACE:
       model.submit(0);
       break;
   }
 }