Skip to main content

പാഠം 2: മറ്റെന്തെങ്കിലും പ്രസ്താവനകൾ

ഈ പാഠത്തിൽ, ഡൈനാമിക് കാസിൽ ക്രാഷർ പ്ലേഗ്രൗണ്ട്ലെ കുറഞ്ഞത് രണ്ട് കോട്ടകളെങ്കിലും VR റോബോട്ട് ഇടിച്ചുതെറിപ്പിക്കുന്ന ഒരു പ്രോജക്റ്റ് നിങ്ങൾ സൃഷ്ടിക്കും. ഓരോ റീസെറ്റിലും പ്ലേഗ്രൗണ്ട് ലേഔട്ട് മാറുന്നതിനാൽ, ലൂപ്പുകളും സെൻസർ ഫീഡ്‌ബാക്കും ഉപയോഗിച്ച് വെല്ലുവിളി പരിഹരിക്കാൻ ഒരു അൽഗോരിതം ആവശ്യമായി വരും.

ഡൈനാമിക് കാസിൽ ക്രാഷർ പ്ലേഗ്രൗണ്ട് ലേഔട്ടുകളുടെ ഉദാഹരണങ്ങൾ:

ഡൈനാമിക് കാസിൽ ക്രാഷർ കളിസ്ഥലത്തിന്റെ മൂന്ന് മുകളിൽ നിന്ന് താഴേക്കുള്ള കാഴ്ചകൾ, ഓരോന്നിലും വ്യത്യസ്ത ക്രമരഹിതമായ കൊട്ടാര ക്രമീകരണങ്ങൾ പ്രദർശിപ്പിക്കുന്നു, ഒരു VR റോബോട്ട് താഴത്തെ ആരംഭ പോയിന്റിൽ സ്ഥിരമായി സ്ഥാപിച്ചിരിക്കുന്നു.

പഠന ഫലങ്ങൾ

  • റിപ്പോർട്ട് ചെയ്ത ബൂളിയൻ മൂല്യത്തെ അടിസ്ഥാനമാക്കി, 'if' അല്ലെങ്കിൽ 'else' ബ്രാഞ്ചിനുള്ളിൽ ഒരു if elseസ്റ്റേറ്റ്മെന്റ് കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കുന്നുവെന്ന് തിരിച്ചറിയുക.
  • അവസ്ഥ ഒന്നിലധികം തവണ പരിശോധിക്കുന്നതിനായി if else എന്ന പ്രസ്താവന സാധാരണയായി ലൂപ്പിന് അല്ലെങ്കിൽ അനന്തമായ whileലൂപ്പിനൊപ്പം ഉപയോഗിക്കുന്നുവെന്ന് തിരിച്ചറിയുക.
  • ലൂപ്പുകളിൽ if elseസ്റ്റേറ്റ്മെന്റ് ഉപയോഗിക്കുന്നത് എന്തുകൊണ്ടാണെന്ന് കണ്ടെത്തി വിവരിക്കുക.
  • if elseസ്റ്റേറ്റ്മെന്റുള്ള ഒരു പ്രോജക്റ്റിൽ 'if' ബ്രാഞ്ച് അല്ലെങ്കിൽ 'else' ബ്രാഞ്ച് പ്രവർത്തിപ്പിക്കുന്നതിന് കാരണമെന്താണെന്ന് വിവരിക്കുക.

എന്തിനാണ് ഒരു "If Else" സ്റ്റേറ്റ്മെന്റ് ഉപയോഗിക്കുന്നത്?

യൂണിറ്റ് 2 ലെ കാസിൽ ക്രാഷർ ചലഞ്ചിൽ നിന്ന് വ്യത്യസ്തമാണ് ഡൈനാമിക് കാസിൽ ക്രാഷർ ചലഞ്ച്. യൂണിറ്റ് 2 ചലഞ്ചിൽ ലളിതമായ സീക്വൻസിംഗും ഡ്രൈവ്ട്രെയിൻ കമാൻഡുകളും ഉപയോഗിച്ച് ഒരു സ്റ്റാറ്റിക് കളിസ്ഥലത്തെ കോട്ടകളെ തകർത്തു.

