none
אני עובד על פרוייקט של תוכנית לוטו ללימודים RRS feed

  • שאלה

  • לא עובדים לי מספר דברים אשמח להסבר ועצות...
    * כשאני מפעיל את אופציה מספר 1 בתפריט הוא שולט מספר ראשון ונתקע כנל לגביי אופציה 2
    *כשאני לוחץ על ספרה אחרת מאשר 1, 2, או 3 הוא לא מריץ הודעת שגיאה ומוכן לקלוט מספר חדש כמו שהגדרתי לו
    *התפריט לא חוזר לאחר ההפעלה של מספר כלשהו מלבד 3 ללופ כמו שאמור להיות מוגדר לו אלא יוצא מהתכנית
    *למה לא מדפיס לי את הטורי לוטו שיצאו לי במנואל או באוטומטי בסוף התכנית?
    תודה רבה מראש התכנית  להורדה בקובץ CS:
    |הלינק|http://www.upf.co.il/file/780877046.html|סלינק|
    יום שישי 05 אוגוסט 2011 12:42

תשובות

  • ליאור צוהריים טובים

    העתקתי את הקוד במטרה לעזור. עברתי על הקוד וכל שורה שעברתי התחלתי לתקן ולשנות עד שנמאס לי :-(

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

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

    * הקובץ יהיה כאן באופן זמני


    • סומן כתשובה על-ידי LIORGUT יום שלישי 09 אוגוסט 2011 20:16
    יום שני 08 אוגוסט 2011 12:02
    מנחה דיון
  • בוקר טוב ליאור

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

    אתה יודע מדוע לא קוראים לחוק "קניין רוחני" בשם המקובל "חוק זכויות יוצרים"?
    הסיבה היא ההבנה שמה ששומרים עליו זה משהו רוחני ולא פיזי. השמירה היא על החלק הרוחני. מכאן גם השם הנכון לטעמי של המקצוע והוא developer או בעברית "מפתח" ולא כמו שרבים עושים שימוש בשם מתכנת כשהם בכלל לא עובדים בשפות תכנות (אני לא דן כרגע מה היא שפת תכנות אבל ברור שלא יכול להיות מתכנת HTML למשל). המילה פיתוח משמעותה רוחנית/אומנותית אולי.

    בנאי בונה עם אבני יסוד קיימים = בונה בניין לוקח אבנים ומרכיב אותם זו על זו. רוב החברות בשוק הן חברות בניית אתרים ולא חברות תוכנה. הם מרכיבים קודים שקנו/הורידו/פיתחו עבורם/העתיקו באינטרנט וכו. רבים גם קוראים לעצמן בשם חברת בניית אתרים בלי להבין את המשמעות הירודה (שם אבסורדי שמצביע מראש על רמה נמוכה של בנייה תוך שימוש בקוד של מישהו אחר ולא פיתוח של הקוד).
    מפתח מבצע פעולת פיתוח (שדרוג, המצאה של מה שלא היה קיים) (לא בהכרח הוא יבנה אותו בפועל)

    למה חשובה ההקדמה?!?
    כי רציתי לציין שאם תמיד תמתין לתשובות של אחרים אתה תמיד תושפע מהם וגם אם תבין אותם לעולם זה לא יעזור לך להיות מפתח. זה רק ילמד אותך לגגל (מהמילה גוגל). לצערי כבר נתקלתי באנשים שעובדים בשוק מעל 10 שנים והיכולת שלהם נnuכה יותר מזו של תלמידים שלי בקורסים של מתחילים לפעמים (זו לא הגזמה!). עבדתי פעם עם מנכ"ל של חברה שחשב שהוא מפתח ודברים שהוא עשה היו יותר גרועים מכל מה שנתקלתי בעבר וזה כולל תלמידי כיתה י שלימדתי בתיכון לפני הרבה הרבה שנים והם למדו מתוך הכרח ולא מרצון.

    * ולשאלה שלך הנה דוגמה בלי שימוש באובייקט מילון אלא רק עם מה שלמדת:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace IsInCollection
    {
     class Program
     {
     static void Main(string[] args)
     {
    
      int MyNum = 3;
    
      int[] MyArray = new int[10] {1,4,3,5,6,7,89,23,4,51};
      int JustForTheTest = 0;
      Boolean IsOnCollectionBol;
    
      IsOnCollectionBol = false;
      for (int i = 0; i < MyArray.Length; i ++ ) {
      JustForTheTest++; // נספור כמה פעמים בוצעה הלולאה כדי להשוות שיטות
      if (MyNum == MyArray[i]) { 
       IsOnCollectionBol = true;
       break;// זה החלק החשוב... בשיטה זו אפשר לסים את כל הלולאה ברגע שנמצאה התאמה
      }
      }
      Console.WriteLine(
      String.Format("Ex1: number of loop was : {0}\n is the number in the list? {1}"
      , JustForTheTest
      , IsOnCollectionBol.ToString())
      );
    
      Console.ReadLine();
     }
     }
    }
    

    • סומן כתשובה על-ידי LIORGUT יום רביעי 10 אוגוסט 2011 10:57
    יום רביעי 10 אוגוסט 2011 07:07
    מנחה דיון

כל התגובות

  • חברים זה הקוד בבקשה תעזרו לי אני ממש תקוע וצריך את זה דחוף

     

     

    namespace ConsoleApplication1

    {

        class Program

        {

            static void MTur(int[,] mat)

            {

     

                Console.WriteLine("Enter number of coles: ");

                int coles = int.Parse(Console.ReadLine());

                mat = new int[coles, 6];

                int goodnumber=1;

                string str;

                for (int i = 0; i < mat.GetLength(0); i++)

                {

                    for (int j = 0; j < mat.GetLength(1); j++)

                    {

                        do

                        {

                            goodnumber = 1;

                            Console.WriteLine("Enter number between 1 to 45: ");

                            str = Console.ReadLine();

                            for (int m = 0; m < str.Length; m++)

                            {

                                if ((str[m] < 48) && (str[m] > 57))

                                {

                                    Console.WriteLine("this is not a number, please insert a number between 1 to 45:");

                                    goodnumber = 0;

                                    break;

                                }

                            }

                            while ((mat[i, j] < 1) && (mat[i, j] > 45) && (goodnumber != 0))

                            {

                                Console.WriteLine("Wrong number, please insert number between 1 to 45:");

                                goodnumber = 0;

                            }

                            while (CheckRows(mat, i, j) == false)

                            {

                                Console.WriteLine("This number already exists Please enter a different number from 1 to 45:");

                                goodnumber = 0;

                            }

                        } while (goodnumber != 1);

                        mat[i, j] = int.Parse(str);

                    }

                }

            }

            static bool CheckRows(int[,] mat,int row,int j)

            {

                Random rnd = new Random();

                bool check = true;

     

                        for (int x = mat[row,0]; x < mat.GetLength(1); x++)

                        {

     

                            while (mat[row, j] != x)

                                check = false;

                        }

                        return check;

                    }

            static void PrintTur(int[,] mat)

            {

                for (int i = 0; i < mat.GetLength(0); i++)

                {

                    for (int j = 0; j < mat.GetLength(1); j++)

                    {

     

                        Console.WriteLine("{0}: {1} ", i + 1, mat[i, j]);

    }

    }

     

     

     

     

                Console.WriteLine();

     

    }

            static void ATur(int[,] mat)

            {

                Console.WriteLine("Enter number of coles: ");

                int coles = int.Parse(Console.ReadLine());

                Random rnd = new Random();

               mat = new int[coles, 6];

                for (int i = 0; i < mat.GetLength(0); i++)

                {

                    for (int j = 0; j < mat.GetLength(1); j++)

                    {

     

                        mat[i, j] = rnd.Next(1, 46);

                        while (CheckRows(mat,i,j) == false)

                        {

                            mat[i, j] = rnd.Next(1, 46);

                        }

                    }

                }

            }

            #region PrintMenu

            static void PrintMenu()

            {

                Console.BackgroundColor = ConsoleColor.White;

                Console.Clear();

                Random rnd = new Random();

                Console.ForegroundColor = ConsoleColor.Black;

                Console.WriteLine("{0,25}", "Hello and welcome!!!");

                SetColor(rnd.Next(0, 14));

                Console.WriteLine("{0,20}", "to the... ");

                SetColor(rnd.Next(0, 14));

                Console.WriteLine("{0,25}", "*** L o t t e r y ***");

                SetColor(rnd.Next(0, 14));

                Console.WriteLine(".....................................");

     

                SetColor(rnd.Next(0, 14));

                Console.WriteLine("{0,28}", "Please press the appropriate button: ");

                SetColor(rnd.Next(0, 14));

                Console.WriteLine("{0,24}", "1: Play manual lottery");

                Console.WriteLine("{0,27}", "2: Play automatic lottery");

                Console.WriteLine("{0, 9}", "3: Exit");

     

                SetColor(rnd.Next(0, 14));

            }

     

     

            /// <summary>

            /// פונקציה שמשנה את צבע הטקסט ע"פ הערך שנקלט

            /// </summary>

            /// <param name="iColor">מציין במספרים את צבע הטקסט</param>

     

            static void SetColor(int iColor)

            {

                switch (iColor) // מתג לבדיקת ערך לשם קביעת הצבע

                {

                    case 0:

                        Console.ForegroundColor = ConsoleColor.DarkGreen;

                        break;

                    case 1:

                        Console.ForegroundColor = ConsoleColor.Green;

                        break;

                    case 2:

                        Console.ForegroundColor = ConsoleColor.Gray;

                        break;

                    case 3:

                        Console.ForegroundColor = ConsoleColor.DarkYellow;

                        break;

                    case 4:

                        Console.ForegroundColor = ConsoleColor.DarkCyan;

                        break;

                    case 5:

                        Console.ForegroundColor = ConsoleColor.Blue;

                        break;

                    case 6:

                        Console.ForegroundColor = ConsoleColor.Cyan;

                        break;

                    case 7:

                        Console.ForegroundColor = ConsoleColor.Black;

                        break;

                    case 8:

                        Console.ForegroundColor = ConsoleColor.DarkMagenta;

                        break;

                    case 9:

                        Console.ForegroundColor = ConsoleColor.Red;

                        break;

                    case 10:

                        Console.ForegroundColor = ConsoleColor.DarkRed;

                        break;

                    case 11:

                        Console.ForegroundColor = ConsoleColor.DarkBlue;

                        break;

                    case 12:

                        Console.ForegroundColor = ConsoleColor.Magenta;

                        break;

                    default:

                        Console.ResetColor(); //החזרת כל שינוי צבע לצבע ברירת המחדל

                        break;

                }

            }

            #endregion

            static void Main(string[] args)

            {

                int[,] mat = new int[1, 1];

                #region selection

                int selection;

                do

                {

                    PrintMenu();

                    selection = int.Parse(Console.ReadLine());

                    while (selection < 1 || selection > 3)

                    {

                        Console.WriteLine("invalid selection please enter 1, 2, or 3.");

                        selection = int.Parse(Console.ReadLine());

                    }

                    switch (selection)

                    {

                        case 1: MTur(mat);

                            break;

                        case 2: ATur(mat);

                            break;

                        case 3:

                            Console.ForegroundColor = ConsoleColor.Black;

                            Console.WriteLine("Good bye :-) see you next time... ");

                            Console.ForegroundColor = ConsoleColor.Blue;

                            Console.WriteLine("Copyright Lior Gutmanovitch");

                            Console.ForegroundColor = ConsoleColor.Black;

     

                            return;

     

                    }

                } while (selection != 3);

     

                #endregion

                PrintTur(mat);

     

            }

        }

    1. }

    שבת 06 אוגוסט 2011 10:01
  • ליאור צוהריים טובים

    העתקתי את הקוד במטרה לעזור. עברתי על הקוד וכל שורה שעברתי התחלתי לתקן ולשנות עד שנמאס לי :-(

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

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

    * הקובץ יהיה כאן באופן זמני


    • סומן כתשובה על-ידי LIORGUT יום שלישי 09 אוגוסט 2011 20:16
    יום שני 08 אוגוסט 2011 12:02
    מנחה דיון
  • תודה מאז שיניתי מספר דברים והרי החלק הבעייתי בו אשמח לתגובה ועזרה תודה רבה

       static bool CheckRows(int[,] mat, int row, int j)

            {

     

                bool check = true;

     

                for (int i = 0; i < mat.GetLength(0); i++)

                {

                    if (mat[row, i] == mat[row, j])

     

                        check = false;

                }

                return check;

            }

    • סומן כתשובה על-ידי LIORGUT יום שלישי 09 אוגוסט 2011 20:15
    • סימון כתשובה בוטל על-ידי LIORGUT יום שלישי 09 אוגוסט 2011 20:16
    יום שני 08 אוגוסט 2011 15:59
  • כל הפרוצדורה CheckRows מיותרת

    תבדוק מה שמתי לך בקובץ וכיצד לבצע אצת הבדיקה בקלות עם אובייקט מילון

    שיטת העבודה שלך מאוד לא טובה. בוא נעבור על נקודות מרכזיות ונעבור לשיטה יותר טובה כדוגמה (יש הרבה שיטות טובות ואני אציג רק אחת מהן ויש לך אותה במלואה בקוד ששמתי לך)

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

    * אתה מבצע בדיקה הפוכה ולא טוב של מתי הערך שווה ל FALSE. לכן אתה חייב לעבור על כל המערך לבדוק שאכן כל הנתונים אינם מתאימים
    הרבה יותר נכון לבדוק מתי יש איזה זהו ערך מתאים ("זא מתי זה TRUE) כי אז אתה יכול לסיים את הלולאה מייד.
    במלים אחרות: מספיק שיש ערך אחד נכון הרי שהמספר אינו טוב כי הוא קיים כבר. לעומת זאת צריך שכל הערכים יהיו FALSE כדי לדעת המספר טוב וכלן היית חייב לבצע לולאות על כל הערכים תמיד.

    נעבור לרעיון ששמתי לך בקוד המצורף: במקום לעבוד עם לולאה תעבוד עם אובייקט מילון או אובייקט HASHTABLE

    אובייקט מילון אינו מאפשר שימוש ב 2 נתונים עם אותו מפתח. לכן כל מה שעלייך לעשות זה להוסיף את הערך של המספר לאובייקט מילון שלך. חלק זה עושים בבלוק של TRY. אם הערך כבר קיים לפני זה אתה פשוט תועבר לבלוק של ה CATCH. ללא לולאות מיותרות, וללא בדיקה הפוכה של FALSE במקום TRUE (מאחורי הקלעים מייקרוספט כבר מיטבו עבורך את פעולת הוודא שלא קיים ערך נוסף זהה)

    לסיכום: מכיוון שאתה זורק (אם אתה הולך לפי הצעתי) את הפונקציה CheckRows הרי שאני מבין שאין לך יותר בעיה והכל מסתדר?

    * אם עדין משהו לא עובד או לא מובן אתה מוזמן לשאול אבל בבקשה בדוק את מה שהכנתי עבורך בקובץ שהעלתי (כדי שתפיק מהזמן שהשקעתי וכמו שאמרתי אם היית מביט בו היית רואה שביטלתי את הפונקציה שיצרה לך בעיה לחלוטין)

    יום שני 08 אוגוסט 2011 16:30
    מנחה דיון
  • אחי קודם כל תודה רבה ודבר שני מה ששלחתי לי הקישור לא עובד לי ולא נפתח ודבר שני לא למדתי את מה שאתה מדבר עליו... אני עובד בקונסול אפליקיישן ולא מכיר את השמות שרשמת אלא אם כן התכוונת לפונקציות שכך קראת להם... אשמח לקישור לא שבור או משהו
    יום שני 08 אוגוסט 2011 16:36
  • מה ששלחתי לך זה פרוייקט קונסול פשוט

    זה הפרוייקט שלך עם כמה שיפורים עד שהתייאשתי כי היה יוצתר מדי מה לשנות

    אני אבדוק את הקישור שוב ועוד רגע אכתוב שהוא עובד - אם צריך אתקן אותו


    יום שני 08 אוגוסט 2011 16:52
    מנחה דיון
  • הקישור שלי עובד טוב. בדקתי אותו כרגע. נכנסתי לאחד השרתים שלי שנמצא במדינה אחרת והורדתי את הקובץ מהשרת עליו שמרתי את הקובץ (שרת פיתוח). כמו שאמרתי הקישור עובד טוב!

    תוריד ותבדוק אותו לעומק

    תספר לנו על התוצאות :-)

    * בכל מקרה אהקוד ארוך מדי ואי אפשר לצרף אותו להודעה

    יום שני 08 אוגוסט 2011 16:54
    מנחה דיון
  • אחי תודה רבה הבה אספר לך למה לא עשיתי כמוך כי לא למדתי שמץ מהדברים האלה

    לא יודע מה זה מילון

    לא יודע מה זה TRY

    לא יודע מה זה CATCH

    לא יודע מה זה  Convert.ToInt32

    לא יודע מה זה  String.Format

    יום שני 08 אוגוסט 2011 17:23
  • נראה לי לא הגיוני שלא לימדו אתכם try/catch או convert ובטח ובטח ובטח שעדיין לא לימדו אתכם מה זה String.format שבדרך זה מהנושאים שלומדים בהתחלה ממש של הלימוד

    אולי הגיע הזמן שתלמד את הדברים?

    בשביל זה אתה כאן (אני מקווה)
    לעולם לא תוכל להיות מפתח אם לא תוכל ללמוד לבד את מה שחסר שלך
    בדרך כלל כששואלים שאלה אתה תקבל תשובה בסגנון: אפשר לעשות את זה עם XXX ואז החלק שלך הוא לגשת לגוגל ולהתחיל למצוא חומר על XXX וללמוד כיצד להישתמש בו. אף אחד לא אמור ובטח אף אחד לא מכיר את כל המחלקות וכל האלמנטים שיש בע"פ :-)

    * אובייקט מילון זה משהו שאכן לומדים בדרך כלל בשלב מאוחר יחסית של הלימוד.

    אתה רוצה לפתור את הבעיה בדרך המסתמכת רק על מה שלמדת בקורס?
    בכל מקרה גם אם זה המצב אז תקרא ותנסה להבין מה כתבתי לגבי לא לבדוק מתי זה FALSE אלא לבדוק מתי זה TRUE ואם אתה רוצה אני אנסה להעלות דוגמה בערב אבל אני מציע שתשקיע ללמוד את מה שחסר לך כדי להבין את הקוד שהעברתי לך (זו הדרך האמיתית היחידה ללמוד לפתח... ללמוד מסודר ולהשלים את החסר בכל מקום שפוגשים בו בלימוד נקודתי במקביל)

    יום שלישי 09 אוגוסט 2011 03:44
    מנחה דיון

  • הדרך שהראת גאונית... אני אשמח ללמוד אותה, אני היום אשאל את המרצה על זה אך באמת לא למדנו זאת... אני לא יודע אם זה קשור אבל למדנו מבוא תכנות רק עם אלגוריתמים ומשם המשכנו לC# קונסול אפליקיישן ולמדנו רק סטרינג ונאמר לנו שבמודול הבא נשתמש ב סטרינג פורמט שזה יהיה באובג'קט אוריינטה בכל מקרה אני עובד על דרך חשיבה למה שאמרת עם הTRUE ואשמח שתעלה דוגמא כזאת גם בערב שאני אראה אותה בלילה לאחר שאחזור מהקורס וכך אוכל פשוט לחדד פינות המון המון תודה...
    יום שלישי 09 אוגוסט 2011 05:39
  • ליאור. אם התשובה של pituach עזרה לך, סמן אותה ב V (מופיע לך בתחתית תיבת התשובה.

    תודה


    בהצלחה, ואם עזרתי, לחץ על 'סמן כתשובה', וסמן את התשובה כמועילה.
    יום שלישי 09 אוגוסט 2011 18:12
  • בוקר טוב ליאור

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

    אתה יודע מדוע לא קוראים לחוק "קניין רוחני" בשם המקובל "חוק זכויות יוצרים"?
    הסיבה היא ההבנה שמה ששומרים עליו זה משהו רוחני ולא פיזי. השמירה היא על החלק הרוחני. מכאן גם השם הנכון לטעמי של המקצוע והוא developer או בעברית "מפתח" ולא כמו שרבים עושים שימוש בשם מתכנת כשהם בכלל לא עובדים בשפות תכנות (אני לא דן כרגע מה היא שפת תכנות אבל ברור שלא יכול להיות מתכנת HTML למשל). המילה פיתוח משמעותה רוחנית/אומנותית אולי.

    בנאי בונה עם אבני יסוד קיימים = בונה בניין לוקח אבנים ומרכיב אותם זו על זו. רוב החברות בשוק הן חברות בניית אתרים ולא חברות תוכנה. הם מרכיבים קודים שקנו/הורידו/פיתחו עבורם/העתיקו באינטרנט וכו. רבים גם קוראים לעצמן בשם חברת בניית אתרים בלי להבין את המשמעות הירודה (שם אבסורדי שמצביע מראש על רמה נמוכה של בנייה תוך שימוש בקוד של מישהו אחר ולא פיתוח של הקוד).
    מפתח מבצע פעולת פיתוח (שדרוג, המצאה של מה שלא היה קיים) (לא בהכרח הוא יבנה אותו בפועל)

    למה חשובה ההקדמה?!?
    כי רציתי לציין שאם תמיד תמתין לתשובות של אחרים אתה תמיד תושפע מהם וגם אם תבין אותם לעולם זה לא יעזור לך להיות מפתח. זה רק ילמד אותך לגגל (מהמילה גוגל). לצערי כבר נתקלתי באנשים שעובדים בשוק מעל 10 שנים והיכולת שלהם נnuכה יותר מזו של תלמידים שלי בקורסים של מתחילים לפעמים (זו לא הגזמה!). עבדתי פעם עם מנכ"ל של חברה שחשב שהוא מפתח ודברים שהוא עשה היו יותר גרועים מכל מה שנתקלתי בעבר וזה כולל תלמידי כיתה י שלימדתי בתיכון לפני הרבה הרבה שנים והם למדו מתוך הכרח ולא מרצון.

    * ולשאלה שלך הנה דוגמה בלי שימוש באובייקט מילון אלא רק עם מה שלמדת:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace IsInCollection
    {
     class Program
     {
     static void Main(string[] args)
     {
    
      int MyNum = 3;
    
      int[] MyArray = new int[10] {1,4,3,5,6,7,89,23,4,51};
      int JustForTheTest = 0;
      Boolean IsOnCollectionBol;
    
      IsOnCollectionBol = false;
      for (int i = 0; i < MyArray.Length; i ++ ) {
      JustForTheTest++; // נספור כמה פעמים בוצעה הלולאה כדי להשוות שיטות
      if (MyNum == MyArray[i]) { 
       IsOnCollectionBol = true;
       break;// זה החלק החשוב... בשיטה זו אפשר לסים את כל הלולאה ברגע שנמצאה התאמה
      }
      }
      Console.WriteLine(
      String.Format("Ex1: number of loop was : {0}\n is the number in the list? {1}"
      , JustForTheTest
      , IsOnCollectionBol.ToString())
      );
    
      Console.ReadLine();
     }
     }
    }
    

    • סומן כתשובה על-ידי LIORGUT יום רביעי 10 אוגוסט 2011 10:57
    יום רביעי 10 אוגוסט 2011 07:07
    מנחה דיון
  • רציתי להגיד תודה לכולם על העזרה ולאחר מעבר על הכל זה הקוד שלי עד לשלב זה מה נשאר לי להוסיף זה את הפונקציה של כמה פגיעות
    
     יש בכל טור יחסית למספר המוגרל
    
    <br/>
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    
    namespace ConsoleApplication1
    {
      class Program
      {
        static int[] tmpArr=new int [46];
        static int[] arr = new int[6];
        static void NOH()
        {
        }
        static void WIn()
        {
          for (int i = 0; i < arr.Length; i++)
          {
            arr[i] = rnd.Next(1, 46);
            for (int j = 0; j < i; j++)
            {
              if (arr[i] == arr[j])
                arr[i] = rnd.Next(1, 46);
            }
          }
          PrintWin(arr);
        }
        static void PrintWin(int[] arr)
        {
          Console.ForegroundColor = ConsoleColor.Black;
          Console.WriteLine("The win numbers is: ");
          for (int i = 0; i < arr.Length; i++)
          {
            Console.ForegroundColor = ConsoleColor.Blue;
            Console.Write("|{0}| ", arr[i]);
          }
          Console.WriteLine();
        }
        static int[,] mat;
        static Random rnd = new Random();
        static bool choose = true;    //משתנה השומר את בחירת המשתמש: ידני/אוטומטי
        static void choice(bool choose)
        {
    
          Console.WriteLine("Enter number of coles: ");
          int coles = int.Parse(Console.ReadLine());
          mat = new int[coles, 6];
          int tmp = 0;
          
          for (int i = 0; i < mat.GetLength(0); i++) //לולאה המייצגת את השורות
          {
            for (int j = 0; j < mat.GetLength(1); j++) //לולאה המייצגת את התאים בשורה
            {
    
              bool flag = true;
              
              if (choose) //אם ידני
              {
                Console.WriteLine("Enter {0} number of {1} cole: ", j + 1, i + 1);
                string str = Console.ReadLine();
                for (int m = 0; m < str.Length; m++)
                {
                  if ((str[m] < '0') || (str[m] > '9'))
                  {
                    Console.WriteLine("this is not a number, please insert a number between 1 to 45:");
                    str = Console.ReadLine();
                  }
                }
                tmp = int.Parse(str);
                if ((tmp <= 0) || (tmp > 45))
                {
                  flag = false;
                  Console.WriteLine("the value is too big or too small, please insert a number between 1 to 45:");
                  j--;
                }
                for (int r = 0; r < j; r++)
                {
                  if (tmp == mat[i, r])
                  {
                    flag = false;
                    Console.WriteLine("This number already exists Please enter a different number from 1 to 45:");
                    j--;
                  }
                }
              }
              else
              {
                tmp = rnd.Next(1, 46);
                for (int r = 0; r < j; r++)
                {
                  if (tmp == mat[i, r])
                  {
                    flag = false;
                    Console.WriteLine("This number already exists Please enter a different number from 1 to 45:");
                    j--;
                  }
                    
                }
              }
              if (flag)
                mat[i, j] = tmp;
    
            }
          }
          PrintTur(mat);
          WIn();
          NOH();
        }
        static void PrintTur(int[,] mat)
        {
          for (int i = 0; i < mat.GetLength(0); i++)
          {
            for (int j = 0; j < mat.GetLength(1); j++)
            {
    
              Console.WriteLine("{0}: {1} ", j + 1, mat[i, j]);
            }
            Console.WriteLine("___________");
          }
          Console.WriteLine();
    
        }
        #region PrintMenu
        static void PrintMenu()
        {
          Console.BackgroundColor = ConsoleColor.White;
          Console.Clear();
          Random rnd = new Random();
          Console.ForegroundColor = ConsoleColor.Black;
          Console.WriteLine("{0,25}", "Hello and welcome!!!");
          SetColor(rnd.Next(0, 14));
          Console.WriteLine("{0,20}", "to the... ");
          SetColor(rnd.Next(0, 14));
          Console.WriteLine("{0,25}", "*** L o t t e r y ***");
          SetColor(rnd.Next(0, 14));
          Console.WriteLine(".....................................");
    
          SetColor(rnd.Next(0, 14));
          Console.WriteLine("{0,28}", "Please press the appropriate button: ");
          SetColor(rnd.Next(0, 14));
          Console.WriteLine("{0,24}", "1: Play manual lottery");
          Console.WriteLine("{0,27}", "2: Play automatic lottery");
          Console.WriteLine("{0, 9}", "3: Exit");
    
          SetColor(rnd.Next(0, 14));
        }
    
    
        /// <summary>
        /// פונקציה שמשנה את צבע הטקסט ע"פ הערך שנקלט
        /// </summary>
        /// <param name="iColor">מציין במספרים את צבע הטקסט</param>
    
        static void SetColor(int iColor)
        {
          switch (iColor) // מתג לבדיקת ערך לשם קביעת הצבע
          {
            case 0:
              Console.ForegroundColor = ConsoleColor.DarkGreen;
              break;
            case 1:
              Console.ForegroundColor = ConsoleColor.Green;
              break;
            case 2:
              Console.ForegroundColor = ConsoleColor.Gray;
              break;
            case 3:
              Console.ForegroundColor = ConsoleColor.DarkYellow;
              break;
            case 4:
              Console.ForegroundColor = ConsoleColor.DarkCyan;
              break;
            case 5:
              Console.ForegroundColor = ConsoleColor.Blue;
              break;
            case 6:
              Console.ForegroundColor = ConsoleColor.Cyan;
              break;
            case 7:
              Console.ForegroundColor = ConsoleColor.Black;
              break;
            case 8:
              Console.ForegroundColor = ConsoleColor.DarkMagenta;
              break;
            case 9:
              Console.ForegroundColor = ConsoleColor.Red;
              break;
            case 10:
              Console.ForegroundColor = ConsoleColor.DarkRed;
              break;
            case 11:
              Console.ForegroundColor = ConsoleColor.DarkBlue;
              break;
            case 12:
              Console.ForegroundColor = ConsoleColor.Magenta;
              break;
            default:
              Console.ResetColor(); //החזרת כל שינוי צבע לצבע ברירת המחדל
              break;
          }
        }
        #endregion
        static void Main(string[] args)
        {
          #region selection
          int selection;
          do
          {
            PrintMenu();
            string str = Console.ReadLine();
            for (int m = 0; m < str.Length; m++)
            {
              if ((str[m] < '0') || (str[m] > '9'))
              {
                Console.WriteLine("invalid selection please enter 1, 2, or 3.");
                str = Console.ReadLine();
              }
            }
            selection = int.Parse(str);
            while (selection < 1 || selection > 3)
            {
              Console.WriteLine("invalid selection please enter 1, 2, or 3.");
              selection = int.Parse(Console.ReadLine());
            }
    
            switch (selection)
            {
              case 1: choice(true);
    
                Console.ReadLine();
                break;
              case 2: choice(false);
    
                Console.ReadLine();
                break;
              case 3:
                Console.ForegroundColor = ConsoleColor.Black;
                Console.WriteLine("Good bye :-) see you next time... ");
                Console.ForegroundColor = ConsoleColor.Blue;
                Console.WriteLine("Copyright Lior Gutmanovitch");
                Console.ForegroundColor = ConsoleColor.Black;
    
                return;
    
            }
          } while (selection != 3);
    
          #endregion
        }
      }
    }
    
    

    יום רביעי 10 אוגוסט 2011 10:56
  • היי חברים שאלה נוספת ברשותכם :-)

    אני עכשיו בשלב של ההשוואות ומשום מה הוא לא מודיע לי במידה ויש מעל פגיעה אחת בכל אחד מהטורים ובנוסף לא מודיע לי על פגיעות בכל טור אחר חוץ מהטור הראשון, איך אני מתקן שהוא יסמן לי לגביי כל הטורים וכל הפגיעות? תודה רבה מראש :-) מעריך מאוד כל בן אדם שאפילו רק מסתכל על השאלה...

    static void chkTur(int[] arr, int[,] mat, int coles)// פונקציה שבודקת אם יש מספר בטור אשר תואם מספר מהמספר הזוכה
        {
          mat2 = new int[coles, 7];
          for (int i = 0; i < mat.GetLength(0); i++)
          {
            for (int j = 0; j < mat.GetLength(1); j++)
            {
              if (mat[i, j] == arr[j])
              {
                mat2[i, j]++;
                mat2[i, 6]++;
              }
            }
            Console.WriteLine("* Number of hits in the {0,2} cole is: {1,2}."
              , i + 1, mat2[i, 6]);
          }
    
          bool win = false;
    
          for (int i = 0; i < coles; i++)
          {
            if (mat2[i, 6] == 6)// אם יש 6 פגיעות אז המשתמש זכה בלוטו
            {
              Console.ForegroundColor = ConsoleColor.Green;
              Console.WriteLine("-----------------------------------");
              Console.WriteLine((char)1 + "You win!!! congratulations" + (char)2);
              Console.WriteLine();
              win = true;
              break;
            }
          }
    
          if (!win)
          {
            Console.ForegroundColor=ConsoleColor.Red;
            Console.WriteLine("-----------------------------------");
            Console.WriteLine(":-( Sorry you didn't won this time... )-:");
            Console.WriteLine();
          }
    
        }
       
    

     

    יום שישי 12 אוגוסט 2011 08:02
  • ערב טוב

    השירשור לא קריא

    1. אנא פתח לשאלה חדשה שירשור חדש תמיד

    2. אנא אל תצרף קודים ארוכים להודעה אלא צרף קישור לקודים בקובץ להורדה

    יום שישי 12 אוגוסט 2011 20:54
    מנחה דיון