പാഠം 4: നെസ്റ്റഡ് ലൂപ്പുകളുള്ള പ്രോജക്റ്റ് ഫ്ലോ
അടുത്ത രണ്ട് ഡിസ്കുകൾ ശേഖരിക്കുക.
-
ഇപ്പോൾ VR റോബോട്ട് ചുവന്ന ഡിസ്കുകളെ അഭിമുഖീകരിക്കുന്നതിനാൽ, ചുവന്ന ഡിസ്ക് എടുത്ത് നീക്കുന്നതിന്, നീല ഡിസ്ക് ശേഖരിക്കാൻ ഉപയോഗിച്ച അതേ പെരുമാറ്റങ്ങൾ VR റോബോട്ടിന് ആവർത്തിക്കേണ്ടതുണ്ട്. ഡിസ്ക് എടുക്കാൻ മുന്നോട്ട് ഓടിക്കുന്നതും, തിരിഞ്ഞു നോക്കുന്നതും, ഡിസ്കിൽ നിന്ന് ഇറങ്ങാൻ വേണ്ടി അതേ നിറമുള്ള ലക്ഷ്യത്തിലേക്ക് തിരികെ ഓടിക്കുന്നതുമായ പെരുമാറ്റങ്ങൾ.

-
ആദ്യത്തെ ചുവന്ന ഡിസ്ക് നീക്കിക്കഴിഞ്ഞാൽ, VR റോബോട്ട് പച്ച ലക്ഷ്യത്തിലേക്ക് ഡ്രൈവ് ചെയ്ത് ആദ്യത്തെ പച്ച ഡിസ്ക് നീക്കാൻ നീലയും ചുവപ്പും ഡിസ്ക് നീക്കാൻ ഉപയോഗിച്ച അതേ പ്രവർത്തനങ്ങൾ ചെയ്യേണ്ടതുണ്ട്.

- പെരുമാറ്റങ്ങൾ ഒന്നിലധികം തവണ ആവർത്തിക്കുന്നതിന്, ന് ലൂപ്പ് ഉപയോഗിക്കാം.

-
പ്രോജക്റ്റിന്റെ മുകളിൽ, ആദ്യ കമന്റിന് മുകളിലായി, ലൂപ്പിന് ചേർക്കുക, തുടർന്ന് ശ്രേണി ഫംഗ്ഷൻ പാരാമീറ്റർ '3' ആയി സജ്ജമാക്കുക. ലൂപ്പിനുള്ള പ്രധാന നിർവചനത്തിനുള്ളിൽ ഇൻഡന്റ് ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കുക.
repeat_count range(3)-ൽ def main(): : wait(5, MSEC) -
ഫോർലൂപ്പിലേക്ക് കോഡ് പകർത്താൻ, ഇൻഡന്റേഷന് ശ്രദ്ധാപൂർവ്വം ശ്രദ്ധ നൽകേണ്ടതുണ്ട്. ആദ്യം,waitകമാൻഡിന് മുമ്പ് സ്പേസ് ചേർക്കുക, അങ്ങനെ ലൂപ്പ് ഇതുപോലെ കാണപ്പെടും:
repeat_count range(3): ന്റെ def main(): wait(5, MSEC) - അടുത്തതായി,forലൂപ്പിൽ ഉൾപ്പെടുത്തേണ്ട കമാൻഡുകൾ തിരഞ്ഞെടുക്കുക, തുടർന്ന്waitകമാൻഡിന് മുകളിൽ അവ പകർത്തി ഒട്ടിക്കുക. പകർത്തി ഒട്ടിച്ചതിന് ശേഷം ഇൻഡന്റേഷൻ തെറ്റാണെന്ന് ശ്രദ്ധിക്കുക. forലൂപ്പിന്റെ ചാരനിറത്തിലുള്ള ഇൻഡിക്കേറ്റർ ലൈൻ തകർന്നിരിക്കുന്നു, കൂടാതെwaitകമാൻഡിൽ നിന്ന് വിച്ഛേദിക്കപ്പെട്ടിരിക്കുന്നു. നിങ്ങളുടെ പ്രോജക്റ്റ് ഉദ്ദേശിച്ച രീതിയിൽ നടക്കില്ല എന്നതിന്റെ ഒരു ദൃശ്യ സൂചനയാണിത്.

