الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

لعبة Snake بالجافا

بدأه herch في 19 سبتمبر 2009 · 15 رد · 1,532 مشاهدة · في JavaSE
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكــم ورحمـة الله وبركاتــه ،،

لأني حاليا أعاني من حالة إحباط وملل شديدين، فكرت أن أكتب لعبة Snake أشغل بها نفسي قليلا

لعبة Snake عندها سحر خاص، فكم لعبت بها في هاتفي القديم نوكيا، وعندما سرق مني أكثر ما حزنت عليه هو لعبة الSnake التي لم ألعبها منذ ذلك الحين

البرنامج بدأت فيه للتو، يعني مازال ينقصه الكثير، وبإذن الله سأضيف عليه تدريجيا، لكني أعرض ما كتبته لحد الآن حتى لا تتراكم الأمور

الثعبان بشكله الحالي بسيط جدا، فهو أولا ثعبان كسول :lol: ، لأنه لا يتحرك إلا بالضغط على أزرار التوجيه، وثانيا لا يوجد أي طعم ليلتهمه، لأنه عامل حمية غذائية :haha:

لنتكلم الآن عن الكود.

البرنامج في شكله الحالي مقسم إلى ثلاث أجزاء

الجزء الأول هو الكلاس Snake: قمت بتمثيل الثعبان على أنه مكون من رأس ومن ذيل، يعني الرأس والذيل كائنان منفصلان، وهما من صنف Rectangle


private List<Rectangle> tail;
	 private Rectangle head;

الجزء الثاني وهو الكلاس GameField وهي الكلاس المسؤولة عن الرسم، وهي ترث من JPanel

والجزء الثالث هو الMain

الكود في المرفقات، على شكل مشروع netbeans

ملف الجار موجود في المجلد dist

الخطوةالقادمة هي إضافة Timer لتحريك هذا التعبان الكسول :lol:

Snake.zip

#2

تمت إضافة الTimer، الآن الثعبان المسكين يتحرك على الرغم من أنفه :haha:

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

الكود مرفق

Snake_02.zip

#3

جميل بس هناك نقطتين يجب ان تنتبه لها.

1- عندما يكون الثعبان متجه الى اليسار (افقيا) لا يمكنه تغيير الاتجاه الى اليمين مباشرة.

2- يختفي الثعبان عندما يصل الى اطراف JFrame ،

بالتوفيق ...

#4

عندك حق، الثعبان لما يصل إلى طرف الJFrame يهرب بسرعة ويختفي... لأنه لا يحب التمارين الرياضية :lol:

سأحاول معالجة الأمرين معا، ومازال عدة أمور يجب إضافتها، لكن وحدة وحدة

#5

يا شيخ انتا قمة على قمة :lol:

ماشاء الله عليك ما شاء الله

ربي يوفقك ..بس لا تقلي مسوي اللعبة عشان تأجرها لمبرمجي الجافا يعيدو فيها بالعيد .. وخصوصي عنا كم شخص يحب الالعاب بالعيد

ربي يوفقك والله انك مبدع ولن اجرب اللعبة حتى تنتهي منها

بالتوفيق

الله معك

#6

ما رأيك لو تجرب حزمة المحرك الخاصة بي

بالمناسبة ما رأيك لو تساعدني في التطوير

(أحاول استغلالك) :lol:

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#7

فين هي القمة يا أخي شادي، مازلنا في السفح :lol: والقمة مختفية وراء الغيوم

بالنسبة لحزمتك يا علاء فسأحاول قراءة الكود أولا، لكني لن أستعملها هنا لأني لا أحرك مكونات Swing بل أرسم مباشرة في الJPanel باستعمال الGraphics

تم تعديل هذه المشاركة بواسطة herch في 19 سبتمبر 2009 في 14:33

#8

ماشاء الله عليك يا عصام , مجهود جميل و نحن في الخدمة , لكن يبدوا أنك لست بحاجة لذلك

#10

جميل جدا يا استاذ herch

فيه ملحوظة بسيطة

39615313.png

عندما يتلاقي مربعان من الثعبان تنتهي اللعبه بخسارة اللاعب

ممكن تعملها في مستوي اخر بحيث تكون اللعبه اكثر من مستوي

بالتوفيق :)

صــفــر

#11

كشفتني :unsure:

فعلا كنت أفكر في هذه النقطة وكيف أحلها

بالنسبة للمستويات فأيضا في بالي، في كل مستوى سرعة الثعبان تزداد وأيضا تظهر بعض المربعات في مكان اللعب والتي لا يجب لمسها

وكيف ظهر لك ثعباني الأليف؟؟ أليس لطيفا وجميلا :pwease:

#12

أليف :D

########

عندي اقتراح اخر

وهو جعل اللعبه جذابه أكثر بدلا من وضع الطعم مربعات لا تثمن ولا تغنِ من جوع :D

وضعها علي هيئة صور مثل موز وتفاح وبطيخ :D

أهم حاجة البطيخ ها :lol:

متضحكش علي الثعبان يعني ^_^

وان شاء الله في المراحل القادمه تقوم برسم الثعبان بشكل أفضل أيضا بدلا من مربعات ليست بداخلها اجهزة الهضم والتنفس وغيرها :D

بالتوفيق :)

صــفــر

#13
cIs.Falcon كتب:
وضعها علي هيئة صور مثل موز وتفاح وبطيخ :D

أهم حاجة البطيخ ها :lol:

يعني هو سيصبح ثعبان نباتي :lol:

#14

هيه شباب ممنوع الاستخفاف بعقلية رواد المنتدى

لا يوجد ثعبان نباتي

بالنسبة لموضوع تبديل المربعات بموز وتفاح

فكرة جيدة جداً :lol:

لنتكلم بجدية بعض الشيء

فأنا أكره أن أكون ثقيل الدم دائماً

قم بتقسيم الشاشة إلى مربعات

بهذا يمكنك تمثيل الشاشة في الكود على أساس أنها مصفوفة

ويسهل بالنسبة لك التعامل مع عملية التصادم

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

#15

فكرة جميلة فعلا

أفكر أن تكون مصفوفة boolean،

true تعني أن هذا المكان مملوء، و false تعني أنه فارغ

تم تعديل هذه المشاركة بواسطة herch في 20 سبتمبر 2009 في 22:58

#16

بالضبط هذا ما قصدته تماماً

:)

تحياتي

حزمة المحرك الإصدارة 0.8

أي أحد يجد أني ظلمته فليراسلني

وبإذن الله لو كان له حق سيأخذه

728x90.png

مواضيع مشابهة