def main():
	drivetrain.set_drive_velocity(100, PERCENT)
	drivetrain.set_turn_velocity(100, PERCENT)
	drivetrain.drive_for(FORWARD, 1550, MM)
	drivetrain.turn_for(RIGHT, 180, DEGREES)
	drivetrain.drive_for(FORWARD, 700, MM)
	drivetrain.turn_for(RIGHT, 90, DEGREES)

എന്നിരുന്നാലും, ഡൈനാമിക് കാസിൽ ക്രാഷർ പ്ലേഗ്രൗണ്ടിന്റെ മാറിക്കൊണ്ടിരിക്കുന്ന ലേഔട്ടുകൾ കാരണം, രണ്ടോ അതിലധികമോ കോട്ടകളെ VR റോബോട്ടിന് ഇടിച്ചുനിരത്താൻഡ്രൈവ്ട്രെയിൻ കമാൻഡുകൾ മാത്രം മതിയാകില്ല. ഒരു കൂട്ടം ഡ്രൈവ്‌ട്രെയിൻ കമാൻഡുകൾ ഒരു പ്ലേഗ്രൗണ്ടിൽ പ്രവർത്തിച്ചേക്കാം, പക്ഷേ മറ്റൊന്നിൽ പ്രവർത്തിക്കില്ല. ആവർത്തനങ്ങളിൽ സെൻസറുകളും തിരഞ്ഞെടുപ്പും ഉപയോഗിക്കുന്ന ഒരു അൽഗോരിതം ആവശ്യമാണ്. ഈ പ്രോജക്റ്റിലേക്ക് കണ്ടീഷണൽ സ്റ്റേറ്റ്മെന്റുകൾക്കൊപ്പം സെലക്ഷൻ ചേർത്ത് ഒരു അൽഗോരിതം സൃഷ്ടിക്കാൻ if elseസ്റ്റേറ്റ്മെന്റ് ഉപയോഗിക്കും.

ഡൈനാമിക് കാസിൽ ക്രാഷർ കളിസ്ഥലത്തിന്റെ മുകളിൽ നിന്ന് താഴേക്കുള്ള കാഴ്ച, ചില കോട്ടകൾ മാത്രമേ തകർന്നിട്ടുള്ളൂ എന്ന് കാണിക്കുന്നു. കളിസ്ഥലത്തിന് ചുറ്റുമുള്ള ചലനത്തിന് ശേഷം കളിസ്ഥലത്തിന്റെ മുകളിൽ വലതുവശത്താണ് വിആർ റോബോട്ട്.

മറ്റെന്തെങ്കിലും പ്രസ്താവന

if else സ്റ്റേറ്റ്മെന്റ് ബൂളിയൻ വ്യവസ്ഥകൾ അംഗീകരിക്കുന്ന ഒരു സ്റ്റേറ്റ്മെന്റാണ്. if elseസ്റ്റേറ്റ്മെന്റ് എന്നത് ഒരു പ്രോജക്റ്റിന്റെ ഒഴുക്കിനെ നിയന്ത്രിക്കുന്ന ഒരു കണ്ടീഷണൽ സ്റ്റേറ്റ്മെന്റാണ്. if elseസ്റ്റേറ്റ്മെന്റ് ഒരു പ്രത്യേക കമാൻഡ് ശ്രേണി എക്സിക്യൂട്ട് ചെയ്യുംif കൺഡിഷൻ പാലിക്കപ്പെട്ടാൽ, else(കൺഡിഷൻ അല്ല പാലിക്കപ്പെടുമ്പോൾ) മറ്റൊരു സെറ്റ് കമാൻഡുകൾ എക്സിക്യൂട്ട് ചെയ്യും - അതുവഴി പ്രോജക്റ്റ് ഫ്ലോ 'ബ്രാഞ്ച്' ചെയ്യുന്നു. ൽ ഒരു ബ്രാഞ്ച് മാത്രമേ ഒരേസമയം എക്സിക്യൂട്ട് ചെയ്യപ്പെടുകയുള്ളൂ, അല്ലെങ്കിൽമാത്രമേ എക്സിക്യൂട്ട് ചെയ്യപ്പെടുകയുള്ളൂ.

