النتائج 1 إلى 10 من 10

الموضوع: طريقة عمل لعبه Snake

  1. #1
    تقنى مشارك الصورة الرمزية TopCoder_FCI
    تاريخ التسجيل
    Jun 2008
    المشاركات
    48
    معدل تقييم المستوى
    0

    افتراضي طريقة عمل لعبه Snake


    End Google Ads 201810 - BS.net 01 --> السلام عليكم ورحمه الله وبركاته

    ازيكو يا جماعه ... كل سنه وانتم طيبين ...
    أنا انهاردة هديلكو شويه اممممم هما شويه حلوين يعنى
    فى طريقه عمل ال ( اكيد مش بسبوسه :P (
    طريقه عمل ال سناك او ما تسمى بال ثعبان

    تعالو كدة نفكر
    يعنى اية سناك ...بلاش يعنى اية
    طب اية هى هيئه ال سناك ... عبارة عن اية ...؟؟؟
    انا من وجهة نظرى شفت ان ال سناك عبارة عن شويه حاجات مرتبطه ببعضها وبتتحرك
    هتقولى ازاى ؟

    هقولك دلوقتى ... لو جبت عقد مفكوك يعنى على هيئة خط مستقيم بالشكل دة
    00000000000000
    عبارة عن فصوص جنب بعضها وليها نفس الشكل
    طب اية رأيك تحرك العقد دة على الأرض مثلاً وشوف طريقه تحريكه
    هتلاقيه بياخد الباث ( المسار ) اللى انت اتحركت فيه ... من الآخر هتلاقيه
    Flexible
    طب ماهو ال سناك كدة فى الحقيقه بإختلاف
    ان اول فص فى العقد ( اقصد ال سناك ) عبارة عن رأس ال سناك
    واخر فص هو الذيل

    يبقى اتفقنا ان ال سناك عبارة عن حاجة واحدة بإختلاف شكل اول جزء واخر جزء

    طيب نسأل نفسنا سؤال ويمكن دة اهم جزء واخطر جزء فى ال سناك
    وهو
    ازى لما كنت بحرك العقد كان بيمشى على المسار اللى مشيت فيه ...؟؟؟ يعنى ازاى بيحتفظ بالمسار

    هقولك طريقه حلوة

    ما تيجى نجيب 10 زمايلنا ولا حتى 5 لأنى عارف انهم مش فاضيين
    ونقف طابور واحد
    ونخلى واحد لوحدة كدة واقف قدام هو اللى يحرك اول واحد يقوله روح او تعالى ادخل يمين ولا شمال اوك لحد كدة ..؟؟؟
    واحنا طبيعى هنمشى زى ما مشى اللى قدامنا
    احنا دلوقتى واقفين مش بنتحرك
    رقم 1 مشى يمين
    زى ما احنا قولنا كل واحد هياخد اتجاة حركته من اللى قدامه علطول اوك ؟؟
    حد فاهم حاجة ...؟؟ :-S
    هنفرض اننا واقفين على خط واحد بداية من نقطه
    x=10 , y=10
    لحد نقطه
    x=6 , y=10
    بالشكل دة
    00000
    دلوقتى قلت للأولانى اتحرك فوق حركه واحدة
    يبقى الأولانى هينقص من محور الصادات نقطه واحدة وهيبقى واقف عند نقطه
    x=10 , y=9
    واللى بعديه علطول هياخد النقطه اللى كان واقف عليها اللى قدامه ويقف هو فيها يبقى التانى هيبقى عند نقطه
    x=10 , y=10
    التالت هياخد النقطه اللى كان واقف عليها التانى ويقف هو فيها , هيبقى التالت عن نقطه
    x=9 , y=10
    وهكذا لحد ما يبقى الخامس واقف عند النقطه بتاعت الرابع عند النقطه
    x=7 , y=10
    بالشكل دة
    0
    0000
    حاول تتخيله كدة
    وانا عملتلك صورة توضحها احسن كمان

    SnakeImage



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

    دلوقتى اتفقنا ان كل جزء ليه مكان
    x,y
    ليه مثلاً لون
    ليه مثلاً صورة

    انا فى الجيم كنت عامل ستركشر صغير فيه الحاجات دى كلها

    This is the Structure Signature

    كود:
    struct PartialSnake
    {
    	int xPosition;
    	int yPosition;
    	char imageOfSnake;
    	int colorOfSnake ;
    	
    	PartialSnake(){}
    	
    	PartialSnake( int const & x , int const & y , int const & position , int const & color , char image );
    	
    	PartialSnake& operator = ( PartialSnake const & ) ;
    	
    	void updateSnake( );
    	
    	bool intersectedWith( PartialSnake const & );
    	
    };
    طب دلوقتى واحد هيسألنى هستفاد اية من الستركشر دة لوحدة
    هقوله لأ اكيد مش هسيبه كدة ماهو ما ينفعش اجيب دقيق واقول انا هعمل كيكه
    طب كيكه ازاى من غير مكوناتها ( اخواتنا البنات يفيدونا فى الموضوع دة (

    دلوقتى احنا عايزين نربط الأجزاء ببعضها
    طب ماهو فيه حاجة اسمها
    Array
    بس دة لو انت هتعمل سناك مش هيطول
    طب لو هيطول اممممممممم ...؟؟
    Vector , LinkedList , ArralyList ( in Java ).... Whatever you Choose ,The Concept is One.

    انا مثلاً استخدمت
    Vector
    هتقولى ليه هقولك العمليات فيه اسهل ... هتقولى بس الف يكتور لو طول عن حد معين هيبدأ يعمل
    Expande
    لنفسه هقولك اوك .. بس انا عارف ان عمر السايز بتاعى ما هيكبر فوق19 او20 فطبيعى مش هيعمل
    Expantion
    ممكن غيرى يفكر بطريقه تانيه ... الإختلاف فى ال ستركشر لا يفسد فى ال سناك قضيه
    بس الفيكتور كدة اسرعلى

    |-------------------------|
    | Set Data : O( 1 ) |
    | Retrieve Data : O( 1 ) |
    |-------------------------|

    انا عن نفسى عملت كلاس صغير يعبرلى عن ال سناك

    This is The Signature

    كود:
    class SnakeClass
    {
    	
    private: 
    	int xStartPosition;
        int yStartPosition;
    	
    	int colorOfSnake ;
    	
    	int playerScore ;
    	
    	bool isSnakeDead ;
    	
    	bool isAteXFood ;
    	
    	int	healthOfSnake ;
    	
    	static int MAX_SNAKE_LIFE ;
    	static int MAX_SNAKE_SIZE ;
    	
    public: 
    	vector<PartialSnake>* Snake ;
    	
    	int sizeOfSnake;
    	
    	SnakeClass( );
    	
    	SnakeClass( int xPosition , int yPosition , int color );
    	
    	bool intersectedWith( SnakeClass * const & targetSnake , int start = 1 );
    	
    	void killSnake();
    	
    	bool isDead()const;
    	
    	void setSnakeDead();
    
    	void setSnakeAlive();
    	
    	int getScore()const ;
    	
    	int getHealth()const ;
    	
    	void setHealth( int );
    	
    	void moveSnake( int const& x , int const& y , char const& image , bool isEatFood [] , bool & isDie , int& stateOfFinalMaze );
    	
    	void undoXFoodFlag();
    	
    	bool getXFoodFlag()const;
    	
    	void resetSnake( int xPosition , int yPosition );
    
    	void save( ofstream& );
    
    	void load( ifstream& , char image );
    	
    };
    دة كان بالنسبه لل سناك
    فاضل اخر حاجة وهو الكلاس اللى ب
    Implement 1 Snake || 2 Snakes

    SingleSnakeClass and DoubleSnakesClass

    ودة فيه ال
    Start
    اللى ببدأ اللعب منها وفيها شغل ال
    Threads


    بالنسبه لحاجة مهمه
    وهو التحكم فى اللعبه عن طريق الأسهم
    لأن ناس كتيـــــــــر سألتنى انت بتتحكم فيها ازاى
    الإجابه: انا لما جربت علشان اعرف الأسكى كود بتاع الأسهم
    لقيت حاجة غريبه
    ان الأسهم وبعض ال
    Key Like: Delete , Insert , PrintScreen , Page Up , F1 ,F2 , .... etc
    ليهم اتنين اسكى

    واحد بعرف منه انه جاى منين
    يعنى كى ( زرار ) عادى ولا سهم وزرار من ال
    F or Delete , insert.....

    بالنسبه للأسهم
    اول اسكى هو
    -32
    ودى صراحه مش عارف ليه سالب بس دة اللى لما كنت بجربها طلعتلى
    وال اسكى التانى هو ال
    Direction

    Arrow_Up 72
    Arrow_Down 80
    Arrow_Left 75
    Arrow_Right 77

    اكيد واحد هيسألنى ازاى اعمل الموضوع دة دة ياعم اتنين اسكى مش واحد
    هقولك حاجة لزيزة جداً

    you know The Header File ( Conio.h ) ??

    You Know "getch()" Function ... ??

    getch() Get One Character From The Screen and Returns It's as Character Representation ( char )

    ازاى اعرف الأسكى بتاع حرف

    كود:
    char anyChar;
    
    anyChar = getch();
    cout << (int)anyChar ;// This Prints The ASCII Representation
    اخر حاجة انى اظبط موضوع الأسهم بقى

    كود:
    char handleArrows , arrowDirection ;
    
    handleArrows = getch();
    
    if( (int)handleArrows == -32 )// This Input From Arrows or [ delete , insert , page up ... ]
    {
    	arrowDirection = getch();// Get The Direction
    	
    	switch( (int) arrowDirection )
    	{
    		//Cases of Arrows , Implement it As You Like;
    	}
    }
    تقريباً كدة خلصت فكرة ال سناك

    فاضل اهم حاجة انى ازاى اتعامل مع الكونسول
    Like Axis
    دى بقى هسيبكوا انتو تدوروا عليها ... انا مش مكسل والله اكتبها دى صغيرة موت
    بس احلى حاجة لما تدور على حاجة عايزها وتلاقيها
    لما هتلاقيها عمرك ما هتنساها
    انا الحاجات دى ماحدش علمهانى ... الحاجات دى تعليم نفسى
    ناهيك عن بدائيات بتاعت السى اللى الناس كلها بتعرفها

    اتمنى من الله ان اكون وفقت فى الشرح
    واى استفسار انا فى الخدمه

    Thanks to All

    This Explanation Made By "Mohamed Shabaan"

    Copyright © 2008 TopCoder.FCI All rights reserved.


    Mohamed Shabaan Mahmoud
    [ TopCoder ]
    Faculty of Computers and Information - Cairo University
    Computer Science Department

  • #2
    :: مشرفة سابقة :: الصورة الرمزية galaxy
    تاريخ التسجيل
    Jun 2008
    المشاركات
    373
    معدل تقييم المستوى
    281

    افتراضي رد: طريقة عمل لعبه Snake

    بسم الله ماشاء الله

    طريقة شرحك سهلة و بسيطة


    جزاك الله كل خير

  • #3
    elfr3on el3ashk الصورة الرمزية A7med Baraka
    تاريخ التسجيل
    Jun 2008
    الدولة
    Egypt - Cairo
    المشاركات
    4,695
    معدل تقييم المستوى
    10

    افتراضي رد: طريقة عمل لعبه Snake

    كلام جميل يا مان
    لينا رجعة أن شاء الله

  • #4
    تقنى مشارك الصورة الرمزية TopCoder_FCI
    تاريخ التسجيل
    Jun 2008
    المشاركات
    48
    معدل تقييم المستوى
    0

    افتراضي رد: طريقة عمل لعبه Snake

    MerC++ ya Galaxy
    wenta ya Barakwy MerC

    Mohamed Shabaan Mahmoud
    [ TopCoder ]
    Faculty of Computers and Information - Cairo University
    Computer Science Department

  • #5
    :: عضو مميز ::
    تاريخ التسجيل
    Aug 2008
    المشاركات
    617
    معدل تقييم المستوى
    319

    افتراضي رد: طريقة عمل لعبه Snake

    شرح جميل جدا مشكوووور يا مان

  • #6
    تقنى جديد
    تاريخ التسجيل
    Jul 2008
    المشاركات
    8
    معدل تقييم المستوى
    0

    افتراضي رد: طريقة عمل لعبه Snake

    Gazak allah kol 5er 3lshr7 al gamed da

  • #7
    تقنى جديد
    تاريخ التسجيل
    Nov 2008
    المشاركات
    5
    معدل تقييم المستوى
    0

    افتراضي رد: طريقة عمل لعبه Snake

    لو سمحتم ياجماعة لو في حد هنا متمكن في ++c
    يقدر يشرحلي for loopوتطبيقاتها بطريقة مبسطة وسهلة اكون شاكرة ليه جدا

  • #8
    تقنى جديد
    تاريخ التسجيل
    Dec 2008
    الدولة
    مصر
    المشاركات
    16
    معدل تقييم المستوى
    0

    افتراضي رد: طريقة عمل لعبه Snake

    شرح مبسط وجميييييل اد ايه بتفهم جدا اتمنى لك مستقبل رائع

  • #9
    تقنى جديد
    تاريخ التسجيل
    Jan 2009
    المشاركات
    11
    معدل تقييم المستوى
    0

    افتراضي رد: طريقة عمل لعبه Snake

    بارك الله فيك

  • #10
    Wa7ed Men el NaSS الصورة الرمزية wa7edmenelnass
    تاريخ التسجيل
    Jun 2008
    الدولة
    CMasterZ
    المشاركات
    260
    معدل تقييم المستوى
    249

    افتراضي رد: طريقة عمل لعبه Snake

    Gamed ya Man
    alf alf Shokr !
    CMasterZ...
    For Web Services
    Hosting, Domain, Design, Develop, VB Support
    منتديات سي ماسترز التقنية

  • معلومات الموضوع

    الأعضاء الذين يشاهدون هذا الموضوع

    الذين يشاهدون الموضوع الآن: 1 (0 من الأعضاء و 1 زائر)

    المواضيع المتشابهه

    1. مشاركات: 5
      آخر مشاركة: 01-16-2009, 06:10 PM
    2. لعبه : إيه السؤال اللي مش بتحب حد يسأله ليك ؟؟
      بواسطة yoyoabdo في المنتدى المنتدى الترفيهى
      مشاركات: 6
      آخر مشاركة: 01-13-2009, 12:14 AM
    3. شرح طريقة إنشاء منتدى من نوع php
      بواسطة keko_ferkeko في المنتدى العروض و التبادل الأعلانى و التجارى
      مشاركات: 1
      آخر مشاركة: 12-24-2008, 05:47 PM
    4. طريقة تركيب الاستايل
      بواسطة Lost في المنتدى ستايلات vb Styles
      مشاركات: 1
      آخر مشاركة: 10-16-2008, 11:34 AM
    5. طريقة فك الرمز السري للمحفظه
      بواسطة A7med Baraka في المنتدى الموبايل - الهاتف الجوال - mobiles
      مشاركات: 4
      آخر مشاركة: 09-16-2008, 12:50 AM

    الكلمات الدلالية لهذا الموضوع

    مواقع النشر (المفضلة)

    ضوابط المشاركة

    • لا تستطيع إضافة مواضيع جديدة
    • لا تستطيع الرد على المواضيع
    • لا تستطيع إرفاق ملفات
    • لا تستطيع تعديل مشاركاتك
    •  
    "وَقُل رَّبِّ زِدْنِي عِلْمًا"
    أعلانات نصية أستضافة , ريسيلر - Best Hosting | BarakaSoft Web Solutions

    BarakaSoft PageRank RSS RSS 2.0 XML MAP HTML 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 C/C++ | Java | C# | Network | Database | OS | Linux | Windows | Hacker & Security | Photoshop | Flash | Web Development | Free Programs | Mobile App | Free Java Course | Latest Technical News | Internet Programs | Antiviurse Programs | Graphics Programs | Network Programs | Portable Programs | vb Forums Development | Forums Development | CMS(Joomla-nuke-wordpress-mkportal...) | Photo | Anime |