### Circle_Square

squares and circles

```Canvas.setpenopacity(1);

const turtle = new Turtle();
turtle.penup();

const gridSize = 3; // min=1 max=10 step=1, Number of rows and columns
const cellSize = 50; // min=10 max=200 step=10, Size of each cell in the grid
const circleSteps = 10; // min=1 max=20 step=1, Number of concentric steps for circles
const squareSteps = 18; // min=1 max=20 step=1, Number of concentric steps for squares
const shapeType = 2; // min=0 max=2 step=1, (Circles, Squares, Both, ), Type of shapes to draw

const circleStepSize = cellSize / (2 * circleSteps); // Size of each step for circles
const squareStepSize = cellSize / (2 * squareSteps); // Size of each step for squares

// Function to draw concentric circles
function drawConcentricCircles(x, y, steps, stepSize) {
for (let i = 0; i < steps; i++) {
turtle.penup();
turtle.goto(x, y - stepSize * i);
turtle.pendown();
turtle.circle(stepSize * i);
}
}

// Function to draw concentric squares
function drawConcentricSquares(x, y, steps, stepSize) {
for (let i = 0; i < steps; i++) {
turtle.penup();
turtle.goto(x - stepSize * i, y - stepSize * i);
turtle.pendown();
for (let j = 0; j < 4; j++) {
turtle.forward(2 * stepSize * i);
turtle.right(90);
}
}
}

// Function to draw concentric shapes based on selected type
function drawConcentricShapes(x, y, circleSteps, circleStepSize, squareSteps, squareStepSize, shapeType) {
if (shapeType === 0 || shapeType === 2) {
drawConcentricCircles(x, y, circleSteps, circleStepSize);
}
if (shapeType === 1 || shapeType === 2) {
drawConcentricSquares(x, y, squareSteps, squareStepSize);
}
if (shapeType === 3) {
drawConcentricCurves(x, y, steps, stepSize);
}
}

// Draw the grid
for (let row = 0; row < gridSize; row++) {
for (let col = 0; col < gridSize; col++) {
const x = -gridSize * cellSize / 2 + col * cellSize + cellSize / 2;
const y = gridSize * cellSize / 2 - row * cellSize - cellSize / 2;
drawConcentricShapes(x, y, circleSteps, circleStepSize, squareSteps, squareStepSize, shapeType);
}
}
```