അവസ്ഥ:
	പാസ്
ആണെങ്കിൽ അല്ലെങ്കിൽ:
	പാസ്
  • അവസ്ഥ True ആയി റിപ്പോർട്ട് ചെയ്താൽ, 'if' ബ്രാഞ്ചിനുള്ളിലെ കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കപ്പെടും.
  • അവസ്ഥ തെറ്റ് എന്ന് റിപ്പോർട്ട് ചെയ്താൽ, 'else' ബ്രാഞ്ചിനുള്ളിലെ കമാൻഡുകൾ പ്രവർത്തിപ്പിക്കപ്പെടും.
  • ഒരു ബ്രാഞ്ചിനുള്ളിലെ എല്ലാ കമാൻഡുകളും പ്രവർത്തിപ്പിച്ചുകഴിഞ്ഞാൽ, പ്രോജക്റ്റ്if elseസ്റ്റേറ്റ്മെന്റിന് പുറത്തുള്ള അടുത്ത കമാൻഡിലേക്ക് നീങ്ങും.

നിങ്ങളുടെ ദൈനംദിന പ്രവർത്തനങ്ങളിൽ നിങ്ങൾ പലപ്പോഴുംif elseലോജിക് ഉപയോഗിക്കാറുണ്ട്. ഉദാഹരണത്തിന്, പുറത്തെ കാലാവസ്ഥയെ അടിസ്ഥാനമാക്കി വീട്ടിൽ നിന്ന് ഇറങ്ങുമ്പോൾ എന്ത് കൊണ്ടുപോകണമെന്ന് തീരുമാനിക്കുമ്പോൾ, നിങ്ങൾക്ക്if elseലോജിക് ഉപയോഗിക്കാം. മഴ പെയ്യുന്നുണ്ടെങ്കിൽ, ഒരു കുട എടുക്കുക; മറ്റുസൺഗ്ലാസുകൾ എടുക്കുക.

'ഇഫ്' ബ്രാഞ്ച് -

  • ഈ സാഹചര്യത്തിൽ, 'മഴ പെയ്യുക' എന്ന നിബന്ധന പാലിക്കപ്പെടുന്നു, അതിനാൽ 'if'ബ്രാഞ്ച് നടപ്പിലാക്കും, നിങ്ങൾ ഒരു കുട എടുക്കും. ഇടതുവശത്ത് "മഴ പെയ്യുകയാണെങ്കിൽ:, കുട എടുക്കുക" എന്ന കോഡ് ഉദാഹരണം ഉണ്ട്. if സ്റ്റേറ്റ്മെന്റിനു ശേഷം ഇങ്ങനെ വായിക്കുന്നു: സൺഗ്ലാസുകൾ എടുക്കുക. കോഡിന് മുകളിൽ മഴത്തുള്ളികളുള്ള ഒരു മഴമേഘമുണ്ട്. വലതുവശത്ത് തുള്ളികൾ നിറഞ്ഞ ഒരു വർണ്ണാഭമായ കുടയുണ്ട്. ചട്ടം അനുസരിച്ച്, മഴ പെയ്താൽ ആ വ്യക്തി കുട എടുക്കും; അല്ലെങ്കിൽ, അവർ സൺഗ്ലാസ് എടുക്കും.

