µ±Ç°Î»Öà : 145zÓÎÏ·Õ¾¡¡|¡¡ÈÈѪ´«Ææ¡¡|¡¡¼¼Êõ½Ì³Ì¡¡|¡¡

ÔÚ¼ÜÉè´«ÆæÊ±£¬WHILEÑ­»·µÄ¾ßÌåÓ¦Óó¡¾°ÓÐÄÄЩ£¿

Èȶȣº
ÔÚ¼ÜÉè´«ÆæÊ±£¬WHILE Ñ­»·ÊÇÒ»Öַdz£ÊµÓõĿØÖƽṹ£¬Ëü»áÔÚÿ´ÎÖ´ÐÐÑ­»·Ìå֮ǰ¼ì²éÌõ¼þ±í´ïʽ£¬Ö»ÒªÌõ¼þÎªÕæ¾Í»á³ÖÐøÖ´ÐÐÑ­»·Ì壬ֱµ½Ìõ¼þΪ¼Ù²Å»áÌø³öÑ­»·¡£ÒÔÏÂÊÇ WHILE Ñ­»·ÔÚ¼ÜÉè´«ÆæÖеÄһЩ¾ßÌåÓ¦Óó¡¾°£º

### 1. ×Ô¶¯²¹ÑªÓë²¹À¶
ÔÚ´«ÆæÓÎÏ·ÖУ¬½ÇÉ«ÔÚÕ½¶·¹ý³ÌÖÐѪÁ¿ºÍħ·¨Öµ»á²»¶ÏÏûºÄ£¬Ê¹Óà WHILE Ñ­»·¿ÉÒÔʵÏÖ×Ô¶¯²¹ÑªºÍ²¹À¶µÄ¹¦ÄÜ£¬È·±£½ÇÉ«ÔÚÕ½¶·Öб£³ÖÁ¼ºÃµÄ״̬¡£
```plaintext
# ³õʼ»¯±äÁ¿
HP = GetMyHP() # »ñÈ¡µ±Ç°ÑªÁ¿
MAX_HP = GetMaxHP() # »ñÈ¡×î´óѪÁ¿
MP = GetMyMP() # »ñÈ¡µ±Ç°Ä§·¨Öµ
MAX_MP = GetMaxMP() # »ñÈ¡×î´óħ·¨Öµ
HP_THRESHOLD = MAX_HP * 0.3 # ѪÁ¿ãÐÖµ£¬µ±ÑªÁ¿µÍÓÚ 30% ʱ²¹Ñª
MP_THRESHOLD = MAX_MP * 0.2 # ħ·¨ÖµãÐÖµ£¬µ±Ä§·¨ÖµµÍÓÚ 20% ʱ²¹À¶

# WHILE Ñ­»·ÊµÏÖ×Ô¶¯²¹Ñª²¹À¶
WHILE TRUE
HP = GetMyHP()
MP = GetMyMP()

# ²¹Ñª²Ù×÷
IF HP < HP_THRESHOLD
UseItem ²¹ÑªÒ©
Delay 1000 # ÑÓ³Ù 1 Ã룬±ÜÃâÆµ·±Ê¹ÓÃÒ©Æ·
ENDIF

# ²¹À¶²Ù×÷
IF MP < MP_THRESHOLD
UseItem ²¹À¶Ò©
Delay 1000
ENDIF

Delay 500 # ÿ¸ô 0.5 Ãë¼ì²éÒ»´Î״̬
ENDWHILE
```
ÔÚÕâ¸ö½Å±¾ÖУ¬Ê¹Óà `WHILE TRUE` ´´½¨ÁËÒ»¸öÎÞÏÞÑ­»·£¬ÔÚÿ´ÎÑ­»·Öмì²é½ÇÉ«µÄѪÁ¿ºÍħ·¨Öµ¡£Èç¹ûѪÁ¿µÍÓÚÉ趨µÄãÐÖµ£¬¾ÍʹÓò¹ÑªÒ©£»Èç¹ûħ·¨ÖµµÍÓÚãÐÖµ£¬¾ÍʹÓò¹À¶Ò©¡£Í¨¹ýÉèÖÃÊʵ±µÄÑÓ³Ùʱ¼ä£¬±ÜÃâÁËÆµ·±Ê¹ÓÃÒ©Æ·µ¼ÖµÄÒì³£¡£

