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

تحريك صور بطريقة عشوائية Random

بدأه رحاب م في 10 نوفمبر 2013 · 7 رد · 1,553 مشاهدة · في Microsoft Visual C#.NET
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

بسم الله و الحمد لله و الصلاة و السلام على رسول الله
السلام عليكم و رحمة الله و بركاته
لو سمحتم أود مشروع خفيـــــــــف جدًا
على Microsoft Visual C# 2010

Windows Application

أريد كود الزر ليقوم بتحريك الثلاثة صور بطريقة عشوائية حتي تصل إحداها إلى نهاية الForm

ثم تظهر لنا رسالة Message box و يظهر فيها سواء pcx1 Win

أو pcx2 win أو pcx3 win أو equivalent و هو حسب النتيجة العشوائية
قد رفعت صورة تصميمي للForm لكني ما أحتاجه هو كود الزر Start Race و شكرًا

post-278722-0-63341300-1384030712_thumb.

post-278722-0-48855400-1384031210_thumb.

#2

السلام عليكم

 

قوم باستغلال الفئه Random لتحريك الصور

 

الفئه هذه تعود لنا برقم عشوائى

 
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WindowsFormsApplicationRace
{
    class RandomPosition
    {
        private Random _Randoms = new Random();

       
        private int _Min;
        private int _Max;
        public int Min
        {
            get { return _Min; }
            set { _Min = value; }
        }
     

        public int Max
        {
            get { return _Max; }
            set { _Max = value; }
        }
        public Random Randoms
        {
            get { return _Randoms; }
            set { _Randoms = value; }
        }

        public int GenerateRandom()
        {
            return Randoms.Next(Min,Max);
        }

    }
}

فى الزر Race Button _Click

جرب هذا الكود

  RandomPosition ObjR = new RandomPosition();
            ObjR.Max = this.Size.Width;
            ObjR.Min = 1;
            lbl1.Location = new System.Drawing.Point(ObjR.GenerateRandom(),lbl1.Location.Y);
            lbl2.Location = new System.Drawing.Point(ObjR.GenerateRandom(), lbl2.Location.Y);
            lbl3.Location = new System.Drawing.Point(ObjR.GenerateRandom(), lbl3.Location.Y);

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

 

 

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#3

كتبته بالفعل و قمت بتظبيط الكود على حسب ما قمت بتصميمه من الForm و كان بهذا الشكل
RandomPosition objR=new RandomPosition();
objR.Max=this.size.width;

objR.Min=1;
pcxmotor1.location=new system.drawing.point(objR.GenerateRandom(1,5);
و نفس كود 1 كررته مع 2 & 3 لكن لم يحدث شيء فهل يمكن إنشاء المشروع و عرضه لي في رد؟
عذرًا على الإرهاق

#4

أولاً: ما هي جهة الحركة؟

1. التحريك على المحور X

2. التحريك على المحور Y.

3. التحريك على المحورين X,Y.

 

ثانياً: ما هو القصد بالتحريك العشوائي؟

1. إعطاء سرعة ابتدائية عشوائية لكل صورة، لكي تتحرك على اساسها [الحركة للأمام فقط]؛ لأن القيم العشوائية مرة تكون كبيرة ومرة تكون صغير لذلك ستتقدم الصورة مرة وتتراجع مرة اخرى!

2.إعطاء سرعات مختلفة للصور في كل مرة،[الحركة للأمام، والسرعة في تزايد أو تناقص]

 

[يرجى توضيح المطلوب]

• • •


[ ربيّ احفظ سوريا الحبيبة]


oFOK7Kd.png

#5

لنفترض ان الحركة على المحور x وللامام دائما نعدل الكود السابق كالتالي

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WindowsFormsApplicationRace
{
    class RandomPosition
    {
        private Random _Randoms = new Random();

       
        private int _Min;
        private int _Max;
        public int Min
        {
            get { return _Min; }
            set { _Min = value; }
        }
     

        public int Max
        {
            get { return _Max; }
            set { _Max = value; }
        }
        public Random Randoms
        {
            get { return _Randoms; }
            set { _Randoms = value; }
        }

        public int GenerateRandom(int oldRnd ,int endRacepint)
        {
            int random=0;

            while (random < oldRnd) { 
                  random=Randoms.Next(_Min,_Max);
            }

            if (random > endRacepint)
            {
                return endRacepint;
            }
            else
            {
                return random;
            }
        }

    }
}
        private void button1_Click(object sender, EventArgs e)
        {
            RandomPosition ObjR = new RandomPosition();
            ObjR.Max = this.Size.Width;
            ObjR.Min = 1;
            lbl1.Location = new System.Drawing.Point(ObjR.GenerateRandom(lbl1.Location.X,600), lbl1.Location.Y);
            lbl2.Location = new System.Drawing.Point(ObjR.GenerateRandom(lbl2.Location.X,600), lbl2.Location.Y);
            lbl3.Location = new System.Drawing.Point(ObjR.GenerateRandom(lbl3.Location.X,600), lbl3.Location.Y);
          
        }
    }

