പാഠം 4: നെസ്റ്റഡ് ലൂപ്പുകൾ ഉപയോഗിക്കുന്നു
മുൻ പാഠത്തിൽ, ഡിസ്ക് മൂവർ പ്ലേഗ്രൗണ്ട് ലെ മൂന്ന് നീല ഡിസ്കുകളും നീല ലക്ഷ്യത്തിലേക്ക് ഡ്രൈവ് ചെയ്യാനും, എടുക്കാനും, നീക്കാനും VR റോബോട്ടിനോട് നിർദ്ദേശിക്കുന്നതിനുള്ള ഒരു പ്രോജക്റ്റ് നിങ്ങൾ സൃഷ്ടിച്ചു. ഈ പാഠത്തിൽ, നെസ്റ്റഡ് ലൂപ്പുകൾ ഉപയോഗിച്ച് ഡിസ്ക് മൂവർ പ്ലേഗ്രൗണ്ട് ലെ ഓരോ നിറത്തിന്റെയും ഒരു ഡിസ്ക് അതിന്റെ അനുബന്ധ നിറമുള്ള ലക്ഷ്യത്തിലേക്ക് എടുത്ത് നീക്കുന്നതിനുള്ള ഒരു പ്രോജക്റ്റ് നിങ്ങൾ സൃഷ്ടിക്കും!

പഠന ഫലങ്ങൾ
- ലൂപ്പുകൾ എങ്ങനെ നെസ്റ്റ് ചെയ്യാമെന്ന് തിരിച്ചറിയുക.
- നെസ്റ്റഡ് ലൂപ്പുകളിലൂടെയുള്ള ഒരു പ്രോജക്റ്റിന്റെ ഒഴുക്ക് വിവരിക്കുക.
- ഒരു പ്രോജക്റ്റിൽ നെസ്റ്റഡ് ലൂപ്പുകൾ ഉപയോഗിക്കുന്നതിന്റെ കാരണം വിശദീകരിക്കുക.
നെസ്റ്റഡ് ലൂപ്പുകൾ എന്തൊക്കെയാണ്?
ഈ കോഴ്സിലെ മുൻ യൂണിറ്റുകളിലും പാഠങ്ങളിലും, പെരുമാറ്റങ്ങൾ ആവർത്തിക്കാൻ നിങ്ങൾ നിയന്ത്രണ വിഭാഗത്തിൽ നിന്നുള്ള ലൂപ്പുകൾ ഉപയോഗിച്ചു, ഉദാഹരണത്തിന് for loop, while loop, infinite whileloops. ഒരു ലൂപ്പ് മറ്റൊരു ലൂപ്പിനുള്ളിൽ സ്ഥാപിക്കുന്നതിനെ 'നെസ്റ്റിംഗ്' എന്ന് വിളിക്കുന്നു. പ്ലേഗ്രൗണ്ടിൽ ഒന്നിലധികം ഡിസ്കുകൾ നീക്കുന്നത് പോലെ, ഒരു VR റോബോട്ട് ഒരേ പെരുമാറ്റങ്ങൾ ഒന്നിലധികം തവണ ആവർത്തിക്കുന്ന പ്രോജക്റ്റുകളിൽ നെസ്റ്റഡ് ലൂപ്പുകൾ സഹായകരമാണ്. ഒരു പ്രോജക്റ്റ് കൂടുതൽ എളുപ്പത്തിൽ മനസ്സിലാക്കാൻ, അത് സംഘടിപ്പിക്കാനും സംഗ്രഹിക്കാനും നെസ്റ്റിംഗ് ലൂപ്പുകൾക്ക് കഴിയും. കോഡിന്റെ സന്ദർഭവും ഉദ്ദേശ്യവും നന്നായി മനസ്സിലാക്കുന്നതിനും, പിശകുകൾ തിരിച്ചറിയുന്നതിനും ഒരു പ്രോജക്റ്റ് ട്രബിൾഷൂട്ട് ചെയ്യുന്നതിനും ഇത് സഹായകമാകും.
ഉദാഹരണത്തിന്, മൂന്ന് നീല ഡിസ്കുകളും നീല ലക്ഷ്യത്തിലേക്ക് നീക്കാൻ, ഒരു ഡിസ്ക് ശേഖരിക്കുന്ന പ്രക്രിയ ഒന്നിലധികം തവണ ആവർത്തിക്കാൻന്ലൂപ്പ് ഉപയോഗിക്കാം. ഇവിടെ കാണിച്ചിരിക്കുന്ന പ്രോജക്റ്റ്, ആദ്യത്തെ നീല ഡിസ്ക് നീല ലക്ഷ്യത്തിലേക്ക് നീക്കുന്നതിനുള്ള പാഠം 3 പ്രോജക്റ്റിനെ ഫോർ ലൂപ്പിനുള്ളിൽ സ്ഥാപിക്കുന്നു, പാരാമീറ്റർ 3 ആയി സജ്ജീകരിച്ചിരിക്കുന്നു. മുൻ പ്രോജക്റ്റിന്റെ നാല് ഭാഗങ്ങൾ ഫോർ ലൂപ്പിനുള്ളിൽ എങ്ങനെയാണ് ഇൻഡന്റ് ചെയ്തിരിക്കുന്നതെന്ന് ശ്രദ്ധിക്കുക.
repeat_count range(3):
#1 ന് വേണ്ടി def main():
. ആദ്യത്തെ ഡിസ്ക്
ലേക്ക് ഡ്രൈവ് ചെയ്യുക, അതേസമയം down_eye.near_object():
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()
# 2 അല്ല. ഡിസ്ക് എടുക്കുക
മാഗ്നെറ്റ്.എനർജിസ്(ബൂസ്റ്റ്)
# 3. ലക്ഷ്യത്തിലേക്ക് ഡ്രൈവ് ചെയ്യുക
drivetrain.turn_to_heading(180, DEGREES)
അതേസമയം front_distance.get_distance(MM) > 200:
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()
# 4. ലക്ഷ്യത്തിൽ ഡിസ്ക് ഇടുക
magnet.energize(DROP)
drivetrain.drive_for(REVERSE, 100, MM)
drivetrain.turn_to_heading(0, DEGREES)
wait(5, MSEC)നിങ്ങൾ ലൂപ്പുകൾ 'നെസ്റ്റ്' ചെയ്യുമ്പോൾ, അകത്തെ ലൂപ്പ് എത്ര തവണ എക്സിക്യൂട്ട് ചെയ്യണമെന്ന് പുറം ലൂപ്പ് നിയന്ത്രിക്കുന്നു. ഈ പ്രോജക്റ്റിൽ,ഫോർലൂപ്പ് ആണ് പുറം ലൂപ്പ്, ഇത് ലൂപ്പിലെ പെരുമാറ്റങ്ങൾ മൂന്ന് തവണ ആവർത്തിക്കും.
പുറം ലൂപ്പിനുള്ളിൽ അടങ്ങിയിരിക്കുന്ന ലൂപ്പുകളാണ് ആന്തരിക ലൂപ്പുകൾ. ഈ ഉദാഹരണത്തിൽ,whileലൂപ്പുകൾ (ഡിസ്കിലേക്കും ലക്ഷ്യത്തിലേക്കും ഡ്രൈവ് ചെയ്യാൻ) ഓരോന്നും 'ഇന്നർ ലൂപ്പുകൾ' ആണ്, അവ പ്രോജക്റ്റ്ഫോർലൂപ്പിലൂടെ നീങ്ങുമ്പോഴെല്ലാം നടപ്പിലാക്കുന്നു.
നിങ്ങളുടെ അറിവിലേക്കായി
VEXcode VR പൈത്തൺ പ്രോജക്റ്റുകളിൽ ഇൻഡന്റേഷൻ പ്രധാനമാണ്. ലൂപ്പുകൾ നെസ്റ്റുചെയ്യുമ്പോൾ, നിങ്ങളുടെ പ്രോജക്റ്റ് ഉദ്ദേശിച്ച രീതിയിൽ പ്രവർത്തിക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കാൻ, വർക്ക്സ്പെയ്സിലെ ചാരനിറത്തിലുള്ള ഇൻഡിക്കേറ്റർ ലൈനുകൾ ഒരു ദൃശ്യ സഹായമായി ഉപയോഗിക്കാം. ഓരോ വരിയും ഒരു ലൂപ്പിന്റെ ആരംഭത്തെയും അവസാനത്തെയും സൂചിപ്പിക്കുന്നു.