### 2. ³ÖÐø´ò¹Ö
ÔÚ´«ÆæÖУ¬Íæ¼Òͨ³£ÐèÒª²»¶ÏµØ¹¥»÷¹ÖÎïÀ´»ñÈ¡¾­ÑéºÍ×°±¸¡£Ê¹Óà WHILE Ñ­»·¿ÉÒÔÈýÇÉ«³ÖÐø¹¥»÷¸½½üµÄ¹ÖÎֱµ½Âú×ãÌØ¶¨Ìõ¼þ£¨Èç±³°üÒÑÂú¡¢½ÇɫѪÁ¿¹ýµÍµÈ£©²ÅÍ£Ö¹¡£
```plaintext
# ³õʼ»¯±äÁ¿
BAG_SPACE = GetBagSpace() # »ñÈ¡±³°üÊ£Óà¿Õ¼ä
MIN_BAG_SPACE = 5 # ±³°ü×îСʣÓà¿Õ¼ä£¬µ±Ð¡ÓÚÕâ¸öֵʱֹͣ´ò¹Ö
HP = GetMyHP()
MIN_HP = GetMaxHP() * 0.2 # ѪÁ¿×îСֵ£¬µ±µÍÓÚÕâ¸öֵʱֹͣ´ò¹Ö

# WHILE Ñ­»·³ÖÐø´ò¹Ö
WHILE BAG_SPACE > MIN_BAG_SPACE AND HP > MIN_HP
MONSTER_ID = FindNearestMonster() # ²éÕÒ×î½üµÄ¹ÖÎï
IF MONSTER_ID > 0
Attack MONSTER_ID # ¹¥»÷¹ÖÎï
Delay 1500 # ÑÓ³Ù 1.5 Ã룬µÈ´ý¹¥»÷½á¹û
ENDIF

BAG_SPACE = GetBagSpace()
HP = GetMyHP()
ENDWHILE
```
ÔÚÕâ¸ö½Å±¾ÖУ¬Ö»Òª±³°üÓÐ×ã¹»µÄ¿Õ¼äÇÒ½ÇɫѪÁ¿³ä×㣬¾Í»á²»¶Ï²éÕÒ²¢¹¥»÷×î½üµÄ¹ÖÎÿ´Î¹¥»÷ºó»áÑÓ³ÙÒ»¶Îʱ¼äµÈ´ý¹¥»÷½á¹û£¬È»ºó¸üб³°ü¿Õ¼äºÍѪÁ¿ÐÅÏ¢¡£µ±±³°ü¿Õ¼ä²»×ã»òѪÁ¿¹ýµÍʱ£¬Ñ­»·½áÊø£¬Í£Ö¹´ò¹Ö¡£

### 3. ÈÎÎñÑ­»·
ÔÚ´«ÆæÓÎÏ·ÖУ¬ÓÐÐí¶àÈÎÎñÐèÒªÍæ¼ÒÖØ¸´Íê³É£¬Èç²É¼¯×ÊÔ´¡¢ÔËËÍÎïÆ·µÈ¡£Ê¹Óà WHILE Ñ­»·¿ÉÒÔʵÏÖÈÎÎñµÄ×Ô¶¯Ñ­»·Ö´ÐУ¬Ö±µ½ÈÎÎñÍê³É»ò´ïµ½Ò»¶¨µÄ´ÎÊý¡£
```plaintext
# ³õʼ»¯±äÁ¿
TASK_COUNT = 0 # ÈÎÎñÍê³É´ÎÊý
MAX_TASK_COUNT = 10 # ×î´óÈÎÎñÍê³É´ÎÊý

# WHILE Ñ­»·Ö´ÐÐÈÎÎñ
WHILE TASK_COUNT < MAX_TASK_COUNT
MoveTo ²É¼¯µØµã # ÒÆ¶¯µ½²É¼¯µØµã
UseSkill ²É¼¯¼¼ÄÜ # ʹÓòɼ¯¼¼ÄÜ
Delay 3000 # ÑÓ³Ù 3 Ã룬µÈ´ý²É¼¯½á¹û

TASK_COUNT = TASK_COUNT + 1 # ÈÎÎñÍê³É´ÎÊý¼Ó 1
ENDWHILE
```
ÔÚÕâ¸ö½Å±¾ÖУ¬½ÇÉ«»á²»¶ÏÒÆ¶¯µ½²É¼¯µØµã²¢Ê¹Óòɼ¯¼¼ÄÜ£¬Ã¿´Î²É¼¯ºóÈÎÎñÍê³É´ÎÊý¼Ó 1¡£µ±ÈÎÎñÍê³É´ÎÊý´ïµ½×î´óÉ趨ֵʱ£¬Ñ­»·½áÊø£¬ÈÎÎñÍ£Ö¹Ö´ÐС£

### 4. µÈ´ýÌØ¶¨Ìõ¼þ
ÔÚijЩÇé¿öÏ£¬ÐèÒªµÈ´ýÓÎÏ·ÖеÄÌØ¶¨Ìõ¼þÂú×ãºó²ÅÄܼÌÐøÖ´ÐкóÐø²Ù×÷£¬ÀýÈçµÈ´ýij¸ö NPC ³öÏÖ¡¢µÈ´ýÌØ¶¨Ê¼þ´¥·¢µÈ¡£Ê¹Óà WHILE Ñ­»·¿ÉÒÔʵÏÖÕâÖֵȴý»úÖÆ¡£
```plaintext
# ³õʼ»¯±äÁ¿
NPC_EXIST = CheckNPCExist ÌØ¶¨ NPC # ¼ì²éÌØ¶¨ NPC ÊÇ·ñ´æÔÚ

# WHILE Ñ­»·µÈ´ý NPC ³öÏÖ
WHILE NPC_EXIST == 0
Delay 2000 # ÿ¸ô 2 Ãë¼ì²éÒ»´Î
NPC_EXIST = CheckNPCExist ÌØ¶¨ NPC
ENDWHILE

# NPC ³öÏÖºóÖ´ÐкóÐø²Ù×÷
TalkToNPC ÌØ¶¨ NPC
```
ÔÚÕâ¸ö½Å±¾ÖУ¬Ê¹Óà `WHILE` Ñ­»·²»¶Ï¼ì²éÌØ¶¨ NPC ÊÇ·ñ´æÔÚ¡£Èç¹û NPC ²»´æÔÚ£¬¾Íÿ¸ôÒ»¶Îʱ¼ä¼ì²éÒ»´Î£¬Ö±µ½ NPC ³öÏÖΪֹ¡£µ± NPC ³öÏÖºó£¬Ìø³öÑ­»·²¢Óë NPC ½øÐжԻ°¡£