'മറ്റുള്ളവർ' ബ്രാഞ്ച് -

  • ഈ സാഹചര്യത്തിൽ, 'മഴ പെയ്യുക' എന്ന അവസ്ഥ അല്ല, ആണ്, അതിനാൽ 'else' ബ്രാഞ്ച് നടപ്പിലാക്കും, നിങ്ങൾ സൺഗ്ലാസുകൾ എടുക്കും. ഇടതുവശത്ത് "മഴ പെയ്യുകയാണെങ്കിൽ:, കുട എടുക്കുക" എന്ന കോഡ് ഉദാഹരണം ഉണ്ട്. if സ്റ്റേറ്റ്മെന്റിനു ശേഷം ഇങ്ങനെ വായിക്കുന്നു: സൺഗ്ലാസുകൾ എടുക്കുക. കോഡിന് മുകളിൽ ഒരു ശോഭയുള്ള സൂര്യൻ ഉണ്ട്. വലതുവശത്ത് ഒരു ജോടി ചുവന്ന സൺഗ്ലാസുകൾ ഉണ്ട്. ചട്ടം അനുസരിച്ച്, മഴ പെയ്താൽ ആ വ്യക്തി കുട എടുക്കും; അല്ലെങ്കിൽ, അവർ സൺഗ്ലാസ് എടുക്കും.

 

If Else സ്റ്റേറ്റ്‌മെന്റും ഡൈനാമിക് കാസിൽ ക്രാഷർ പ്രശ്‌നവും

ഡൈനാമിക് കാസിൽ ക്രാഷർ പ്ലേഗ്രൗണ്ട്ലെ കോട്ടകളെ വിജയകരമായി തകർക്കാൻ VR റോബോട്ടിന് രണ്ട് പ്രധാന ഘട്ടങ്ങളുണ്ട്. അടിസ്ഥാനപരമായി, വിആർ റോബോട്ടിന് കളിസ്ഥലത്തെ കോട്ടകൾ കണ്ടെത്താനും കണ്ടെത്താനും കഴിയണം, തുടർന്ന് അവയെ തട്ടിമാറ്റാൻ ഡ്രൈവ് ചെയ്യണം. ഒരുif elseപ്രസ്താവനയുടെ അടിസ്ഥാനത്തിൽ, ഇത് ഇങ്ങനെ ഫ്രെയിം ചെയ്യാം:

  1. VR റോബോട്ട് ഒരു കോട്ട കണ്ടെത്തിയാൽ, അതിനെ തകർക്കാൻ അതിലേക്ക് മുന്നോട്ട് ഓടിക്കുക.ഡൈനാമിക് കാസിൽ ക്രാഷർ കളിസ്ഥലത്തിന്റെ മുകളിൽ നിന്ന് താഴേക്കുള്ള കാഴ്ച. ഈ കളിസ്ഥലത്തിന്റെ മധ്യത്തിലുള്ള കൊട്ടാരം ഒരു ചുവന്ന പെട്ടിയും VR റോബോട്ടിന്റെ ആരംഭ സ്ഥാനത്ത് നിന്ന് അതിലേക്ക് ചൂണ്ടുന്ന ഒരു അമ്പടയാളവും കൊണ്ട് ഹൈലൈറ്റ് ചെയ്തിട്ടുണ്ട്, ഇത് VR റോബോട്ട് കൊട്ടാരത്തിലേക്ക് നീങ്ങുമെന്ന് സൂചിപ്പിക്കുന്നു.
  2. മറ്റുള്ളവ,(VR റോബോട്ട് ഒരു കോട്ട കണ്ടെത്താത്തപ്പോൾ), തിരിഞ്ഞ് പ്ലേഗ്രൗണ്ടിലെ മറ്റൊരു സ്ഥലത്ത് ഒരു കോട്ട ഉണ്ടോ എന്ന് പരിശോധിക്കുക.ഡൈനാമിക് കാസിൽ ക്രാഷർ കളിസ്ഥലത്തിന്റെ മുകളിൽ നിന്ന് താഴേക്കുള്ള കാഴ്ച, മധ്യഭാഗത്തെ കോട്ട ചുവന്ന ബോക്സ് കൊണ്ട് ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്നു. വിആർ റോബോട്ടിന് ചുറ്റുമുള്ള അമ്പടയാളങ്ങൾ ഘടികാരദിശയിൽ തിരിയുന്നതായി കാണിക്കുന്നു, ഇത് മറ്റൊരു കോട്ട കാണുന്നത് വരെ റോബോട്ട് തിരിയുമെന്ന് സൂചിപ്പിക്കുന്നു.

