עבור לתוכן

עזרה | מחלקה RANDOM

Featured Replies

פורסם

שלום רב!

יש לי כמה שאלות לגבי מחלקה RANDOM:

1. אני יצרתי מחלקה בשם DIE שהיא מדמה קובייה והיא נותנת מספר אקראי בין 1-6.

ואני רוצה שיהיה אפשר להשים caption בסוגריים שלה, לדוגמא:

Die cube = new Die(Moshe) איך עושים את זה?

2. אני צריל להגריל 2 מספרים בין X ל-Y כאשר אני לא יודע ש-X הוא הערך הרטן מבין השניים.

צריך לתת דרך איך לפתור את זה.

אז יש דרך אחת שעליתי לבד ושהיא השוואה ביניהם מי קטן יותר

ואני צריך עוד דרך אחת.

שאלה אחרונה:

3. אני דיי מתקשה עם התרגיל הזה מה שיוצא לי זה ששתמיד השניים הם שווים -_-

שני חברים משחקים בהטלת שתי קוביות. כתוב תוכנית הקולטת את שמות שני השחקנים ובונה שתי קוביות המייצגות את שני השחקנים, כאשר כותרות הקוביות הן שמות השחקנים שנקלטו.

כל שחקן מטיל את הקובייה שלו פעמיים. השחקן עם הסכום ההגרלות הגדול יותר מנצח. התוכנית תדפיס את שם השחקן המנצח.

הערה: ניתן להשתמש במחלקה DIE לפיתרון התרגיל.

הנה מה שאני עשיתי:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

namespace ConsoleApplication1

{

class Program

{

class Die

{

private Random options = new Random();

private int num;

public Die()

{

this.options = new Random();

this.num = options.Next(1, 7);

}

public void Roll()

{

this.options = new Random();

this.num = options.Next(1, 7);

}

public int GetNum()

{

return this.num;

}

static void Main(string[] args)

{

int sum,sum1;

Console.WriteLine("Enter two names for the players: ");

string p1 = Console.ReadLine();

string p2 = Console.ReadLine();

Die dise1 = new Die();

Die dise2 = new Die();

Die dise3 = new Die();

Die dise4 = new Die();

dise1.Roll();

dise2.Roll();

sum = dise1.GetNum() + dise2.GetNum();

dise3.Roll();

dise4.Roll();

sum1 = dise3.GetNum() + dise4.GetNum();

if (sum1 > sum)

{

Console.WriteLine("The winnder is: ",p2);

Console.WriteLine("Won {0} with {1}",sum1,sum);

}

else if (sum1 == sum)

{

Console.WriteLine("Draw!");

Console.WriteLine("Draw {0} with {1}", sum1, sum);

}

else

{

Console.WriteLine("The winnder is: ", p1);

Console.WriteLine("Won {0} with {1}", sum, sum1);

}

}

}

}

}

אני יודע שזה ממש מסורבל אבל עם תוכלו לעזור לי בהכל אני אשמח!!

תודה רבה לעוזרים!!

פורסם

אתה חייב ליצור מחלקת רנדום? אתה לא יכול להשתמש בפונקציה מובנית?

בנתיים לסעיף 1 תיצור פונקציה בונה שמקבלת מחרוזת.

תוסיף גם שדה מחרוזת למחלקה.

פורסם

Random זו מחלקה רגישה ונושא רגיש בכלל בתכנות.

הסיבה לטעות היא שבכל הטלה אתה מאתחל את אובייקט ה-Random שלך.

ב-FAQ (של פורום תכנות כללי לדעתי) מסבירים למה זה לא נכון.

בתוכנה בסדר גודל כזה, מספיק אובייקט Random אחד, וגם אותו לדאוג לאתחל רק פעם אחת.

עוד המלצה באותה הרוח - אתה לא צריך יותר מאובייקט die אחד.

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.

דיונים חדשים