Skip to main content

പാഠം 4: ആവർത്തിച്ചുള്ള പെരുമാറ്റങ്ങൾ

മുൻ പാഠത്തിൽ, VR റോബോട്ടിന് അവസ്ഥകൾ പരിശോധിക്കുന്നതിന് if സ്റ്റേറ്റ്മെന്റുകൾ എങ്ങനെ ഉപയോഗിക്കാമെന്ന് നിങ്ങൾ നിരീക്ഷിച്ചു. എന്നിരുന്നാലും, പ്രോജക്റ്റിന്റെ ഒഴുക്ക് കാരണം, if സ്റ്റേറ്റ്‌മെന്റുകളിലെ വ്യവസ്ഥകൾ ഒരിക്കൽ മാത്രമേ പരിശോധിക്കൂ. ഈ പാഠത്തിൽ, ഒരു അനന്തമായ ലൂപ്പിനെക്കുറിച്ചും അത് എങ്ങനെ ഡിസ്ക് മേസ് ചലഞ്ച് പരിഹരിക്കാൻ ഉപയോഗിക്കാമെന്നും നിങ്ങളെ പരിചയപ്പെടുത്തും.

മുൻ പേജിലെ അതേ പ്രോജക്റ്റ് ഫ്ലോയിൽ നാല് if സ്റ്റേറ്റ്‌മെന്റുകളും അമ്പടയാളങ്ങളും ഓരോ if സ്റ്റേറ്റ്‌മെന്റും പരിശോധിക്കുന്ന അവസ്ഥകളെ സൂചിപ്പിക്കുന്നു, കൂടാതെ True എന്ന് റിപ്പോർട്ട് ചെയ്യുന്ന ഒരേയൊരു സ്റ്റേറ്റ്‌മെന്റ് ഫ്രണ്ട് ഐ കളർ കണ്ടെത്തുന്നില്ല എന്നതാണ്, അതായത് റോബോട്ട് മുന്നോട്ട് പോകും.

പഠന ഫലങ്ങൾ

  • ലൂപ്പിനുള്ളിലെ പെരുമാറ്റങ്ങൾ അനന്തമായ ഉം ലൂപ്പും എന്നെന്നേക്കുമായി ആവർത്തിക്കുന്നുവെന്ന് തിരിച്ചറിയുക.
  • ഒരു പ്രോജക്റ്റിൽ അനന്തമായ ലൂപ്പും ഉപയോഗിക്കുന്നത് എന്തുകൊണ്ടാണെന്ന് വിവരിക്കുക.
  • അനന്തമായ ഉംലൂപ്പും ഉള്ളിൽ ഒന്നിലധികം if പ്രസ്താവനകളുള്ള ഒരു പ്രോജക്റ്റിലെ പ്രോജക്റ്റ് ഫ്ലോ വിവരിക്കുക.
  • പ്രസ്താവനകൾ അനന്തമായ ലൂപ്പുകളും ഉപയോഗിച്ച് ഉപയോഗിക്കുമ്പോൾ എന്തുകൊണ്ടാണെന്ന് വിശദീകരിക്കുക.

വ്യവസ്ഥകൾ ആവർത്തിച്ച് പരിശോധിക്കുന്നു

മുൻ പാഠത്തിൽ കണ്ടതുപോലെ, if സ്റ്റേറ്റ്മെന്റ് ഒരു അവസ്ഥ ഒരിക്കൽ മാത്രമേ പരിശോധിക്കൂ. if സ്റ്റേറ്റ്മെന്റുകളിൽ അടങ്ങിയിരിക്കുന്ന വ്യവസ്ഥകൾ ആവർത്തിച്ച് പരിശോധിക്കണമെങ്കിൽ, പ്രോജക്റ്റ് ആരംഭത്തിലേക്ക് വീണ്ടും വീണ്ടും ലൂപ്പ് ചെയ്യേണ്ടതുണ്ട്. ഇത് ചെയ്യുന്നതിന്, അനന്തമായ ഉംലൂപ്പും ആവശ്യമാണ്.

ശരിയാണെങ്കിൽ:
	കാത്തിരിക്കുക (5, MSEC)

ഒരു അനന്തമായ ലൂപ്പ്, ലൂപ്പ് എപ്പോഴും True ആയി വിലയിരുത്തുന്ന ഒരു അവസ്ഥ ഉപയോഗിക്കുന്നു. കണ്ടീഷൻ True ആകുമ്പോൾ ലൂപ്പുകൾ ലൂപ്പിന്റെ ബോഡി എക്സിക്യൂട്ട് ചെയ്യുമ്പോൾ, ലൂപ്പിനുള്ളിലെ കമാൻഡുകൾ അനന്തമായി ആവർത്തിക്കുന്നു.

അനന്തമായ വേളയിൽലൂപ്പും ഡിസ്ക് മെയ്സ് പ്രശ്നവും

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

ഇവിടെയുള്ള ഇൻഡന്റേഷൻ ശ്രദ്ധിക്കുക. if സ്റ്റേറ്റ്‌മെന്റുകളെല്ലാം അനന്തമായ ലൂപ്പിലും ലൂപ്പിലും ഇൻഡന്റ് ചെയ്‌തിരിക്കുന്നു. wait കമാൻഡ് ഉപയോഗിച്ച് ഇൻഫിനിറ്റ് ലൂപ്പും അവസാനിക്കുന്നു.