ഈ പ്ലേഗ്രൗണ്ടിലെ കോട്ടകളെ കണ്ടെത്താൻ VR റോബോട്ടിലെ ഡിസ്റ്റൻസ് സെൻസർ ഉപയോഗിക്കാം.മറ്റെല്ലാ പ്ലേഗ്രൗണ്ടുകളിൽ നിന്നും വ്യത്യസ്തമായി, ഡൈനാമിക് കാസിൽ ക്രാഷർ പ്ലേഗ്രൗണ്ട് ന് മതിലുകളില്ല. ഡൈനാമിക് കാസിൽ ക്രാഷർ പ്ലേഗ്രൗണ്ട്ലെ വസ്തുക്കൾ കോട്ടകൾ മാത്രമായതിനാൽ, ദൂര സെൻസർ ഒരു വസ്തുവിനെ കണ്ടെത്തുമ്പോൾ, ആ വസ്തു ഒരു കോട്ടയായിരിക്കും. ഈ രണ്ട് അടിസ്ഥാന ഘട്ടങ്ങൾപൂർത്തിയായിക്കഴിഞ്ഞാൽ, VR റോബോട്ടിന് തിരികെ പോയി ഡിസ്റ്റൻസ് സെൻസർ ഉപയോഗിച്ച് അടുത്ത കോട്ട കണ്ടെത്താൻ കഴിയുംവിധം, VR റോബോട്ടിന് ഡിസ്റ്റൻസ് സെൻസറിന്റെ അവസ്ഥ ആവർത്തിച്ച് പരിശോധിക്കേണ്ടതുണ്ട്.

