Skip to main content

പാക്കേജ് ഡാഷ് ചലഞ്ച് - സി++

താഴെ ഇടത് മൂലയിൽ ലോഡിംഗ് ഡോക്ക്, ക്യാൻ പ്ലേസ്‌മെന്റിനായി മൂന്ന് ഏരിയകൾ, മുകളിൽ വലത് കോണിലുള്ള സ്റ്റാർട്ട് ഏരിയ, അതിനുള്ളിൽ ഒരു ക്ലോബോട്ട് എന്നിവ കാണിക്കുന്ന പാക്കേജ് ഡാഷ് ചലഞ്ചിനായുള്ള സാമ്പിൾ ലേഔട്ട്.

വലതുവശത്തുള്ള 'സ്റ്റാർട്ട്' ഏരിയയിൽ ഒരു റോബോട്ടിനെ പ്രതിനിധീകരിച്ചിരിക്കുന്നതായി കാണിക്കുന്ന ഒരു റോബോട്ടിക് മത്സര ഫീൽഡിന്റെ ഗ്രിഡ് ലേഔട്ട്. ഫീൽഡിൽ ഇടതുവശത്ത് ഒരു 'ലോഡിംഗ് ഡോക്ക്' ഏരിയയും ഫീൽഡിലുടനീളം വിതരണം ചെയ്തിരിക്കുന്ന ഒരു പുസ്തകത്തിന്റെ മുകളിൽ സ്ഥാപിച്ചിരിക്കുന്ന ഒരു ക്യാനിന്റെ ചിത്രം ഉൾക്കൊള്ളുന്ന മൂന്ന് ചെറിയ സോണുകളും ഉൾപ്പെടുന്നു. ചെറിയ സോണുകളിലെ വസ്തുക്കളുമായി റോബോട്ട് ഇടപഴകുകയും അവയെ ലോഡിംഗ് ഡോക്കിലേക്ക് കൊണ്ടുപോകുകയും ചെയ്യേണ്ടി വന്നേക്കാവുന്ന ഒരു ടാസ്‌ക് ഓറിയന്റഡ് അന്തരീക്ഷം സൃഷ്ടിക്കുന്നതിനാണ് സോണുകൾ ക്രമീകരിച്ചിരിക്കുന്നത്.

പാക്കേജ് ഡാഷ് ചലഞ്ച്

ഈ വെല്ലുവിളിയിൽ, നിങ്ങളുടെ റോബോട്ടിനെ പാക്കേജുകൾ എടുത്ത് എത്രയും വേഗം ഒരു ലോഡിംഗ് ഡോക്കിലേക്ക് കൊണ്ടുവരാൻ പ്രോഗ്രാം ചെയ്യും!

വെല്ലുവിളി നിയമങ്ങൾ:

  • റോബോട്ട് സ്റ്റാർട്ട് സോണിൽ നിന്നാണ് വെല്ലുവിളി ആരംഭിക്കേണ്ടത്.
  • പാക്കേജുകൾ (അലുമിനിയം ക്യാനുകൾ) പുസ്തകങ്ങൾ, ക്ലോബോട്ടിന്റെ നഖം, ലോഡിംഗ് ഡോക്ക് എന്നിവയുമായി മാത്രമേ സമ്പർക്കത്തിൽ വരൂ.
    • ഒരു പാക്കേജ് വെയർഹൗസ് ഗ്രൗണ്ടിൽ വീണാൽ, നിങ്ങൾ ഫീൽഡ് പുനഃസജ്ജമാക്കി വീണ്ടും ആരംഭിക്കണം.
  • റോബോട്ട് നീങ്ങുമ്പോൾ തന്നെ ഓരോ ഓട്ടത്തിനുമുള്ള സമയം ആരംഭിക്കുന്നു.
  • അവസാന പാക്കേജ് ലോഡിംഗ് ഡോക്കിൽ വീണാലുടൻ സമയം നിർത്തുന്നു.
  • ഫീൽഡ് പുനഃസജ്ജമാക്കുമ്പോൾ, എല്ലാം ആരംഭിച്ച അതേ സ്ഥാനത്തേക്ക് തിരികെ കൊണ്ടുവരണം.
  • തമാശയുള്ള!

അധ്യാപക നുറുങ്ങുകൾ ഐക്കൺ അധ്യാപക നുറുങ്ങുകൾ

  • വെയർഹൗസിന് ഒരു പശ്ചാത്തല കഥയോ ഉദ്ദേശ്യമോ സൃഷ്ടിച്ചുകൊണ്ട് ഇടപഴകൽ വർദ്ധിപ്പിക്കുക! ഇത് എങ്ങനെയുള്ള വെയർഹൗസാണ്? വെയർഹൗസിൽ ഏതൊക്കെ തരം പാക്കേജുകളാണ് കാണപ്പെടുന്നത്? ആരുടെ ഉടമസ്ഥതയിലാണ് വെയർഹൗസ്?

  • കൂടുതൽ കാര്യക്ഷമമായി ക്യാനുകൾ കൊണ്ടുപോകാൻ അനുവദിക്കുന്ന വ്യത്യസ്ത വഴികളോ തന്ത്രങ്ങളോ സൃഷ്ടിക്കാൻ വിദ്യാർത്ഥികളെ അനുവദിക്കുക.

  • ഈ വെല്ലുവിളിയുടെ വിജയിയെ തീരുമാനിക്കാൻ (മത്സരാർത്ഥമായി സംഘടിപ്പിക്കുകയാണെങ്കിൽ) പൂർത്തിയാകുന്നതുവരെയുള്ള സമയം മാത്രമല്ല, മറ്റ് ടീമുകളുടെ പരിഹാരങ്ങൾ വിദ്യാർത്ഥികൾക്ക് പരിഗണിക്കാൻ കഴിയുന്ന തരത്തിൽ ഉപയോഗിക്കുന്ന നാവിഗേഷൻ സാങ്കേതികതകളും താരതമ്യം ചെയ്യുക.

