പാഠം 3: [അങ്ങനെയാണെങ്കിൽ] ബ്ലോക്കുകൾ ഉപയോഗിക്കുന്നത്
ഡിസ്ക് മേസ് ചലഞ്ചിൽ, റിപ്പോർട്ട് ചെയ്യപ്പെടുന്ന നിറം എന്താണെന്ന് കാണാൻ വിആർ റോബോട്ട് ഫ്രണ്ട് ഐ സെൻസറിന്റെ അവസ്ഥ പരിശോധിക്കുന്നു. ഓരോ നിറവും വിആർ റോബോട്ട് ചെയ്യേണ്ട വ്യത്യസ്ത സ്വഭാവവുമായി പൊരുത്തപ്പെടുന്നു.

-
ഒരു പുതിയ പ്രോജക്റ്റ് ആരംഭിച്ച് അതിന് എന്ന് പേരിടുക Unit7Lesson3.

-
വർക്ക്സ്പെയ്സിലേക്ക് ഒരു [If then] ബ്ലോക്ക് വലിച്ചിട്ട് [When started] ബ്ലോക്കിലേക്ക് അറ്റാച്ചുചെയ്യുക.

നിങ്ങളുടെ അറിവിലേക്കായി
[If then] ബ്ലോക്ക് എന്നത് ബൂളിയൻ റിപ്പോർട്ടർ ബ്ലോക്കുകളെ ഇൻപുട്ടായി സ്വീകരിക്കുന്ന ഒരു C ബ്ലോക്കാണ്. പാഠം 2-ൽ ഡിസ്ക് മെയ്സ് പരിഹരിക്കുമ്പോൾ നിരീക്ഷിച്ച പാറ്റേണുകൾ ഉപയോഗിച്ച്, അവസ്ഥ ശരിയോ തെറ്റോ ആണെങ്കിൽ VR റോബോട്ട് തീരുമാനമെടുക്കുന്ന ഒരു പ്രോജക്റ്റ് സൃഷ്ടിക്കാൻ കഴിയും.

[അപ്പോൾ ആണെങ്കിൽ] ബ്ലോക്ക് ഒരു പ്രോജക്റ്റിൽ ഒരിക്കൽ മാത്രമേ പ്രവർത്തിക്കൂ. ഈ ഉദാഹരണത്തിൽ, ഒരു പച്ച വസ്തു കണ്ടെത്തിയാൽ ഫ്രണ്ട് ഐ സെൻസർ TRUE എന്ന് റിപ്പോർട്ട് ചെയ്യും, കൂടാതെ C ബ്ലോക്കിനുള്ളിൽ 90 ഡിഗ്രി വലത്തേക്ക് തിരിയുക എന്ന കമാൻഡ് എക്സിക്യൂട്ട് ചെയ്യും. ഒരു പച്ച വസ്തു കണ്ടെത്തിയില്ലെങ്കിൽ, പ്രോജക്റ്റ് സ്റ്റാക്കിലെ അടുത്ത കമാൻഡിലേക്ക് നീങ്ങും.

സ്വിച്ച് ബ്ലോക്കുകൾ ഉപയോഗിക്കുന്നു
താഴെയുള്ള ചിത്രം ഈ പാഠത്തിന്റെ ഉദാഹരണ പ്രോജക്റ്റിനായുള്ള സ്വിച്ച് [അപ്പോൾ ആണെങ്കിൽ] ബ്ലോക്ക് സ്റ്റേറ്റ്മെന്റ് കാണിക്കുന്നു.
താഴെയുള്ള പ്രോജക്റ്റിൽ ഒരു സ്വിച്ച് ബ്ലോക്കിലേക്ക് പരിവർത്തനം ചെയ്ത അതേ കമാൻഡുകൾ ഉൾപ്പെടുന്നു.
ഫ്രണ്ട്_ഐ.ഡിറ്റെക്റ്റ്(ഗ്രീൻ) ആണെങ്കിൽ കോഡിന്റെ ആദ്യ വരി : ഫ്രണ്ട് ഐ സെൻസർ പച്ച നിറം കണ്ടെത്തുന്നുണ്ടോ എന്ന് പരിശോധിക്കുന്ന കണ്ടീഷണൽ ലൂപ്പ് ആണ്. ഈ വരിയുടെ അവസാനം ഒരു കോളൻ (:) ഉണ്ടായിരിക്കണമെന്ന് ശ്രദ്ധിക്കുക.
കോഡിന്റെ രണ്ടാമത്തെ വരി, drivetrain.turn_for(RIGHT, 90, DEGREES) ഫ്രണ്ട് ഐ സെൻസർ പച്ച നിറം കണ്ടെത്തുമ്പോൾ റോബോട്ടിനോട് 90 ഡിഗ്രി വലത്തേക്ക് തിരിയാൻ പറയുന്നു. ഫ്രണ്ട് ഐ സെൻസർ പച്ച നിറം കണ്ടെത്തിയാൽ നടപ്പിലാക്കുന്ന നിർദ്ദിഷ്ട പെരുമാറ്റരീതിയായതിനാൽ, ഈ ലൈൻ ഡിഫോൾട്ടായി 4 സ്പെയ്സുകൾആയി ഇൻഡന്റ് ചെയ്തിരിക്കുന്നു.

-
[If then] ബ്ലോക്കിന്റെ ഷഡ്ഭുജ ഇൻപുട്ടിലേക്ക് വർക്ക്സ്പെയ്സിലേക്ക് ഒരു <Color sensing> ബ്ലോക്ക് വലിച്ചിടുക.

-
<Color sensing> ബ്ലോക്കിന്റെ പാരാമീറ്റർ 'പച്ച' ആക്കുക.