'ഇല്ലെങ്കിൽ' പ്രസ്താവന ഉപയോഗിച്ച് ഒരു പ്രോജക്റ്റ് ആസൂത്രണം ചെയ്യുക

  • ഒരു പുതിയ പ്രോജക്റ്റ് ആരംഭിച്ച് ആവശ്യപ്പെടുമ്പോൾ ഡൈനാമിക് കാസിൽ ക്രാഷർ പ്ലേഗ്രൗണ്ട്തിരഞ്ഞെടുക്കുക. VEXcode VR-ൽ ഒരു പുതിയ കളിസ്ഥലം തിരഞ്ഞെടുക്കുമ്പോൾ കാണുന്ന ഡൈനാമിക് കാസിൽ ക്രാഷർ കളിസ്ഥലത്തിന്റെ ലഘുചിത്രം.
  • പ്രോജക്റ്റിന് എന്ന് പേര് നൽകുക യൂണിറ്റ്9ലെസൺ.
    പ്രോജക്റ്റിന്റെ പേര് ചുവപ്പിൽ ഹൈലൈറ്റ് ചെയ്തിരിക്കുന്ന VEXcode VR ടൂൾബാർ. പ്രോജക്റ്റിന്റെ പേര് യൂണിറ്റ് 9 പാഠം 2 എന്നാണ്.
  • മുകളിൽ തിരിച്ചറിഞ്ഞ ഘട്ടങ്ങളെ അടിസ്ഥാനമാക്കി, പ്രോജക്റ്റിന്റെ ഉദ്ദേശ്യം വ്യക്തമാക്കുന്ന അഭിപ്രായങ്ങൾ വർക്ക്‌സ്‌പെയ്‌സിലേക്ക് ചേർക്കുക. ആദ്യത്തെ കമന്റ് if elseസ്റ്റേറ്റ്മെന്റിന്റെ അവസ്ഥ വിശദീകരിക്കുന്നു, അടുത്ത രണ്ടെണ്ണം if elseസ്റ്റേറ്റ്മെന്റിന്റെ ഓരോ ശാഖയുടെയും പ്രവർത്തനങ്ങൾ വിശദീകരിക്കുന്നു. പൈത്തൺ കമന്റുകൾ # (പൗണ്ട്) ചിഹ്നത്തിലാണ് ആരംഭിക്കുന്നതെന്ന് ഓർമ്മിക്കുക. നിങ്ങളുടെ പ്രോജക്റ്റ് ഇതുപോലെ ആയിരിക്കണം:

    def main():
    	# ഡിസ്റ്റൻസ് സെൻസർ ഒരു കാസിൽ കണ്ടെത്തുന്നുണ്ടോ?
    	
    	# ഒരു ഡിസ്റ്റൻസ് സെൻസർ കണ്ടെത്തിയ ക്രാഷ് കാസിൽ
    	
    	# ഡിസ്റ്റൻസ് സെൻസർ ഉപയോഗിച്ച് ഒരു കോട്ട കണ്ടെത്താൻ തിരിയുക.
  • മുകളിൽ വിവരിച്ച ഓരോ പ്രവർത്തനങ്ങളും ട്രിഗർ ചെയ്യാൻ if else സ്റ്റേറ്റ്മെന്റ് ഉപയോഗിക്കാം. ഓരോ പ്രവർത്തനവും if elseസ്റ്റേറ്റ്മെന്റിലെ ബൂളിയൻ അവസ്ഥ ശരിയാണോ തെറ്റാണോ എന്ന് റിപ്പോർട്ട് ചെയ്യുന്നുണ്ടോ എന്നതിനെ ആശ്രയിച്ചിരിക്കുന്നു. കമന്റുകൾക്ക് ശേഷം if elseഎന്നൊരു പ്രസ്താവന ചേർക്കുക. നിങ്ങളുടെ പ്രോജക്റ്റ് ഇപ്പോൾ ഇതുപോലെ ആയിരിക്കണം:

    def main():
    	# ഡിസ്റ്റൻസ് സെൻസർ ഒരു കാസിൽ കണ്ടെത്തുന്നുണ്ടോ?
    	
    	# ഡിസ്റ്റൻസ് സെൻസർ കണ്ടെത്തിയ ക്രാഷ് കാസിൽ
    	
    	# ഡിസ്റ്റൻസ് സെൻസർ	
    	
    	:
    		പാസ്
    	അല്ലെങ്കിൽ:
    		പാസ്
  • if else പ്രസ്താവനയുടെ ഓരോ ശാഖയും അഭിപ്രായങ്ങൾ ഉപയോഗിച്ച് നിർവചിക്കാം. ഡിസ്റ്റൻസ് സെൻസർ ഒരു കോട്ടയെ കണ്ടെത്തിയാൽ, VR റോബോട്ട് ആ കോട്ടയെ തകർക്കാൻ ഓടിക്കണം; elseഒരു കോട്ടയെ കണ്ടെത്താൻ അത് തിരിയണം. അനുബന്ധ പ്രവർത്തനങ്ങളെ വിവരിക്കുന്ന അഭിപ്രായങ്ങളുമായി യോജിപ്പിക്കുന്നതിന് പ്രോജക്റ്റിന്റെ if, other ശാഖകൾ നീക്കുക. നിങ്ങളുടെ പ്രോജക്റ്റ് ഇപ്പോൾ ഇതുപോലെ ആയിരിക്കണം:

    def main():
    	# ഡിസ്റ്റൻസ് സെൻസർ ഒരു കാസിൽ കണ്ടെത്തുന്നുണ്ടോ?
    	
    	അവസ്ഥ:
    		ആണെങ്കിൽ # ഒരു ഡിസ്റ്റൻസ് സെൻസർ കണ്ടെത്തിയ ക്രാഷ് കാസിൽ
    		പാസ്
    		
    	മറ്റുള്ളവ:
    		# ഡിസ്റ്റൻസ് സെൻസർ
    		പാസ് ഉപയോഗിച്ച് ഒരു കാസിൽ കണ്ടെത്താൻ തിരിയുക

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