{
  "appVersion": "0.12.0",
  "savedAt": "2026-09-30T05:28:09.943Z",
  "workspace": {
    "blocks": {
      "languageVersion": 0,
      "blocks": [
        {
          "type": "controls_whileUntil",
          "id": "`p[c.lduvU*gYjMFv{|a",
          "x": 132,
          "y": 300,
          "fields": {
            "MODE": "WHILE"
          },
          "inputs": {
            "BOOL": {
              "block": {
                "type": "logic_boolean",
                "id": "m0NDPJiHK4#nP7BiE;+.",
                "fields": {
                  "BOOL": "TRUE"
                }
              }
            },
            "DO": {
              "block": {
                "type": "apm_mini_rpm",
                "id": "g9fGhe`1=Idc*?AqDHM{",
                "icons": {
                  "comment": {
                    "text": "逆时针弧线行驶。从侧面撞击对手\n速度差根据实际情况调整",
                    "pinned": true,
                    "height": 97.17132568359375,
                    "width": 198.2452392578125,
                    "x": 137.8453453257518,
                    "y": 194.7852212622222
                  }
                },
                "inputs": {
                  "LEFT": {
                    "shadow": {
                      "type": "math_number",
                      "id": "DVIeZLfVPJP6TkQK#|em",
                      "fields": {
                        "NUM": 30
                      }
                    }
                  },
                  "RIGHT": {
                    "shadow": {
                      "type": "math_number",
                      "id": "6^IFc=|=WbxgC5AJKKv,",
                      "fields": {
                        "NUM": 100
                      }
                    }
                  }
                },
                "next": {
                  "block": {
                    "type": "controls_if",
                    "id": "6#%)R/Aa+mx.GFm;pVx8",
                    "inputs": {
                      "IF0": {
                        "block": {
                          "type": "logic_operation",
                          "id": "5{%.upiQV|+/y9.,JX5=",
                          "fields": {
                            "OP": "OR"
                          },
                          "inputs": {
                            "A": {
                              "block": {
                                "type": "logic_compare",
                                "id": "x%5WdS|7,$W0lfL-VpA}",
                                "fields": {
                                  "OP": "LT"
                                },
                                "inputs": {
                                  "A": {
                                    "block": {
                                      "type": "apm_mini_sensor",
                                      "id": "FWbu[%y%^AyzoECnr${/",
                                      "fields": {
                                        "CH": "1"
                                      }
                                    }
                                  },
                                  "B": {
                                    "block": {
                                      "type": "math_number",
                                      "id": "@gF_dCUH+r]l9}x]AzgH",
                                      "fields": {
                                        "NUM": 50
                                      }
                                    }
                                  }
                                }
                              }
                            },
                            "B": {
                              "block": {
                                "type": "logic_operation",
                                "id": "mBtTEjT]hb$+GJ6T[|fu",
                                "fields": {
                                  "OP": "OR"
                                },
                                "inputs": {
                                  "A": {
                                    "block": {
                                      "type": "logic_compare",
                                      "id": "YJVx[$DT}MQ,oz`#@r~M",
                                      "fields": {
                                        "OP": "LT"
                                      },
                                      "inputs": {
                                        "A": {
                                          "block": {
                                            "type": "apm_mini_sensor",
                                            "id": "%nek#wS.QScqw7i-qiwb",
                                            "fields": {
                                              "CH": "3"
                                            }
                                          }
                                        },
                                        "B": {
                                          "block": {
                                            "type": "math_number",
                                            "id": "i9=aVNyXX?U9u=uE??wv",
                                            "fields": {
                                              "NUM": 50
                                            }
                                          }
                                        }
                                      }
                                    }
                                  },
                                  "B": {
                                    "block": {
                                      "type": "logic_compare",
                                      "id": "`GK9LGxeZChpUCy5ymqW",
                                      "fields": {
                                        "OP": "LT"
                                      },
                                      "inputs": {
                                        "A": {
                                          "block": {
                                            "type": "apm_mini_sensor",
                                            "id": "43q7a-0b|@iG:?1Jfz|x",
                                            "fields": {
                                              "CH": "5"
                                            }
                                          }
                                        },
                                        "B": {
                                          "block": {
                                            "type": "math_number",
                                            "id": "NU,=QQZW%QpT})0Yu*N2",
                                            "fields": {
                                              "NUM": 50
                                            }
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      },
                      "DO0": {
                        "block": {
                          "type": "apm_mini_rpm",
                          "id": "H![ba5lSm^V#H32uRR+b",
                          "inputs": {
                            "LEFT": {
                              "shadow": {
                                "type": "math_number",
                                "id": "3S~+jo[Xk-*s.8EDP[V=",
                                "fields": {
                                  "NUM": -100
                                }
                              }
                            },
                            "RIGHT": {
                              "shadow": {
                                "type": "math_number",
                                "id": "TaghZkZsr_KD[sS5|F;C",
                                "fields": {
                                  "NUM": -100
                                }
                              }
                            }
                          },
                          "next": {
                            "block": {
                              "type": "apm_mini_wait",
                              "id": "6Z0xB#Gi#{)pK#f36o:e",
                              "inputs": {
                                "MS": {
                                  "shadow": {
                                    "type": "math_number",
                                    "id": "0=qmjly||nDP#k||RKvG",
                                    "fields": {
                                      "NUM": 1000
                                    }
                                  }
                                }
                              },
                              "next": {
                                "block": {
                                  "type": "apm_mini_rpm",
                                  "id": ")[.~u8RDA~O{[nLS{^CZ",
                                  "icons": {
                                    "comment": {
                                      "text": "原地转圈搜索对手",
                                      "pinned": true,
                                      "height": 80,
                                      "width": 160,
                                      "x": 534.7392052968369,
                                      "y": 588.063941376
                                    }
                                  },
                                  "inputs": {
                                    "LEFT": {
                                      "shadow": {
                                        "type": "math_number",
                                        "id": "8R7*:tfrm%qTXAj^+QUa",
                                        "fields": {
                                          "NUM": 100
                                        }
                                      }
                                    },
                                    "RIGHT": {
                                      "shadow": {
                                        "type": "math_number",
                                        "id": "e5Q8=wl7Iv/biEz(UpOA",
                                        "fields": {
                                          "NUM": -100
                                        }
                                      }
                                    }
                                  },
                                  "next": {
                                    "block": {
                                      "type": "apm_mini_wait",
                                      "id": "oYAr2Yz0C)M80T,e#Dsw",
                                      "inputs": {
                                        "MS": {
                                          "shadow": {
                                            "type": "math_number",
                                            "id": "e^Y63MauFz+^spZ!vYAH",
                                            "fields": {
                                              "NUM": 2000
                                            }
                                          }
                                        }
                                      },
                                      "next": {
                                        "block": {
                                          "type": "apm_mini_stop",
                                          "id": "c1w3n)u=5bP~WXZyLjpS",
                                          "fields": {
                                            "MOTOR": "0"
                                          }
                                        }
                                      }
                                    }
                                  }
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      ]
    }
  },
  "python": "import drive\nimport light\nimport time\n\n\nwhile True:\n  drive.drive_rpm(30, 100)\n  if light.get_optical_sensor(1) < 50 or light.get_optical_sensor(3) < 50 or light.get_optical_sensor(5) < 50:\n    drive.drive_rpm(-100, -100)\n    time.sleep_ms(int(1000))\n    drive.drive_rpm(100, -100)\n    time.sleep_ms(int(2000))\n    drive.stop_rpm(0)\n",
  "programmingMode": "blocks"
}