الحل الذي نشره أستاذنا الفاضل مبدع ورائع حقا, لكن بعد تجربتي للكود مرارا لاحظت بعض الأمور التي يجب تعديلها أو تغييرها وهذا إما لجعل اللعبة اكثر واقعية أو لتغطية جميع إحتمالات اللعب, دعنا نوضح الأمر:
1* إذا فاز اللاعب ببلاك جاك من البداية يجب أن لا يسحب الكمبيوتر أي بطاقة لأن اللعبة انتهت حتى لو كان مجموعه أقل من 17 (دائرة حمراء).
2* إذا تجاوز اللاعب مجموع نقاط 21 يجب أن لا يسحب الكمبيوتر أي بطاقة لأن اللعبة انتهت حتى لو كان مجموعه أقل من 17 (دائرة خضراء).
3* إذا سحب اللاعب بطاقات حتى جمع 21 نقطة يجب أن تنتهي اللعبة دون عرض رسالة سحب بطاقة أخرى لأن دور اللاعب بالفعل إنتهى وكذلك الكمبيوتر لا يسحب أي بطاقة (دائرة زرقاء).
4* إذا فاز الكمبيوتر ببلاك جاك من البداية يجب أن لا يسحب أي بطاقة لأن اللعبة انتهت (دائرة صفراء).
سبب هذه الأخطاء موضح في الصورة ذات علامة إكس, الشروط في الإطارين 1 و 2 لا تغطي العديد من إحتمالات اللعبة.
تم تصحيح الأخطاء وتعديل الشروط في الإطارين 1 و 2 والصورة ذات علامة الصح توضح الامر.
الصور ذات مربعات ملونة هي بعد تعديل الكود وتصحيح الاخطاء, كما تلاحظون تبدو اللعبة في أفضل نسخة وواقعية جدا.
لتصحيح الأخطاء أضف شروط تتحقق من مجموع نقاط اللاعب أصغر تماما من 21, تحقق من حالة بلاك جاك للاعب, تحقق من مجموع نقاط الكمبيوتر أقل تماما من 17 (الإطار2) وأيضا تحقق من مجموع نقاط اللاعب تساوي 21 (إطار1).
كان هذا بفضل إطلاعي على (العمليات المنطقية للكمبيوتر) أو ما يسمى ب (البوابات المنطقية ) انصحكم بالقراءة حول الموضوع فهو مهم جدا جدا…(and-or-not) وهي ببساطة
وأخيرا أعتذر عن الأطالة وارجو أن تستفيدوا من المنشور, والحمد لله رب العالمين.