-
ലൂപ്പിനുള്ളിലെലെ കമാൻഡുകൾ തിരഞ്ഞെടുക്കുക, ലൂപ്പിനുള്ളിലെ കമാൻഡുകൾ ശരിയായി ഇൻഡന്റ് ചെയ്യാൻ 'Tab' ഉപയോഗിക്കുക. ശരിയായി ഇൻഡന്റ് ചെയ്യുമ്പോൾ, ചാരനിറത്തിലുള്ള ഇൻഡിക്കേറ്റർ ലൈൻ ഫോർലൂപ്പിനെ വെയിറ്റ്കമാൻഡുമായി ബന്ധിപ്പിച്ച് ബാഹ്യ ലൂപ്പിന്റെ ബൗണ്ടുകൾ കാണിക്കണം. പൂർത്തിയാകുമ്പോൾ, നിങ്ങളുടെ പ്രോജക്റ്റ് ഇതുപോലെയായിരിക്കണം:
range(3) ലെ repeat_count ന് def main(): : # 1. down_eye.near_object(): drivetrain.drive(FORWARD) wait(5, MSEC) drivetrain.stop() # 2 അല്ല, Down Eye Sensor ഉപയോഗിച്ച് ഡിസ്കിലേക്ക് ഡ്രൈവ് ചെയ്യുക. ഡിസ്ക് എടുക്കുക മാഗ്നെറ്റ്.എനർജിസ്(ബൂസ്റ്റ്) # 3. ഡിസ്റ്റൻസ് സെൻസർ ഡ്രൈവ്ട്രെയിൻ.turn_to_heading(180, DEGREES) ഉപയോഗിച്ച് ലക്ഷ്യത്തിലേക്ക് ഡ്രൈവ് ചെയ്യുക, അതേസമയം front_distance.get_distance(MM) > 200: ഡ്രൈവ്ട്രെയിൻ.drive(FORWARD) wait(5, MSEC) ഡ്രൈവ്ട്രെയിൻ. നിർത്തുക() # 4. ഗോൾ മാഗ്നെറ്റിൽ ഡിസ്ക് ഡ്രോപ്പ് ചെയ്യുക. ഊർജ്ജസ്വലമാക്കുക(ഡ്രോപ്പ് ചെയ്യുക) ഡ്രൈവ്ട്രെയിൻ.ഡ്രൈവ്_ഫോർ(റിവേഴ്സ്, 100, എംഎം) # 5. തിരിഞ്ഞ് അടുത്ത ലക്ഷ്യത്തിലേക്ക് ഡ്രൈവ് ചെയ്യുക drivetrain.turn_to_heading(90, DEGREES) drivetrain.drive_for(FORWARD, 800, MM) # 6. ഡിസ്കുകളിലേക്ക് തിരിയുക ഡ്രൈവ്ട്രെയിൻ.turn_to_heading(0, DEGREES) കാത്തിരിപ്പ്(5, MSEC) - മുകളിൽ വിവരിച്ചതുപോലെ കമാൻഡുകൾ എങ്ങനെ നീക്കാമെന്നും ഇൻഡന്റേഷൻ ക്രമീകരിക്കാമെന്നും കാണാൻ താഴെയുള്ള വീഡിയോ കാണുക. വീഡിയോ ക്ലിപ്പിൽ, പ്രോജക്റ്റിന്റെ ആറ് കമന്റ് വിഭാഗങ്ങൾ ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്നു, കൂടാതെ സന്ദർഭ മെനു തുറക്കുന്നു. 'കട്ട്' ഓപ്ഷൻ തിരഞ്ഞെടുത്തു, തുടർന്ന് കഴ്സർ ഫോർ ലൂപ്പ് കമാൻഡിന് താഴെയായി സ്ഥാപിക്കുന്നു. സന്ദർഭ മെനു വീണ്ടും തുറക്കുന്നു, 'ഒട്ടിക്കുക' തിരഞ്ഞെടുക്കുന്നു. കമാൻഡുകൾ അപ്പോൾ ഫോർ ലൂപ്പിനുള്ളിലാണ്, പക്ഷേ തെറ്റായി ഇൻഡന്റ് ചെയ്തിരിക്കുന്നു. ആറ് കമന്റ് വിഭാഗങ്ങൾ വീണ്ടും ഹൈലൈറ്റ് ചെയ്യുകയും ലൂപ്പിനുള്ളിൽ പ്രോജക്റ്റ് ശരിയായി ഇൻഡന്റ് ചെയ്യാൻ കീബോർഡിലെ 'ടാബ്' അമർത്തുകയും ചെയ്യുന്നു.
- ഡിസ്ക് മൂവർ പ്ലേഗ്രൗണ്ട്തുറന്നിട്ടില്ലെങ്കിൽ അത് തുറന്ന് പ്രോജക്റ്റ് പ്രവർത്തിപ്പിക്കുക.
-
ഈ പ്രോജക്റ്റ് പ്രവർത്തിപ്പിക്കുമ്പോൾ, വിആർ റോബോട്ട് ഓരോ നിറത്തിന്റെയും ഒരു ഡിസ്ക് എടുത്ത് അതിന്റെ അനുബന്ധ നിറമുള്ള ലക്ഷ്യത്തിലേക്ക് ഇടുന്നു.

