124 lines
6.4 KiB
Markdown
124 lines
6.4 KiB
Markdown
|
---
|
|||
|
title: Golf Code
|
|||
|
localeTitle: كود الجولف
|
|||
|
---
|
|||
|
![:triangular_flag_on_post:](https://forum.freecodecamp.com/images/emoji/emoji_one/triangular_flag_on_post.png?v=3 ": triangular_flag_on_post:") تذكر استخدام **`Read-Search-Ask`** إذا واجهتك مشكلة. حاول إقران البرنامج ![:busts_in_silhouette:](https://forum.freecodecamp.com/images/emoji/emoji_one/busts_in_silhouette.png?v=3 ": busts_in_silhouette:") واكتب الكود الخاص بك ![:pencil:](https://forum.freecodecamp.com/images/emoji/emoji_one/pencil.png?v=3 ":قلم:")
|
|||
|
|
|||
|
### ![:checkered_flag:](https://forum.freecodecamp.com/images/emoji/emoji_one/checkered_flag.png?v=3 ":العلم متقلب:") شرح المشكلة:
|
|||
|
|
|||
|
في لعبة الجولف كل حفرة لها قيمة **اسمية** تعني متوسط عدد **ضربات** لاعب الجولف من المتوقع أن تغرق الكرة في حفرة لاستكمال اللعب. اعتمادا على مدى أعلى أو أقل من **السعر الأصلي** **السكتات الدماغية** الخاصة بك، وهناك لقب آخر.
|
|||
|
|
|||
|
سيتم تمرير الدالة **قدم المساواة** **والسكتات الدماغية** الحجج. يجب عليك إرجاع السلسلة الصحيحة وفقًا لهذا الجدول الذي يسرد الحدود بترتيب الأولوية؛ أعلى (أعلى) إلى أسفل (أدنى):
|
|||
|
|
|||
|
السكتات الدماغية إرجاع
|
|||
|
: --------- | : -------------
|
|||
|
1 | "حفرة واحدة!"
|
|||
|
<= par - 2 | "نسر"
|
|||
|
par - 1 | "بيردي"
|
|||
|
par | "الاسمية"
|
|||
|
par + 1 | "شبح"
|
|||
|
par + 2 | "بوجيه مزدوج" > = par + 3 | "اذهب للمنزل!"
|
|||
|
|
|||
|
سوف يكون **الاسمية** **والسكتات الدماغية** دومًا رقمية وإيجابية.
|
|||
|
|
|||
|
* تغيير الرمز أدناه `// Only change code below this line` وما فوق `// Only change code above this line` .
|
|||
|
* تأكد من أنك تقوم بتحرير داخل وظيفة `golfScore` .
|
|||
|
* سيكون عليك جعل الدالة تقوم بإرجاع نفس السلسلة بالضبط كما هو موضح في الجدول ، بناءً على قيمة المعلمات **par** **والحدود** التي يتم تمريرها إلى وظيفتك.
|
|||
|
|
|||
|
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 1
|
|||
|
|
|||
|
`+number -number` يمكن استخدامه لزيادة أو تقليل معلمة في حالتك.
|
|||
|
|
|||
|
> _حاول أن تحل المشكلة الآن_
|
|||
|
|
|||
|
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 2
|
|||
|
|
|||
|
يمكنك استخدام `if / else if` سلاسل لإرجاع قيم مختلفة في سيناريوهات مختلفة.
|
|||
|
|
|||
|
> _حاول أن تحل المشكلة الآن_
|
|||
|
|
|||
|
## ![:speech_balloon:](https://forum.freecodecamp.com/images/emoji/emoji_one/speech_balloon.png?v=3 ": speech_balloon:") تلميح: 3
|
|||
|
|
|||
|
تحكم في تدفق الدالة بناءً على ترتيب الجداول للأولوية - أعلى (أعلى) إلى أسفل (أدنى) لإرجاع قيم السلسلة المطابقة.
|
|||
|
|
|||
|
> _حاول أن تحل المشكلة الآن_
|
|||
|
|
|||
|
## تنبيه المفسد!
|
|||
|
|
|||
|
![علامة تحذير](//discourse-user-assets.s3.amazonaws.com/original/2X/2/2d6c412a50797771301e7ceabd554cef4edcd74d.gif)
|
|||
|
|
|||
|
**الحل في المستقبل!**
|
|||
|
|
|||
|
## ![:beginner:](https://forum.freecodecamp.com/images/emoji/emoji_one/beginner.png?v=3 ":مبتدئ:") الحل الأساسي للكود:
|
|||
|
|
|||
|
`function golfScore(par, strokes) {
|
|||
|
// Only change code below this line
|
|||
|
if (strokes == 1){
|
|||
|
return "Hole-in-one!";
|
|||
|
} else if (strokes <= par -2){
|
|||
|
return "Eagle";
|
|||
|
} else if (strokes == par -1) {
|
|||
|
return "Birdie";
|
|||
|
} else if (strokes == par) {
|
|||
|
return "Par";
|
|||
|
} else if (strokes == par +1) {
|
|||
|
return "Bogey";
|
|||
|
} else if (strokes == par +2) {
|
|||
|
return "Double Bogey";
|
|||
|
} else {
|
|||
|
return "Go Home!";
|
|||
|
}
|
|||
|
// Only change code above this line
|
|||
|
}
|
|||
|
// Change these values to test
|
|||
|
golfScore(5, 4);
|
|||
|
`
|
|||
|
|
|||
|
### شرح الشفرة:
|
|||
|
|
|||
|
* مقارنة **قدم المساواة** المعلمات **والسكتات الدماغية** لإرجاع القيم السلسلة المناسبة.
|
|||
|
* `if / else if` تم استخدام سلسلة للتحكم في التدفق.
|
|||
|
* السلسلة "Go Home!" يتم إرجاعها لكل حالة تكون فيها **الحدود** أكبر من أو تساوي **par + 3** .
|
|||
|
|
|||
|
## حل رمز بديل:
|
|||
|
|
|||
|
`var names = ["Hole-in-one!", "Eagle", "Birdie", "Par", "Bogey", "Double Bogey", "Go Home!"];
|
|||
|
function golfScore(par, strokes) {
|
|||
|
// Only change code below this line
|
|||
|
if (strokes == 1){
|
|||
|
return names[0];
|
|||
|
}
|
|||
|
else if (strokes <= par-2){
|
|||
|
return names[1];
|
|||
|
}
|
|||
|
else if (strokes == par -1){
|
|||
|
return names[2];
|
|||
|
}
|
|||
|
else if (strokes == par){
|
|||
|
return names[3];
|
|||
|
}
|
|||
|
else if (strokes == par +1){
|
|||
|
return names[4];
|
|||
|
}
|
|||
|
else if (strokes == par +2){
|
|||
|
return names[5];
|
|||
|
}
|
|||
|
else {return names[6];}
|
|||
|
// Only change code above this line
|
|||
|
}
|
|||
|
|
|||
|
// Change these values to test
|
|||
|
golfScore(5, 4);
|
|||
|
`
|
|||
|
|
|||
|
· تشغيل في [repl.it](https://repl.it/@AdrianSkar/Basic-JS-Golf-code)
|
|||
|
|
|||
|
\## شرح الكود نظرًا لأن لدينا بالفعل صفيفًا محددًا في `names` المتغيرات ، فيمكننا الاستفادة منه واستخدامه في عبارات الإرجاع باستخدام الفهارس (على سبيل المثال: `names[0] is the first one` ). بهذه الطريقة ، إذا احتجت في أي وقت إلى تغيير نتيجة معينة فلن تحتاج إلى البحث عنها داخل الوظيفة ، فستكون في البداية ، في الصفيف الخاص بك.
|
|||
|
|
|||
|
### مصادر
|
|||
|
|
|||
|
* [جولف](https://en.wikipedia.org/wiki/Golf)
|
|||
|
* [التحدي: تسلسل إذا كانت البيانات الأخرى](http://www.freecodecamp.com/challenges/chaining-if-else-statements)
|
|||
|
* [التحدي: مقارنة مع أكبر من المساواة إلى المشغل](http://www.freecodecamp.com/challenges/comparison-with-the-greater-than-equal-to-operator)
|
|||
|
* [التحدي: مقارنة مع أقل من المساواة في المشغل](http://www.freecodecamp.com/challenges/comparison-with-the-less-than-equal-to-operator)
|
|||
|
* ["Array" - _مرجع JavaScript الخاص بـ MDN_](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array)
|