Sure, here is a test case generator for the "Lupin III" problem:

```python
import random

def tcgen():
    # Number of warehouses (1 to 15)
    n = random.randint(1, 15)
    
    warehouses = []
    for _ in range(n):
        # Warehouse number (1 to 100)
        s = random.randint(1, 100)
        
        # Distance from the castle (1 to 10,000 meters)
        d = random.randint(1, 10000)
        
        # Number of wooden boxes (1 to 10,000)
        v = random.randint(1, 10000)
        
        warehouses.append((s, d, v))
    
    return n, warehouses

def print_test_case(n, warehouses):
    print(n)
    for s, d, v in warehouses:
        print(f"{s} {d} {v}")

# Example usage
if __name__ == "__main__":
    n, warehouses = tcgen()
    print_test_case(n, warehouses)
```

### Explanation

1. **Number of Warehouses (`n`)**:
   - The number of warehouses is randomly chosen between 1 and 15, inclusive.

2. **Warehouses**:
   - For each warehouse, generate:
     - `s`: a warehouse number between 1 and 100.
     - `d`: a distance from the castle between 1 and 10,000 meters.
     - `v`: the number of wooden boxes stored in the warehouse between 1 and 10,000.

3. **Printing the Test Case**:
   - The generated test case is printed in the specified format.

Example output of the test case generator might look like:
```
4
12 3456 789
3 4567 123
1 2345 678
99 9876 543
```

You can run the script multiple times to generate different sets of test cases for the problem.