Sure, I can help create a test case generator for the "Shy Polygons" problem. The generator will produce random, valid input datasets that follow the specified format. Here's the Python code for the test case generator:

```python
import random

def generate_polygon():
    n = random.randint(3, 14)
    vertices = [(random.randint(0, 499), random.randint(0, 499)) for _ in range(n)]
    return n, vertices

def tcgen():
    datasets = []
    while True:
        L = round(random.uniform(0.1, 50.0), 7)
        n1, polygon1 = generate_polygon()
        n2, polygon2 = generate_polygon()
        
        dataset = f"{L}\n{n1}\n" + "\n".join(f"{x} {y}" for x, y in polygon1) + f"\n{n2}\n" + "\n".join(f"{x} {y}" for x, y in polygon2)
        datasets.append(dataset)
        
        if random.random() > 0.7:  # Randomly decide to stop adding more datasets
            break
    
    datasets.append("0")
    return "\n".join(datasets)

# Example usage:
print(tcgen())
```

### Explanation:
1. **generate_polygon()**: This function generates a random polygon. It chooses a random number of vertices between 3 and 14. Each vertex has x and y coordinates between 0 and 499.

2. **tcgen()**: This function generates multiple datasets until a random stopping condition is met. Each dataset includes:
   - A random floating-point number \(L\) between 0.1 and 50.0 with precision up to seven decimal places.
   - Two polygons, each generated by `generate_polygon()`.

3. **Datasets**: All generated datasets are combined into a single string with "\n" separating the values, and a "0" at the end to indicate the termination of input.

This generator ensures that all constraints are met and provides a variety of random test cases. You can run it to see the generated test cases. Adjust the random stopping condition or the ranges as needed for your specific testing requirements.