def main():
    while True:
        
        # ഫ്രണ്ട് ഐ പച്ച നിറത്തിൽ കാണുന്നുവെങ്കിൽ വലത്തേക്ക് തിരിയുക
        front_eye.detect(GREEN):
            drivetrain.turn_for(RIGHT, 90, DEGREES)

        # ഫ്രണ്ട് ഐ നീല നിറത്തിൽ കാണുന്നുവെങ്കിൽ ഇടത്തേക്ക് തിരിയുക
        front_eye.detect(BLUE):
            drivetrain.turn_for(LEFT, 90, DEGREES)

        # ഫ്രണ്ട് ഐ ചുവപ്പ് നിറത്തിൽ കാണുന്നുവെങ്കിൽ നിർത്തുക
        front_eye.detect(RED) ആണെങ്കിൽ: 
            drivetrain.stop()

        # ഫ്രണ്ട് ഐ ഒന്നും കാണുന്നില്ലെങ്കിൽ മുന്നോട്ട് ഡ്രൈവ് ചെയ്യുക
        front_eye.detect(NONE) ആണെങ്കിൽ: 
            drivetrain.drive(FORWARD)

        wait(5, MSEC)

മുൻ പാഠത്തിലെ പ്രോജക്റ്റിൽ, if സ്റ്റേറ്റ്മെന്റുകളിലെ വ്യവസ്ഥകൾ ഒരിക്കൽ മാത്രമേ പരിശോധിച്ചിട്ടുള്ളൂ. if സ്റ്റേറ്റ്മെന്റുകളിലെ അവസ്ഥകൾ ഒരിക്കൽ മാത്രമേ പരിശോധിച്ചിട്ടുള്ളൂ എന്നതിനാൽ, പ്രോജക്റ്റിന്റെ തുടക്കത്തിൽ നിറം കണ്ടെത്താത്ത അവസ്ഥ ശരിയാണെന്ന് റിപ്പോർട്ട് ചെയ്തിരുന്നതിനാൽ VR റോബോട്ട് എന്നെന്നേക്കുമായി മുന്നോട്ട് പോയി.

ഇപ്പോൾ അനന്തമായ while ലൂപ്പ് ചേർത്തിരിക്കുന്നതിനാൽ, if സ്റ്റേറ്റ്മെന്റുകളുടെ ഓരോ അവസ്ഥയും ആവർത്തിച്ച് പരിശോധിക്കപ്പെടും.

  • ഇൻഫിനിറ്റ്ലൂപ്പിന്റെ അവസ്ഥ ലൂപ്പിന്റെ അവസ്ഥ എപ്പോഴും ശരിയാണ്, അതിനാൽ ഇൻഫിനിറ്റ്ലൂപ്പിനുള്ളിലെ കോഡ് ലൂപ്പ് എപ്പോഴും എക്സിക്യൂട്ട് ചെയ്യും. പ്രോജക്റ്റ് പ്രവർത്തിക്കുമ്പോൾ if സ്റ്റേറ്റ്മെന്റുകളുടെ അവസ്ഥകൾ ഇത് തുടർച്ചയായി പരിശോധിക്കും. 
    • ലൂപ്പിന്റെഉള്ളിൽ' ഇൻഡന്റേഷൻ ഉപയോഗിച്ചാണ് ഓർമ്മിക്കുക.
  • പ്രോജക്റ്റിന്റെ ഒഴുക്കിനിടയിൽ, if സ്റ്റേറ്റ്മെന്റിന്റെ അവസ്ഥ True ആണെങ്കിൽ, if സ്റ്റേറ്റ്മെന്റിനുള്ളിലെ കമാൻഡുകൾ എക്സിക്യൂട്ട് ചെയ്യപ്പെടുന്നു. if സ്റ്റേറ്റ്മെന്റിന്റെ അവസ്ഥ False ആണെങ്കിൽ, if സ്റ്റേറ്റ്മെന്റിനുള്ളിലെ കമാൻഡുകൾ എക്സിക്യൂട്ട് ചെയ്യപ്പെടുന്നില്ല, കൂടാതെ പ്രോജക്റ്റിന്റെ ഫ്ലോ അടുത്ത കമാൻഡിലേക്ക് തുടരും. ഒരു പ്രത്യേക നിറം തിരിച്ചറിഞ്ഞാൽ തിരിയുകയോ നിർത്തുകയോ പോലുള്ള വ്യതിരിക്തമായ പെരുമാറ്റങ്ങൾ നടത്താൻ ഇത് VR റോബോട്ടിനെ പ്രാപ്തമാക്കുന്നു.
  • സ്റ്റേറ്റ്‌മെന്റുകൾ അനന്തമായ ലൂപ്പുകളും ഉപയോഗിച്ച് ഉപയോഗിക്കുകയാണെങ്കിൽ, വ്യവസ്ഥകൾ നിരന്തരം പരിശോധിക്കുന്നുണ്ടെന്ന് ഉറപ്പാക്കാൻ, ലൂപ്പിനുള്ളിലെ ifസ്റ്റേറ്റ്‌മെന്റുകളുടെ പ്രോജക്റ്റ് ഫ്ലോയെ അടിസ്ഥാനപരമായി സംയോജിപ്പിക്കുന്നു.

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