നിങ്ങളുടെ അറിവിലേക്കായി
ശ്രദ്ധിക്കുക, വിആർ റോബോട്ട് മതിലിലേക്ക് ഇടിച്ചുകയറിക്കൊണ്ടിരുന്നു. പദ്ധതി പ്രകാരം വി.ആർ. റോബോട്ടിനോട് വലത്തേക്ക് തിരിഞ്ഞ് അടുത്ത ലക്ഷ്യത്തിലേക്ക് മൂന്ന് തവണ ഡ്രൈവ് ചെയ്യാൻ നിർദ്ദേശിച്ചതിനാൽ ഈ സ്വഭാവം പ്രതീക്ഷിക്കുന്നു. ആദ്യമായി നീലയിൽ നിന്ന് ചുവപ്പിലേക്ക് വാഹനമോടിക്കുന്നു. രണ്ടാമത്തേത് ചുവപ്പിൽ നിന്ന് പച്ചയിലേക്കും, മൂന്നാമത്തേത് പച്ചയിൽ നിന്ന് ചുവരിലേക്കും ആണ്, കാരണം മറ്റൊരു നിറമുള്ള ലക്ഷ്യവുമില്ല. വി.ആർ. റോബോട്ട് ചുമരിൽ ഇടിച്ചു കഴിഞ്ഞാൽ പദ്ധതി നിർത്തുക. പച്ച ഡിസ്ക് എടുത്ത് നീക്കിയ ശേഷം വിആർ റോബോട്ട് നിർത്തുന്ന തരത്തിൽ പ്രോജക്റ്റ് മെച്ചപ്പെടുത്താൻ കഴിയും, പക്ഷേ ഇത് പ്രോജക്റ്റിന്റെ മൊത്തത്തിലുള്ള സങ്കീർണ്ണത വർദ്ധിപ്പിക്കും.
ചോദ്യങ്ങൾ
പാഠ ക്വിസ് ആക്സസ് ചെയ്യുന്നതിന് താഴെയുള്ള ലിങ്ക് തിരഞ്ഞെടുക്കുക.