لعبة بايثون بلاك جاك - تمت الإشارة إليها قبل المهمة
-
26-12-2019 - |
سؤال
لذا، فإن التحدي الشخصي الذي أواجهه هو إنشاء لعبة بلاك جاك بسيطة باستخدام لغة بايثون.هذه هي الطريقة التي اتبعتها للقيام بذلك:
singlePlayerCard = random.choice(availableCards)
singlePlayerCard2 = random.choice(availableCards)
if(singlePlayerCard == [1,2,3,4,5,6,7,8,9,10]):
singlePlayerCardValue = singlePlayerCard
if(singlePlayerCard2 == [1,2,3,4,5,6,7,8,9,10]):
singlePlayerCard2Value = singlePlayerCard2
singlePlayerCardValueTotal = singlePlayerCardValue+singlePlayerCard2Value
print ("The total of your card values is %i"%singlePlayerCardValueTotal)
عندما يتعلق الأمر بطباعة singlePlayerCardValueTotal
يقول لي إما ذلك singlePlayerCardValue
أو singlePlayerCard2Value
تمت الإشارة إليه قبل التعيين.لقد أربكني الأمر بعض الشيء لأنني واجهت هذه المشكلة في الماضي مع برنامج بسيط آخر قمت بإنشائه ولكن البنية مختلفة هنا.وبصرف النظر عن المشكلة المذكورة أعلاه، كان يعمل بشكل جيد.وأيضًا، إذا كان لديك الوقت، يرجى إبلاغي بأي حلول أفضل لبعض المجالات إذا لزم الأمر.
كما هو الحال دائما، شكرا مقدما!:)
المحلول
كما لاحظت في تعليقك، فإن عبارة "تمت الإشارة إليه قبل التعيين" تعني أنك ذكرت متغيرًا قبل أن يتم إعطاؤه قيمة.
يبدو أن مشكلتك هي التالية:
if(singlePlayerCard == [1,2,3,4,5,6,7,8,9,10]):
singlePlayerCardValue = singlePlayerCard
منذ الخاص بك singlePlayerCard
أبدا يساوي القائمة [1,2,3,4,5,6,7,8,9,10]
, ، لن تقوم بتعيين قيمة للمتغير عندما يكون عبارة عن بطاقة أرقام.
ال ==
عامل التشغيل ليس هو الطريقة للتحقق مما إذا كانت القائمة تحتوي على قيمة.جرب هذا بدلاً من ذلك:
if(singlePlayerCard in [1,2,3,4,5,6,7,8,9,10]):
singlePlayerCardValue = singlePlayerCard