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

പാക്കേജ് ഡാഷ് ചലഞ്ച്
ഈ വെല്ലുവിളിയിൽ, നിങ്ങളുടെ റോബോട്ടിനെ പാക്കേജുകൾ എടുത്ത് എത്രയും വേഗം ഒരു ലോഡിംഗ് ഡോക്കിലേക്ക് കൊണ്ടുവരാൻ പ്രോഗ്രാം ചെയ്യും!
വെല്ലുവിളി നിയമങ്ങൾ:
- റോബോട്ട് സ്റ്റാർട്ട് സോണിൽ നിന്നാണ് വെല്ലുവിളി ആരംഭിക്കേണ്ടത്.
- പാക്കേജുകൾ (അലുമിനിയം ക്യാനുകൾ) പുസ്തകങ്ങൾ, ക്ലോബോട്ടിന്റെ നഖം, ലോഡിംഗ് ഡോക്ക് എന്നിവയുമായി മാത്രമേ സമ്പർക്കത്തിൽ വരൂ.
- ഒരു പാക്കേജ് വെയർഹൗസ് ഗ്രൗണ്ടിൽ വീണാൽ, നിങ്ങൾ ഫീൽഡ് പുനഃസജ്ജമാക്കി വീണ്ടും ആരംഭിക്കണം.
- റോബോട്ട് നീങ്ങുമ്പോൾ തന്നെ ഓരോ ഓട്ടത്തിനുമുള്ള സമയം ആരംഭിക്കുന്നു.
- അവസാന പാക്കേജ് ലോഡിംഗ് ഡോക്കിൽ വീണാലുടൻ സമയം നിർത്തുന്നു.
- ഫീൽഡ് പുനഃസജ്ജമാക്കുമ്പോൾ, എല്ലാം ആരംഭിച്ച അതേ സ്ഥാനത്തേക്ക് തിരികെ കൊണ്ടുവരണം.
- തമാശയുള്ള!
അധ്യാപക നുറുങ്ങുകൾ
-
വെയർഹൗസിന് ഒരു പശ്ചാത്തല കഥയോ ഉദ്ദേശ്യമോ സൃഷ്ടിച്ചുകൊണ്ട് ഇടപഴകൽ വർദ്ധിപ്പിക്കുക! ഇത് എങ്ങനെയുള്ള വെയർഹൗസാണ്? വെയർഹൗസിൽ ഏതൊക്കെ തരം പാക്കേജുകളാണ് കാണപ്പെടുന്നത്? ആരുടെ ഉടമസ്ഥതയിലാണ് വെയർഹൗസ്?
-
കൂടുതൽ കാര്യക്ഷമമായി ക്യാനുകൾ കൊണ്ടുപോകാൻ അനുവദിക്കുന്ന വ്യത്യസ്ത വഴികളോ തന്ത്രങ്ങളോ സൃഷ്ടിക്കാൻ വിദ്യാർത്ഥികളെ അനുവദിക്കുക.
-
ഈ വെല്ലുവിളിയുടെ വിജയിയെ തീരുമാനിക്കാൻ (മത്സരാർത്ഥമായി സംഘടിപ്പിക്കുകയാണെങ്കിൽ) പൂർത്തിയാകുന്നതുവരെയുള്ള സമയം മാത്രമല്ല, മറ്റ് ടീമുകളുടെ പരിഹാരങ്ങൾ വിദ്യാർത്ഥികൾക്ക് പരിഗണിക്കാൻ കഴിയുന്ന തരത്തിൽ ഉപയോഗിക്കുന്ന നാവിഗേഷൻ സാങ്കേതികതകളും താരതമ്യം ചെയ്യുക.
ടീച്ചർ ടൂൾബോക്സ്
-
പരിഹാരം
വിദ്യാർത്ഥികളെ വിലയിരുത്തുന്നതിനുള്ള ഒരു പ്രോഗ്രാമിംഗ് റൂബ്രിക് ഇവിടെകാണാം
വെല്ലുവിളിക്കുള്ള ഒരു സാധ്യമായ പരിഹാരമാണ് താഴെ കൊടുത്തിരിക്കുന്നത്. റോബോട്ടിന്റെ ആരംഭ സ്ഥാനവും തിരഞ്ഞെടുക്കുന്ന പാതയും അനുസരിച്ച് പരിഹാരങ്ങൾ വ്യത്യാസപ്പെടാം. എല്ലാ പാക്കേജുകളും നീക്കുന്നതിലേക്ക് നയിച്ചേക്കാവുന്ന ഒന്നിലധികം പാതകളുണ്ട്.
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, ഡിഗ്രി);
}