-
ഫ്രണ്ട് ഐ സെൻസർ ഒരു പച്ച ഡിസ്ക് കണ്ടെത്തുമ്പോൾ, ഡിസ്ക് മേസ് പരിഹരിക്കാൻ ആരംഭിക്കുന്നതിന് VR റോബോട്ട് 90 ഡിഗ്രി വലത്തേക്ക് തിരിയേണ്ടതുണ്ട്. [Turn for] ബ്ലോക്ക് [If then] ബ്ലോക്കിലേക്ക് വലിച്ചിടുക.

-
ഡിസ്ക് മേസിലെ മൂന്ന് നിറങ്ങൾക്കും (പച്ച, നീല, ചുവപ്പ്) മറ്റൊരു [അപ്പോൾ] ബ്ലോക്ക് ചേർക്കാൻ ഇതേ ഘട്ടങ്ങൾ പാലിക്കുക. ഓരോ നിറവും വ്യത്യസ്ത സ്വഭാവവുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു. [If then] ബ്ലോക്കിനുള്ളിലെ ബ്ലോക്കുകൾ ആ ഉദ്ദേശിച്ച സ്വഭാവവുമായി പൊരുത്തപ്പെടേണ്ടതുണ്ട്. പ്രോജക്റ്റിലേക്ക് ഇനിപ്പറയുന്ന ബ്ലോക്കുകൾ ചേർക്കുക. വിആർ റോബോട്ട് 'നീല' നിറം കണ്ടെത്തുമ്പോൾ, വിആർ റോബോട്ട് 90 ഡിഗ്രി ഇടത്തേക്ക് തിരിയും.

-
വിആർ റോബോട്ട് മസിലുകളുടെ അറ്റത്ത് എത്തുമ്പോൾ, വിആർ റോബോട്ട് 'ചുവപ്പ്' നിറം കണ്ടെത്തും.

-
വിആർ റോബോട്ടിനെ നിർത്താൻ, വിആർ റോബോട്ട് 'ചുവപ്പ്' കണ്ടെത്തുമ്പോൾ എന്തുചെയ്യണമെന്നതിനുള്ള നിർദ്ദേശങ്ങളോടൊപ്പം മറ്റൊരു [അങ്ങനെയാണെങ്കിൽ] ബ്ലോക്ക് ചേർക്കേണ്ടതുണ്ട്. പ്രോജക്റ്റിലേക്ക് ഇനിപ്പറയുന്ന ബ്ലോക്കുകൾ ചേർക്കുക.

-
'none' മൂല്യം ഉപയോഗിച്ച് നിറം കാണുന്നില്ലെങ്കിൽ VR റോബോട്ടിന് തീരുമാനമെടുക്കാനും കഴിയും. ഡിസ്ക് മേസിന്റെ ആരംഭ പോയിന്റിൽ, വിആർ റോബോട്ട് നിറങ്ങളൊന്നും കണ്ടെത്തുന്നില്ല.

-
ഡിസ്ക് മേസിന്റെ തുടക്കത്തിൽ ഫ്രണ്ട് ഐ സെൻസറിന് ഒരു നിറവും തിരിച്ചറിയാൻ കഴിയാത്തതിനാൽ, പച്ച ഡിസ്ക് കണ്ടെത്തുന്നതുവരെ വിആർ റോബോട്ട് മുന്നോട്ട് പോകേണ്ടതുണ്ട്. നിറം കണ്ടെത്താത്തപ്പോൾ എന്തുചെയ്യണമെന്ന് VR റോബോട്ടിനോട് നിർദ്ദേശിക്കുന്നതിന് മറ്റൊരു [അങ്ങനെയാണെങ്കിൽ] ബ്ലോക്ക് ചേർക്കാൻ കഴിയും.

-
പ്രോജക്റ്റിലേക്ക് ഇനിപ്പറയുന്ന ബ്ലോക്കുകൾ ചേർക്കുക. VR റോബോട്ട് ഒരു നിറവും കണ്ടെത്തുന്നില്ലെങ്കിൽ, VR റോബോട്ട് മുന്നോട്ട് ഓടും.

- ഐ സെൻസർ കണ്ടെത്തുന്ന ഓരോ നിറത്തിനും ഇപ്പോൾ വിആർ റോബോട്ടിന് നിർദ്ദേശങ്ങളുണ്ട്.
- ഫ്രണ്ട് ഐ സെൻസർ 'പച്ച?' കണ്ടെത്തുന്നു.
- 90 ഡിഗ്രി വലത്തേക്ക് തിരിയുക
- ഫ്രണ്ട് ഐ സെൻസർ 'നീലയാണോ?' എന്ന് കണ്ടെത്തുന്നു.
- 90 ഡിഗ്രി ഇടത്തേക്ക് തിരിയുക
- ഫ്രണ്ട് ഐ സെൻസർ 'ചുവപ്പ്?' കണ്ടെത്തുന്നു.
- ഡ്രൈവിംഗ് നിർത്തുക
- ഫ്രണ്ട് ഐ സെൻസർ 'ഒന്നുമില്ലേ?' എന്ന് കണ്ടെത്തുന്നു.
- മുന്നോട്ട് ഓടിക്കുക
- ഫ്രണ്ട് ഐ സെൻസർ 'പച്ച?' കണ്ടെത്തുന്നു.
- ഡിസ്ക് മേസ് പ്ലേഗ്രൗണ്ട് തുറന്ന് പ്രോജക്റ്റ് പ്രവർത്തിപ്പിക്കുക.
ഈ പാഠത്തിന്റെ ബാക്കി ഭാഗം തുടരാൻ അടുത്തത് ബട്ടൺ തിരഞ്ഞെടുക്കുക.