public void step(int move) {
        Point toMoveTo = null;
        if (move == KeyEvent.VK_RIGHT) 
            toMoveTo = new Point(playerPos.x + 1, playerPos.y);
        else if (move == KeyEvent.VK_LEFT) 
            toMoveTo = new Point(playerPos.x - 1, playerPos.y);
        else if (move == KeyEvent.VK_DOWN) 
            toMoveTo = new Point(playerPos.x, playerPos.y + 1);
        else if (move == KeyEvent.VK_UP) 
            toMoveTo = new Point(playerPos.x, playerPos.y - 1);
        
        if (toMoveTo == null || board[toMoveTo.x][toMoveTo.y] == WALL) return;
        if (new Random().nextInt(100) < 5) spawnRandomCoin();
        if (board[toMoveTo.x][toMoveTo.y] == COIN) {
            points += 100;
            spawnRandomCoin();
        }
        movePlayer(toMoveTo);
    }