سؤال

لذلك أنا أعمل على لعبة تتريس كمشروع مدرسي في C. حصلت على مشكلة صغيرة مع الوضع التالي. في Tetris عندما يكمل المرء صف أفقي، يجب حذف الصف وكل شيء أعلى من الصف يجب أن يتحرك مكانا واحدا. الشيء الغريب حول التعليمات البرمجية هو أنه عند وضع كتلة على اليسار أو مركز اللوحة، يبقى الكتلةهناك مثل هذا ينبغي.ولكن عندما أضع كتلة على الجانب الأيمن من اللوحة، يتم حذفها على الفور. وضعت شفرة المصدر الخاصة بي أدناه حتى تتمكن من رؤية ما أتحدث عنه.

وظيفة checkfory (int ycheckup، int yp)

giveacodicetagpre.

الرئيسية:

giveacodicetagpre.

هل كانت مفيدة؟

المحلول

أنا لست متأكدا من السبب في مشاركتك في التحقق ()، لا يبدو أن هذا يرتبط بمنطق مسح صف.لن تؤذي تعليقات الزوجين، لذلك كنا نعرف بسهولة ما هو جزء من نقل الكتلة الناتجة، وما هو لتخليص صف بمجرد أن تكون القطعة في موضعها النهائي.

أعرف ما يبدو أنه خطأ في بيان إذا كان يبحث عن صف كامل - يعتمد على X، لكنه داخل حلقة زيادة X.يبدو لي أن الشيك سوف يعمل فقط بشكل صحيح على الحلقة الأولى، ويقرأ في السطر التالي من الكتل بعد ذلك.لذلك سيقوم كتلة وضعت على الجانب الأيمن بمقارنة هذه الكتلة والشيكات الثلاثة المتبقية موجودة ضد كتل في الصف التالي.

أعتقد أن لديك هدفين نهاية في غير محله، ويجب أن يكون أول حلقة مقابل X في القسم الأوسط مجرد سطر واحد يجعل نسخة ظل من الصف الحالي (سيتم نقله إذا لزم الأمر).

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top