# GESP等级：一级 | GESP Python 二级考点
# ============================================
# ⭐ 创意挑战 —— 三选一！
# 没有标准答案，能跑就行！
# ============================================
# 选难度规则：
#   while 还不太熟 → ⭐ 随机漫步（把复合条件练扎实）
#   while 会了想玩好看的 → ⭐⭐ 螺旋放大（特别漂亮！）
#   弹球玩得爽想挑战 → ⭐⭐⭐ 双球弹跳（同时控制两个球）
#
# 做完一个可以挑战下一个！25分钟够玩两个。
# ============================================

import turtle
import random


# ============================================================
# ⭐ 挑战一：随机漫步 + 你自己的怪癖
# 醉酒乌龟乱走，碰到边界就停。
# 加一个"怪癖"让乌龟有性格——有些方向就是不往那走！
# ============================================================
print("===== ⭐ 挑战一：随机漫步 =====")
print("提示：运行完把下面的代码取消注释再运行")
print()

# TODO：取消注释下面的代码块（选中 → Ctrl+/ 切换注释）

# t = turtle.Turtle()
# t.shape("turtle")
# t.speed(5)
# t.pensize(2)
#
# while -200 < t.xcor() < 200 and -200 < t.ycor() < 200:
#     angle = random.randint(0, 360)
#     # 【选做】加怪癖：if 条件: continue
#     # 怪癖菜单（选一个或自创）：
#     #   不往右走 → if 0 <= angle <= 180: continue
#     #   不往下走 → if 180 <= angle <= 270: continue
#     #   只走偶数角度 → if angle % 2 != 0: continue
#     #   不往左上 → if 90 <= angle <= 180: continue
#     #   你的怪癖：________________
#
#     t.setheading(angle)
#     t.forward(20)
#     # 【选做】彩色渐变
#     # t.color(random.random(), random.random(), random.random())
#
# print("碰到边界了！漫步结束。")
# turtle.done()


# ============================================================
# ⭐⭐ 挑战二：螺旋放大
# 边长每次 +5，转61°，像手臂越伸越长。
# 直到边长超出屏幕（size > 300）就停。
# ============================================================
# print()
# print("===== ⭐⭐ 挑战二：螺旋放大 =====")
# print()
#
# t = turtle.Turtle()
# t.shape("turtle")
# t.speed(10)
# t.color("purple")
# t.pensize(2)
#
# size = 10              # ① 初始值：从 10 开始
# while size < 300:      # ② 条件：边长还没到 300
#     t.forward(size)    # 走 size 步（越来越大）
#     t.right(61)        # ③ 61° 会形成漂亮螺旋
#     size = size + 5    # ④ 更新：每次边长 +5
#
# print("螺旋太大，超出屏幕！结束。")
# print()
# print("🎨 魔法实验：试试不同角度——60°/62°/89°/91°/121°")
# print("   每个角度图案都不一样！你最喜欢哪个？")
# turtle.done()


# ============================================================
# ⭐⭐⭐ 挑战三：双球弹跳
# 两个不同颜色的球，不同速度，各自在屏幕里反弹！
# 按空格键退出。
# ============================================================
# print()
# print("===== ⭐⭐⭐ 挑战三：双球弹跳 =====")
# print()
#
# screen = turtle.Screen()
# screen.bgcolor("black")
# screen.setup(600, 500)
# screen.title("双球弹跳——按空格退出")
#
# # 球1：红色，快速
# ball1 = turtle.Turtle()
# ball1.shape("circle")
# ball1.color("red")
# ball1.penup()
# ball1.speed(0)
# ball1.goto(-50, 0)
#
# # 球2：蓝色，慢速
# ball2 = turtle.Turtle()
# ball2.shape("circle")
# ball2.color("cyan")
# ball2.penup()
# ball2.speed(0)
# ball2.goto(50, 0)
#
# W, H = screen.window_width() // 2, screen.window_height() // 2
# dx1, dy1 = 5, 3         # 球1 速度
# dx2, dy2 = -3, 4        # 球2 速度（反方向起跑）
#
# running = True
#
# def stop():
#     global running
#     running = False
#
# screen.onkey(stop, "space")
# screen.listen()
#
# while running:
#     # 球1 移动
#     ball1.setx(ball1.xcor() + dx1)
#     ball1.sety(ball1.ycor() + dy1)
#     if ball1.xcor() > W - 20 or ball1.xcor() < -W + 20:
#         dx1 = -dx1
#     if ball1.ycor() > H - 20 or ball1.ycor() < -H + 20:
#         dy1 = -dy1
#
#     # 球2 移动
#     ball2.setx(ball2.xcor() + dx2)
#     ball2.sety(ball2.ycor() + dy2)
#     if ball2.xcor() > W - 20 or ball2.xcor() < -W + 20:
#         dx2 = -dx2
#     if ball2.ycor() > H - 20 or ball2.ycor() < -H + 20:
#         dy2 = -dy2
#
# print("双球弹跳结束！")
# turtle.done()


# ============================================================
# 🎨 拓展魔改（做完基础挑战后自选）
# ============================================================
# 1. 加第三个球 ball3（复制 ball2 的代码改成 ball3）
# 2. 碰壁变色：ball1.color("white") 在反弹 if 里面
# 3. 螺旋里加颜色渐变：t.color(size/300, 0.5, 0.8)
# 4. 随机漫步边长也随机：t.forward(random.randint(5, 30))
# 5. 你的创意！