WindowsFormsApplicationRace.rar

VB.NET and C# Comparison

http://www.harding.edu/fmccown/vbnet_csharp_comparison.html

002.gif

=-=-=-=-=-=-=
ذو العلم يشقى فى النعيم بعلمه .:. واخو الجهالة فى الشقاوة ينعم
=-=-=-=-=-=-=
يا من بدنياه اشتغل . قد غره طول الأمل . فالموت يأتى بغتة . والقبر صندوق العمل
=-=-=-=-=-=-=
ان لم تستطع ان تجد ما تفعله فافعل ما لم تسطع ان تجده

screen_shot_2011-05-19_at_12.44.49_pm.pn

#6

شكرًا بالفعل أنا أقصد الحركة تكون عشوائية إلى اليمين على المحور x
أما رأيك يا أ/Eng tareq Jehad في موضوع إني أعطي مقدار معين لحركة الصورة فكيف ؟ هكذا ستصل دااااائمًا صورة معينة سابقة لبقية الصور ؟
و لكنني أريدها تتغير في كل مرة عشواءيًا
و شكرًا يا أ/ SOLO.NET جاري المعاينة

#7

أختي الكريمة أقصد أن لديك خيارين لعمل الحركة.

1. إعطاء كل صورة سرعة معينة [يتم اختيارها عشوائيا] طبعاً المقصود بالسرعة مقدار الإزاحة على المحور X، مثلاً لو فرضنا أننا أعطينا سرعات عشوائية للصور الثلاث كالتالي:

الصورة الأولى [10]، طبعا 10 تعين [pixel 10]،

الصورة الثانية [8]

الصورة الثالثة [11].

[هذه القيم تولدت معنا عشوائياً، وبالطبع إذا قمنا بإعادة تشغيل البرنامج ستتغير هذه القيم]

 

لو فرضنا أن عرض النافذة [300 pixel]. فإن الصور ستصل للنهاية بالأوقات التالية.

الصورة الأولى في [30 ثانية]

الصورة الثانية في [37.5 ثانية]

الصورة الثالثة في [27 ثانية]

بالتالي فإن الرابح هو الصورة الأولى. هذا القصد بسرعة بدائية عشوائية لكل صورة.

 

2. أما الطريقة الثانية: فتقوم على اساس اضافية قيمة عشوائية

 من 1 إلى 10 مثلاً، ننشأ هذه القيمة لكل صورة ونضيفها على موضع X. وبالتالي سيكون الشكل أقرب للسباق العادي، حيث أن الصورة مرة تسرع ومرة تبطء [حسب القيمة العشوائية المضافة] ويتم الحال هكذا لكل الصور حتى تصل احداها للنهاية.

• • •


[ ربيّ احفظ سوريا الحبيبة]


oFOK7Kd.png

#8

عذرًا كنت فهمت خطأ بالأول
و حاليًا اتضح لي رأي حضرتك يا أستاذ Eng. Tareq Jehad

شكرًا للإيضاح

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…