ഒരു നെസ്റ്റഡ് ലൂപ്പ് പ്രോജക്റ്റിന്റെ ഫ്ലോ
ഈ ഉദാഹരണത്തിൽ, ഓരോ തവണയുംലൂപ്പിനുള്ളആവർത്തിക്കുമ്പോൾ, ഒരു നീല ഡിസ്ക് എടുത്ത് നീല ലക്ഷ്യത്തിലേക്ക് തിരികെ കൊണ്ടുവരുന്നു.
ആദ്യ ആവർത്തനത്തിനുശേഷം, ആദ്യത്തെ നീല ഡിസ്ക് നീല ലക്ഷ്യത്തിലേക്ക് തിരികെ കൊണ്ടുവരികയും രണ്ടാമത്തെ ഡിസ്ക് ശേഖരിക്കാൻ തയ്യാറായ നിലയിൽ VR റോബോട്ടിനെ മാറ്റുകയും ചെയ്യുന്നു.
രണ്ടാമത്തെ ആവർത്തനത്തിനുശേഷം, രണ്ടാമത്തെ നീല ഡിസ്ക് ശേഖരിക്കുകയും മൂന്നാമത്തെ ഡിസ്ക് ശേഖരിക്കാൻ തയ്യാറായ രീതിയിൽ VR റോബോട്ടിനെ തിരിക്കുകയും ചെയ്യുന്നു.
മൂന്നാമത്തെ ആവർത്തനത്തിനുശേഷം, മൂന്നാമത്തെ നീല ഡിസ്ക് ശേഖരിക്കപ്പെടുന്നു, വിആർ റോബോട്ട് ചലനം നിർത്തുന്നു. ഫോർ ലൂപ്പ് ഇപ്പോൾ അതിന്റെ ശ്രേണി പൂർത്തിയാക്കി, അതിനാൽ പ്രോജക്റ്റ് പൂർത്തിയായി.

ഈ പാഠത്തിന്റെ ബാക്കി ഭാഗം തുടരാൻ അടുത്തത് ബട്ടൺ തിരഞ്ഞെടുക്കുക.