ടീച്ചർ ടൂൾബോക്സ് ഐക്കൺ ടീച്ചർ ടൂൾബോക്സ് - പരിഹാരം

വിദ്യാർത്ഥികളെ വിലയിരുത്തുന്നതിനുള്ള ഒരു പ്രോഗ്രാമിംഗ് റൂബ്രിക് ഇവിടെകാണാം

വെല്ലുവിളിക്കുള്ള ഒരു സാധ്യമായ പരിഹാരമാണ് താഴെ കൊടുത്തിരിക്കുന്നത്. റോബോട്ടിന്റെ ആരംഭ സ്ഥാനവും തിരഞ്ഞെടുക്കുന്ന പാതയും അനുസരിച്ച് പരിഹാരങ്ങൾ വ്യത്യാസപ്പെടാം. എല്ലാ പാക്കേജുകളും നീക്കുന്നതിലേക്ക് നയിച്ചേക്കാവുന്ന ഒന്നിലധികം പാതകളുണ്ട്.

int main() {
  // റോബോട്ട് കോൺഫിഗറേഷൻ ആരംഭിക്കുന്നു. നീക്കം ചെയ്യരുത്!
  vexcodeInit();

  // Claw മോട്ടോർ സുരക്ഷിതമായി പ്രവർത്തിപ്പിച്ച് ആദ്യത്തെ പാക്കേജ് എടുക്കുക
  ClawMotor.setTimeout(2, seconds);
  Drivetrain.driveFor(forward, 900, mm);
  Drivetrain.turnFor(right, 90, degrees);
  ArmMotor.spinFor(forward, 315, degrees);
  ClawMotor.spinFor(reverse, 180, degrees);
  Drivetrain.driveFor(forward, 215, mm);
  ClawMotor.spinFor(forward, 120, degrees);

  // ആദ്യ പാക്കേജ് ഡ്രോപ്പ് ചെയ്യാൻ ലോഡിംഗ് ഡോക്കിലേക്ക് ഡ്രൈവ് ചെയ്യുക
  Drivetrain.driveFor(reverse, 110, mm);
  Drivetrain.turnFor(right, 90, degrees);
  Drivetrain.driveFor(forward, 920, mm);
  Drivetrain.turnFor(left, 90, degrees);
  Drivetrain.driveFor(മുന്നോട്ട്, 2300, mm);
  Drivetrain.turnFor(ഇടത്, 90, ഡിഗ്രി);
  Drivetrain.driveFor(മുന്നോട്ട്, 750, mm);
  ArmMotor.spinFor(മുന്നോട്ട്, 315, ഡിഗ്രി);
  ClawMotor.spinFor(മുന്നോട്ട്, 120, ഡിഗ്രി);

  // രണ്ടാമത്തെ പാക്കേജ് എടുക്കുക
  Drivetrain.driveFor(മുന്നോട്ട്, 200, mm);
  Drivetrain.turnFor(ഇടത്, 170, ഡിഗ്രി);
  Drivetrain.driveFor(മുന്നോട്ട്, 900, mm);
  Drivetrain.turnFor(വലത്, 90, ഡിഗ്രി);
  Drivetrain.driveFor(മുന്നോട്ട്, 2300, mm);
  ArmMotor.spinFor(മുന്നോട്ട്, 315, ഡിഗ്രി);
  ClawMotor.spinFor(മുന്നോട്ട്, 120, ഡിഗ്രി);

  // രണ്ടാമത്തെ പാക്കേജ് ഇറക്കാൻ ലോഡിംഗ് ഡോക്കിലേക്ക് ഡ്രൈവ് ചെയ്യുക
  Drivetrain.driveFor(മുന്നോട്ട്, 900, mm);
  Drivetrain.turnFor(വലത്, 90, ഡിഗ്രി);
  Drivetrain.driveFor(മുന്നോട്ട്, 960, mm);
  ArmMotor.spinFor(മുന്നോട്ട്, 315, ഡിഗ്രി);
  ClawMotor.spinFor(മുന്നോട്ട്, 120, ഡിഗ്രി);

  // മൂന്നാമത്തെ പാക്കേജ് എടുക്കുക
  Drivetrain.driveFor(മുന്നോട്ട്, 150, mm);
  Drivetrain.turnFor(ഇടത്, 90, ഡിഗ്രി);
  ArmMotor.spinFor(മുന്നോട്ട്, 315, ഡിഗ്രി);
  Drivetrain.driveFor(മുന്നോട്ട്, 490, mm);
  ClawMotor.spinFor(മുന്നോട്ട്, 120, ഡിഗ്രി); 

  // മൂന്നാമത്തെ പാക്കേജ് ഡ്രോപ്പ് ചെയ്യാൻ ലോഡിംഗ് ഡോക്കിലേക്ക് ഡ്രൈവ് ചെയ്യുക
  Drivetrain.driveFor(റിവേഴ്സ്, 490, mm);
  Drivetrain.turnFor(വലത്, 90, ഡിഗ്രി);
  Drivetrain.driveFor(മുന്നോട്ട്, 150, mm);
  ArmMotor.spinFor(റിവേഴ്സ്, 315, ഡിഗ്രി);
  ClawMotor.spinFor(റിവേഴ്സ്, 120, ഡിഗ്രി);
  
}