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

توليد رقم عشوائي

بدأه Tammam_KD في 5 مارس 2011 · 7 رد · 698 مشاهدة · في قسم البرمجة بــ Javascript
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم شباب ......... ممكن حدا يقلي كيف بولد رقم عشوائي مؤلف من اربع خانات .... ولكن بشرط ان تكون كل خانة من الخانات الاربعة مختلفة عن بعضها البعض

مثلا توليد الرقم 9876 ولا خانة مثل الأخرى

ياريت منكم اتساعدوني

قل لمن يحمل هما ****** إن همــــا لا يدوم
:rolleyes: :rolleyes: :clapping: :rolleyes: :rolleyes:

مثلا تفنى المسـرة ***** هكذا تفنى الهموم

#2
<script type="text/javascript">
	var array_values = new Array(-2, -2, -2, -2);
	var count = 0;
	while (count < 4) {
		var x = Math.floor(Math.random() * 9);	//Get a random value from 0 to 9
		if (array_values.indexOf(x) == -1) {	//Tests if the value exists in the array
			array_values[count] = x;				//If not, add it to the array
			count++;
		}
	}
	alert(array_values);
</script>
#3

الطريقة التي اعمل بها مشابهة للطريقة التي قمت بطرحها اخي الكريم

أنا اخزن الرقم في مصفوفة واقوم بتوليد رقم من جديد وامرر هذا الرقم الجديد على كافة عناصر المصفوفة فلو كان موجودا اولد غيره واعيد التمرير ولو كان غير موجود اخزنه في المصفوفة

جربت الطريقة التي طرحتها واعطاني الخطأ التالي :

559504413.jpg

طبعا السطر 31 هو السطر الذي يحمل الكود التالي :

array_values[count] = x;

ارجو تعليل السبب علما ان indexOf غير مدعومة لدي .... لا يراها

هذا الكود الذي قمت بكتابته ............. المشكلة انه يتم الدخول ل if و else معا ....... مالسبب ؟؟؟؟

function rand() {
	var number = Math.round(Math.random()*10);
	while (number < 0 || number > 9) { 
		number = Math.round(Math.random()*10);
	}
	return number; 
}

function btn_Start_onclick()
{
    var arr =new Array();
    var x = rand();
    arr.push(x);
    //x = rand();
    while(arr.length <4)
    {   
        x = rand();
        for(var i = 0;i<arr.length;i++)
        {
            if( x == arr)
            {

                alert(x +" is doublcated value");
            }
            else
            {
                arr.push(x);

            }
        }
    }
    alert(arr);
}

تم تعديل هذه المشاركة بواسطة Tammam_KD في 5 مارس 2011 في 12:57

قل لمن يحمل هما ****** إن همــــا لا يدوم
:rolleyes: :rolleyes: :clapping: :rolleyes: :rolleyes:

مثلا تفنى المسـرة ***** هكذا تفنى الهموم

#4

تستعمل IE؟؟ الكود يشتغل في chrome & FF

على العموم جرب التالي

	function rand() {
		var number = Math.round(Math.random() * 9);
		return number; 
	}

	function exists(val, array_vals) {
		for(var i = 0; i < array_vals.length; i++) {
			if( val == array_vals) {
				return true
			}
		}
		return false;
	}

	function btn_Start_onclick() {
		var arr = new Array();
		while(arr.length < 4) {   
			x = rand();
			if (!exists(x, arr)) {
				arr.push(x);
			}
		}
		alert(arr);
	}

تم تعديل هذه المشاركة بواسطة herch في 5 مارس 2011 في 15:37

1
#5

مشكور جدا الكود اشتغل تمام .......... بس ممكن اتقلي السبب اللي خلى الكود الأول ما يشتغل؟؟؟

قل لمن يحمل هما ****** إن همــــا لا يدوم
:rolleyes: :rolleyes: :clapping: :rolleyes: :rolleyes:

مثلا تفنى المسـرة ***** هكذا تفنى الهموم

#6

كما قلت لك، الكود الأول يشتغل عندي، لذلك لا أدري ما سبب الخطأ الذي حصلت عليه.

IE غريب الأطوار smile.gif، ربما لا يدعم إضافة عناصر للمصفوفة باستعمال ال index، بل فقط باستعمال push.

#7

لم أقصد الكود الخاص بك ............... اقصد الكود الذي انا قمت بكتابته ......... حلقة وايل نظامية وحلقة فور ايضا

والشرط الذي قمت بكتابته ... لا يعاني من مشاكل ......... انا اعمل بالسي شارب ........ وأحاول تعلم الجافا سكريبت كوني اعمل بالasp.net ..........

وما ارغب به هو شرح ما حصل معي بالجافا لا أكثر

قل لمن يحمل هما ****** إن همــــا لا يدوم
:rolleyes: :rolleyes: :clapping: :rolleyes: :rolleyes:

مثلا تفنى المسـرة ***** هكذا تفنى الهموم

#8

في ال for loop، عندما تتحقق أن الرقم العشوائي موجود في المصفوفة، يجب أن تخرج من ال loop لتحصل على رقم عشوائي جديد، لكنك لم تكن تخرج من ال loop

ربما هذا هو المشكل

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