പാഠം 1: ഒരു അൽഗോരിതം എന്താണ്?
ഈ പാഠത്തിൽ, ഒരു അൽഗോരിതം എന്താണെന്നും VEXcode VR പൈത്തണിലെ അൽഗോരിതങ്ങൾ ഉപയോഗിക്കുന്നത് കൂടുതൽ വൈവിധ്യമാർന്ന പെരുമാറ്റങ്ങളുള്ള പ്രോജക്ടുകൾ സൃഷ്ടിക്കാൻ നിങ്ങളെ എങ്ങനെ പ്രാപ്തമാക്കുന്നുവെന്നും നിങ്ങൾ പഠിക്കും. ഡൈനാമിക് കാസിൽ ക്രാഷർ ചലഞ്ച് പരിഹരിക്കുന്നതിന് ആവശ്യമായ പരിസ്ഥിതിയോട് പ്രതികരിക്കാൻ അൽഗോരിതമിക് പ്രോജക്ടുകൾ വിആർ റോബോട്ടിനെ നിർദ്ദേശിക്കുന്നു.
പഠന ഫലങ്ങൾ
- അൽഗോരിതങ്ങൾ ക്രമം, തിരഞ്ഞെടുപ്പ്, ആവർത്തനം (ലൂപ്പുകൾ) എന്നിവയാൽ നിർമ്മിതമാണെന്ന് തിരിച്ചറിയുക.
- ഒരു VR റോബോട്ട് നടപ്പിലാക്കുന്ന പ്രക്രിയകൾക്കായി പ്രോഗ്രാമിംഗ് ഭാഷകൾ ഉപയോഗിച്ച് നടപ്പിലാക്കുന്ന നിർദ്ദേശങ്ങളുടെ കൃത്യമായ ക്രമങ്ങളാണ് അൽഗോരിതങ്ങൾ എന്ന് തിരിച്ചറിയുക.
അൽഗോരിതങ്ങൾ
ഒരു VR റോബോട്ട് നടപ്പിലാക്കുന്ന പ്രക്രിയകൾക്കായി VEXcode VR പൈത്തൺ പോലുള്ള പ്രോഗ്രാമിംഗ് ഭാഷകൾ ഉപയോഗിച്ച് നടപ്പിലാക്കുന്ന നിർദ്ദേശങ്ങളുടെ കൃത്യമായ ശ്രേണികളാണ് അൽഗോരിതങ്ങൾ.
ഒരു അൽഗോരിതത്തിന്റെ അടിസ്ഥാന ഘടകങ്ങൾ ക്രമം, തിരഞ്ഞെടുപ്പ്, ആവർത്തനം എന്നിവയാണ്.
- അനുക്രമം - ഒരു പ്രോജക്റ്റിൽ ആവശ്യമുള്ള ഫലം ലഭിക്കുന്നതിനായി പെരുമാറ്റങ്ങളും കമാൻഡുകളും സംയോജിപ്പിക്കുന്ന ക്രമം.
- തിരഞ്ഞെടുപ്പ് - ഒരു പ്രോജക്റ്റിൽ കണ്ടീഷണൽ പ്രസ്താവനകളുടെ ഉപയോഗം. ifഅല്ലെങ്കിൽ if elseപോലുള്ള കണ്ടീഷണൽ സ്റ്റേറ്റ്മെന്റുകൾ ഒരു പ്രോജക്റ്റിന്റെ പ്രോജക്റ്റ് ഫ്ലോയെ ബാധിക്കുന്നു.
- ആവർത്തനം - അൽഗോരിതങ്ങൾ പലപ്പോഴും ഒരു നിശ്ചിത എണ്ണം തവണ ഘട്ടങ്ങൾ നടപ്പിലാക്കുന്നതിനോ അല്ലെങ്കിൽ ഒരു പ്രത്യേക വ്യവസ്ഥ പാലിക്കുന്നതുവരെയോ ആവർത്തനം ഉപയോഗിക്കുന്നു. ഇത് "ലൂപ്പിംഗ്" എന്നും അറിയപ്പെടുന്നു. ഒരു വ്യവസ്ഥ പാലിക്കുന്നത് വരെ അല്ലെങ്കിൽ ഒരു നിശ്ചിത എണ്ണം തവണ ഒരു സ്വഭാവം ആവർത്തിച്ചുകൊണ്ട് ആവർത്തനത്തിന് പ്രോജക്റ്റ് ഫ്ലോ മാറ്റാൻ കഴിയും.
യൂണിറ്റ് 8 ചലഞ്ചിൽ നിന്നുള്ള ഈ ഉദാഹരണ പ്രോജക്റ്റ് ഒരു അൽഗോരിതത്തിന്റെ ഒരു ഉദാഹരണമാണ്. ഡിസ്ക് മൂവർ ചലഞ്ച് പരിഹരിക്കുന്നതിനായി ലൂപ്പുകൾ, സെൻസർ ഡാറ്റ, കമാൻഡുകൾ എന്നിവയുടെ സംയോജനം ഒരു ശ്രേണിയിൽ ഒരുമിച്ച് ചേർക്കുന്നത് ഇതിൽ ഉൾപ്പെടുന്നു.
def main():
for value in range(3):
for value in range(3):
# 1. down_eye.near_object():
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()
# 2 അല്ലെങ്കിലും Down Eye Sensor
ഉപയോഗിച്ച് ഡിസ്കിലേക്ക് ഡ്രൈവ് ചെയ്യുക. ഡിസ്ക്
എടുക്കുക മാഗ്നെറ്റ്.എനർജിസ്(ബൂസ്റ്റ്)
# 3. ഡിസ്റ്റൻസ് സെൻസർ
drivetrain.turn_to_heading(180, DEGREES)
ഉപയോഗിച്ച് ലക്ഷ്യത്തിലേക്ക് ഡ്രൈവ് ചെയ്യുക, അതേസമയം front_distance.get_distance(MM) > 200:
drivetrain.drive(FORWARD)
wait(5, MSEC)
drivetrain.stop()
# 4. ഗോൾ
മാഗ്നെറ്റിൽ ഡിസ്ക് ഡ്രോപ്പ് ചെയ്യുക. ഊർജ്ജസ്വലമാക്കുക(ഡ്രോപ്പ് ചെയ്യുക)
ഡ്രൈവ്ട്രെയിൻ.ഡ്രൈവ്_ഫോർ(റിവേഴ്സ്, 100, എംഎം)
# 5. അടുത്ത ഡിസ്ക്
ഡ്രൈവ്ട്രെയിനിന് അഭിമുഖമായി തിരിയുക.turn_to_heading(0, DEGREES)
wait(5, MSEC)
# 6. തിരിഞ്ഞ് അടുത്ത ലക്ഷ്യത്തിലേക്ക് ഡ്രൈവ് ചെയ്യുക
drivetrain.turn_to_heading(90, DEGREES)
drivetrain.drive_for(FORWARD, 800, MM)
# 7. ഡിസ്കുകളിലേക്ക് തിരിയുക
ഡ്രൈവ്ട്രെയിൻ.turn_to_heading(0, DEGREES)
കാത്തിരിക്കുക(5, MSEC)ക്രമം
കമാൻഡുകൾ ക്രമീകരിച്ചിരിക്കുന്നതും സംയോജിപ്പിക്കുന്നതും VR റോബോട്ടിന്റെ സ്വഭാവരീതികളെ നിർണ്ണയിക്കുന്നു. ഈ ഉദാഹരണത്തിൽ, ഒരു ഡിസ്ക് നീക്കാൻ ആവശ്യമായ ഓരോ പെരുമാറ്റരീതികളും മൂന്ന് തവണ നടപ്പിലാക്കുന്നു, തുടർന്ന് VR റോബോട്ട് അടുത്ത ഡിസ്കുകളിലേക്ക് നീങ്ങുകയും എല്ലാ ഡിസ്കുകളും ലക്ഷ്യങ്ങളിലേക്ക് തിരികെ വരുന്നതുവരെ പെരുമാറ്റങ്ങൾ ആവർത്തിക്കുകയും ചെയ്യുന്നു. 
തിരഞ്ഞെടുപ്പ്
സെൻസർ അവസ്ഥകളെ അടിസ്ഥാനമാക്കി പ്രവർത്തിപ്പിക്കേണ്ട പ്രോജക്റ്റിന്റെ ഭാഗങ്ങൾ നിർണ്ണയിക്കുന്ന തിരഞ്ഞെടുപ്പും ഈ പ്രോജക്റ്റിൽ ഉൾപ്പെടുന്നു. ആദ്യം, VR റോബോട്ട് ഒരു ഡിസ്കിന് സമീപം എപ്പോഴാണെന്ന് നിർണ്ണയിക്കാൻ ഡൗൺ ഐ സെൻസർ ഉപയോഗിക്കുന്നു, അങ്ങനെ ഡിസ്ക് എടുക്കാൻ കഴിയും. പിന്നെ, ഡിസ്റ്റൻസ് സെൻസർ ഉപയോഗിച്ച് VR റോബോട്ട് എപ്പോൾ ലക്ഷ്യത്തിലെത്തുമെന്ന് നിർണ്ണയിക്കുന്നു, അങ്ങനെ ഡിസ്ക് താഴെയിടാം. 
ആദ്യത്തെwhileലൂപ്പിൽ, ഏതൊക്കെ കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കണമെന്ന് തിരഞ്ഞെടുക്കുന്നത് ഡൗൺ ഐ സെൻസർ റിപ്പോർട്ട് ചെയ്ത സെൻസർ മൂല്യങ്ങളെ അടിസ്ഥാനമാക്കിയാണ്.
- ഒരു വസ്തുവും കണ്ടെത്താനായില്ലെങ്കിലും, വിആർ റോബോട്ട് മുന്നോട്ട് നീങ്ങും.
- ഒരു വസ്തു കണ്ടെത്തുമ്പോൾ, VR റോബോട്ട് നിർത്തും.
രണ്ടാമത്തെwhile ലൂപ്പിൽ, ഏത് കമാൻഡ് പ്രവർത്തിപ്പിക്കണമെന്ന് തിരഞ്ഞെടുക്കുന്നത് ഡിസ്റ്റൻസ് സെൻസർ റിപ്പോർട്ട് ചെയ്ത സെൻസർ മൂല്യങ്ങളെ അടിസ്ഥാനമാക്കിയാണ്.
- റിപ്പോർട്ട് ചെയ്യപ്പെട്ട ദൂരം 200 മില്ലിമീറ്ററിൽ (മില്ലീമീറ്ററിൽ) കൂടുതലാണെങ്കിലും, വിആർ റോബോട്ട് മുന്നോട്ട് ഓടും.
- റിപ്പോർട്ട് ചെയ്യപ്പെട്ട ദൂരം 50 മില്ലിമീറ്ററിൽ (മില്ലീമീറ്ററിൽ) കുറവാണെങ്കിലും, വിആർ റോബോട്ട് ഡ്രൈവിംഗ് നിർത്തി ഇലക്ട്രോമാഗ്നറ്റിനെ ഊർജ്ജസ്വലമാക്കുന്നതിനായി പദ്ധതിയുടെ അടുത്ത ഭാഗത്തേക്ക് നീങ്ങും.
ആവർത്തനം
പ്രവർത്തനങ്ങൾ ആവർത്തിക്കുന്നതിനും റിപ്പോർട്ട് ചെയ്ത സെൻസർ മൂല്യങ്ങൾ ആവർത്തിച്ച് പരിശോധിക്കുന്നതിനും പ്രോജക്റ്റ് ആവർത്തനം അല്ലെങ്കിൽ "ലൂപ്പുകൾ" ഉപയോഗിക്കുന്നു. ഈ പ്രോജക്റ്റിൽ നെസ്റ്റഡ് ലൂപ്പുകൾ അടങ്ങിയിരിക്കുന്നു - VR റോബോട്ടിന് ഒരേ നിറത്തിലുള്ള മൂന്ന് ഡിസ്കുകളും ശേഖരിക്കാൻ കഴിയുന്ന തരത്തിൽ ഒരു ലൂപ്പ്; പ്ലേഗ്രൗണ്ടിലെ എല്ലാ ഡിസ്കുകളും ശേഖരിക്കുന്നതിന് ആ പ്രക്രിയ ആവർത്തിക്കുന്നതിനുള്ള രണ്ടാമത്തെ ലൂപ്പ്. 
ഡിസ്ക് മൂവർ ചലഞ്ച് പൂർത്തിയാക്കുന്നതിന് മൂന്ന് ഡിസ്കുകൾ മൂന്ന് തവണ ശേഖരിച്ച് തിരികെ നൽകുന്നതിനാണ് ഈ അൽഗോരിതം രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്. ക്രമം, തിരഞ്ഞെടുപ്പ്, ആവർത്തനം എന്നിവ ഉപയോഗിച്ച് ഡിസ്കുകൾ ആവർത്തിച്ച് ശേഖരിക്കുന്നതിനും നീക്കുന്നതിനും പ്രയോഗിക്കുന്ന അതേ യുക്തി ഡൈനാമിക് കാസിൽ ക്രാഷർ ചലഞ്ച് പോലുള്ള മറ്റ് വെല്ലുവിളികളിലും പ്രയോഗിക്കാൻ കഴിയും.
ചോദ്യങ്ങൾ
പാഠ ക്വിസ് ആക്സസ് ചെയ്യുന്നതിന് താഴെയുള്ള ലിങ്ക് തിരഞ്ഞെടുക്കുക.