ملخص - الحسابات البسيطة
جزء من قسم Fundamentals في رحلة Dart على Coddy — الدرس 21 من 94.
التحدي
سهلأنت تقوم بتطوير آلة حاسبة بسيطة لنتائج الألعاب تتبع تقدم اللاعب عبر مستويات مختلفة. اتبع هذه الخطوات بعناية لإنشاء برنامجك:
الخطوة 1: تهيئة المتغيرات
- قم بإنشاء متغير صحيح (integer) يسمى
playerScoreواضبط قيمته على 100 - قم بإنشاء متغير صحيح يسمى
currentLevelواضبط قيمته على 5
الخطوة 2: حساب إحصائيات اللعبة
قم بحساب وتخزين هذه القيم في متغيرات جديدة:
- مكافأة المستوى (Level Bonus): اضرب المستوى الحالي في 20 وقم بتخزين النتيجة في متغير يسمى
levelBonus - تعزيزات القوة المتاحة (Power-ups Available): تكلفة كل تعزيز قوة هي 25 نقطة. استخدم القسمة الصحيحة (
~/) لمعرفة عدد تعزيزات القوة الكاملة التي يمكن للاعب شراؤها من رصيده الحالي. قم بتخزين ذلك فيpowerUps - النقاط المتبقية (Remaining Points): استخدم عامل باقي القسمة (
%) لمعرفة عدد النقاط المتبقية بعد شراء جميع تعزيزات القوة الممكنة. قم بتخزين ذلك فيremainingPoints
الخطوة 3: تحديث نتيجة اللاعب والمستوى
- أضف مكافأة المستوى إلى نتيجة اللاعب باستخدام عامل التعيين
+= - قم بزيادة المستوى الحالي بمقدار 1 باستخدام عامل الزيادة القبلية (
++currentLevel) وقم بتخزين هذه القيمة الجديدة في متغير يسمىnewLevel - اطرح 15 نقطة من نتيجة اللاعب باستخدام عامل التعيين
-= - ضاعف نتيجة اللاعب بضربها في 2 باستخدام عامل التعيين
*=
الخطوة 4: عرض النتائج
جمل الطباعة (print statements) متوفرة بالفعل في الكود. لا تقم بتعديلها. مهمتك هي ملء تعريفات المتغيرات والحسابات الناقصة أعلاه بحيث يتطابق المخرج تماماً.
ملاحظة: إحدى جمل الطباعة المتوفرة تعرض playerScore / 1.5، والتي تجري قسمة عادية (غير صحيحة) وتنتج نتيجة عشرية. هذا أمر متوقع — المخرج لهذا السطر سيكون 246.66666666666666.
هام: تأكد من إجراء حساباتك بالترتيب الدقيق المحدد أعلاه، حيث أن كل خطوة تؤثر على الخطوة التي تليها.
جرّب بنفسك
void main() {
// تهيئة درجة اللاعب والمستوى
int playerScore = ?;
int currentLevel = ?;
// حساب مكافأة المستوى، والتعزيزات، والنقاط المتبقية
int levelBonus = ?;
int powerUps = ?;
int remainingPoints = ?;
// إضافة مكافأة المستوى إلى الدرجة باستخدام اختصار التعيين
?;
// زيادة المستوى وتخزين المستوى الجديد
int newLevel = ?;
// إنقاص الدرجة بمقدار 15 باستخدام اختصار التعيين
playerScore ?;
// حساب الدرجة النهائية (الضرب في 2)
playerScore ?;
// طباعة النتائج
print('Initial score: 100');
print('Level bonus: $levelBonus');
print('Available power-ups: $powerUps');
print('Remaining points: $remainingPoints');
print('New level: $newLevel');
print('Score after bonus and penalty: ${playerScore / 1.5}');
print('Final score with multiplier: $playerScore');
}جميع دروس Fundamentals
4المعاملات - الجزء الثاني
معاملات المقارنةالمعامل المنطقي ANDالمعامل المنطقي ORالمعامل المنطقي NOTمعاملات فحص النوعملخص - إجراء المقارنات7التعامل مع النصوص (Strings)
دمج النصوص (String Concatenation)تضمين النصوص (String Interpolation)النصوص متعددة الأسطر (Multi-line Strings)خصائص النصوص (String Properties)دوال النصوص الأساسية (String Methods)10المجموعات - أساسيات الخرائط
ما هي الخرائط؟إنشاء خريطةالوصول إلى القيم عبر المفتاحأزواج المفتاح والقيمةالحصول على حجم الخريطةالحصول على المفاتيحالحصول على القيمالتحقق من وجود مفتاح2المتغيرات وأنواع البيانات الأساسية
ما هي المتغيرات؟النصوص (Strings)الأعداد الصحيحة (int)الأعداد العشرية (double)القيم المنطقية (bool)استنتاج النوع باستخدام 'var'المتغيرات النهائية (Final)المتغيرات الثابتة (Constant)قواعد التسميةأساسيات الـ Null Safetyملخص - التصريح عن المتغيرات8مسار التحكم - الحلقات التكرارية
حلقة 'for' التكراريةحلقة 'while' التكراريةحلقة 'do-while' التكراريةاستخدام 'break' في الحلقات التكراريةاستخدام 'continue' في الحلقات التكراريةملخص - تكرار الكود البرمجي3المعاملات - الجزء الأول
المعاملات الحسابيةالقسمة الصحيحةمعامل باقي القسمة (Modulo)الزيادة والنقصاناختصارات التعيينملخص - الحسابات البسيطة6تدفق التحكم - اتخاذ القرار
جملة 'if'جملة 'else'جملة 'else if'ملخص - القرارات البسيطةجمل 'if' المتداخلةجملة 'switch'9المجموعات - أساسيات القوائم
ما هي القوائم؟إنشاء قائمةالوصول عبر الفهرسالحصول على طول القائمةإضافة عناصرإزالة عناصرالتحقق مما إذا كانت القائمة فارغةالتكرار عبر القائمة