פורסם 2010 בספטמבר 1315 שנים בנסיום לבנות בלק ג'ק פשוט, רציתי לבנות מחלקה לקלף, ככה שתכיל את התכונות סוג ומספר.ומהתוכנה הראשית רציתי ליצור מערך מסוג הקלף שיצרתי לו מחלקה בהתחלה. עכשיו אני מנסה להכניס את כל הקלפים למערך ע"י הכתיבה הזאת-cards[0]=new card(2,heart);אם אני עושה את heart בלי מרכאות זה אומר לי שזה לא מוכר בקונטקסט הזה.אם אני עושה עם הוא אומר ש-CARD (העצם שיצרתי) לא מקבל שני ארגומנטים.על מנת לעזור בפיתורן, זה הפעולה ליצירת עצמים שעשיתי- class card { private char num; private string shape; public void card (char num, string shape) { this.num = num; this.shape = shape; }
פורסם 2010 בספטמבר 1315 שנים 2 הוא מספר, לא char. אם אתה רוצה אותו בתור char, אתה צריך לעשות '2'.חוץ מזה, למה שהוא יכיר את heart אם נתת אותו בלי מרכאות? ככה הוא מחפש משתנה שנקרא heart.(ובלי להעליב, אם יש לך טעויות כאלה, מומלץ שתחזור על חומר למתחילים לפני שאתה עובד עם מחלקות)
פורסם 2010 בספטמבר 1315 שנים class card { private char num; private string shape; public card (int num, string shape) { this.num = num; this.shape = shape; } מלבד הטעויות ששניצל ציין. בגדול, הקומפיילר שלך צודק, הוא מנסה ליצור אובייקט חדש עם ה-Default Constructor (שלא מקבל ארגומנטים כידוע) ולא מצליח כי העברת לו שני ארגומנטים. למה הוא לא משתמש בזה שהגדרת? כי זה לא Constructor, תעיף את ה-VOID והכל יסתדר
פורסם 2010 בספטמבר 1315 שנים מחבר תודה על התגובות! .ה- char היה בשביל להגדיר גם מלך ומלכה- 'Q', 'K'.. זה ששכחתי לשים את הגרשיים האלה זאת טעות שלי.למה אני אמור להוריד את ה-VOID.. לא הבנתי את זה.בכל מקרה תודה, זה הצליח.שאלה נוספץ- מה אני צריך לרשום בהצגה של פעולה (יענו עם ההתחלה של PUBLIC) שמחזירה מחסנית מסוג CARD שיצרתי ומקבלת מערך של CARD?
פורסם 2010 בספטמבר 1315 שנים זה משהו טכני לחלוטין, ל-CONSTRUCTOR לא מציינים RETURN TYPE, אפילו לא VOID.
פורסם 2010 בספטמבר 1315 שנים מחבר אחלה, תודה.איזה טיפוס אתם מכירים שאפשר להשתמש בו כדי לקלוט מצד אחד מספרים 2-10 ואת האותיות J-A (לכל המספרים והסמלים של נסיך, מלכה וכאלה)?
פורסם 2010 בספטמבר 1315 שנים אם אתה רוצה טיפוס שיוכל להחזיק אך ורק ערכים כאלה, אז תצטרך להגדיר Enum. כמובן, הערכים שלו חייבים להיות מזהים תקניים, כלומר הוא לא יוכל להכיל את הערך 2, אבל כן יוכל להכיל, לדוגמה, את הערך Two.הדבר הנכון הוא פשוט לעבוד עם מזהה מספרי (1 עד 13) או char.
פורסם 2010 בספטמבר 1315 שנים מחבר אחלה.שאלה אחרונה ומצטער על ההטרדה.אני רוצה לפנות לתכונה מוסימת של עצם, אם להיות ספציפי עשיתי את המחלקה CARD ויש שם את התכונה NUM. אני רוצה להגיע אל המספר הזה מתוכנית ה-MAIN.אני יודע שאי אפשר לגשת לתכונות, אלא דרך פעולות. אז עשיתי פעולה בתוך מחלקת ה-CARD public int number() { return num; }אלא, שזה לא עזר וכשניסיתי לפנות למספר הזה דרך כתיבת- Console.WriteLine(temp.number);קיבלתי שגיאה שאי אפשר להשוות את זה ל-INT, אבל זה אמו רלהיות INT.איפה הטעות שלי?
פורסם 2010 בספטמבר 1315 שנים ש-tmp.number היא פונקציה, ולכן צריך לקרוא לה עם סוגריים () על מנת לקבל את ערך ההחזרה.על מנת שהקוד יעבוד איך שרצית, אתה צריך ש-number יהיה property.
פורסם 2010 בספטמבר 1415 שנים public int number{ get { return num; } set // if you want a setter as well { num = value; }}^^^property
פורסם 2010 בספטמבר 1415 שנים מחבר תיקנתי הכל לפי מה שאמרתם ועכשיו אין יותר ארורים. אך כשאני מריץ את התוכנה היא נעצרת אחרי הדפסת השורה הראשונה.using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace black_jack{ class Program { static void Main(string[] args) { Console.WriteLine("Welcome to Black JAck game!!"); card[] cards = new card[52]; cards = hachnasa(cards); Stack<card> hafisa = new Stack<card>(); hafisa = create(cards, hafisa); Console.WriteLine("yor first card is:"); int count = 0; char stop = 'n'; card temp; while (count <= 21 || stop == 'n') { temp = hafisa.Pop(); Console.WriteLine(temp.number() + " " + temp.shape1()); Console.WriteLine("enter Y if you would like to stpo or N if you would like to continue"); stop = char.Parse(Console.ReadLine()); } if (count > 21) Console.WriteLine("you lost!"); else if (count == 21) { Console.WriteLine("you won!!"); } else Console.WriteLine("you can do better than that!"); } public static Stack<card> create(card[] cards, Stack<card> hafisa) { Random rnd = new Random(); int num1 = rnd.Next(0, 52); for (int i = 0; i < 52; i++) { while (cards[num1].number() != 0) { num1 = rnd.Next(0, 52); } hafisa.Push(cards[i]); cards[num1].idcon(cards[num1]); num1 = rnd.Next(0, 52); } return hafisa; } public static card[] hachnasa(card[] cards) { cards[0] = new card(2, "heart"); cards[1] = new card(2, "diamond"); cards[2] = new card(2, "spade"); cards[3] = new card(2, "clover"); cards[4] = new card(2, "heart"); cards[5] = new card(3, "diamond"); cards[6] = new card(3, "spade"); cards[7] = new card(3, "clover"); cards[8] = new card(4, "heart"); cards[9] = new card(4, "diamond"); cards[10] = new card(4, "spade"); cards[11] = new card(4, "clover"); cards[12] = new card(5, "heart"); cards[13] = new card(5, "diamond"); cards[14] = new card(5, "spade"); cards[15] = new card(5, "clover"); cards[16] = new card(6, "heart"); cards[17] = new card(6, "diamond"); cards[18] = new card(6, "spade"); cards[19] = new card(6, "clover"); cards[20] = new card(7, "heart"); cards[21] = new card(7, "diamond"); cards[22] = new card(7, "spade"); cards[23] = new card(7, "clover"); cards[24] = new card(8, "heart"); cards[25] = new card(8, "diamond"); cards[26] = new card(8, "spade"); cards[27] = new card(8, "clover"); cards[28] = new card(9, "heart"); cards[29] = new card(9, "diamond"); cards[30] = new card(9, "spade"); cards[31] = new card(9, "clover"); cards[32] = new card(10, "heart"); cards[33] = new card(10, "diamond"); cards[34] = new card(10, "spade"); cards[35] = new card(10, "clover"); cards[36] = new card(11, "heart"); cards[37] = new card(11, "diamond"); cards[38] = new card(11, "spade"); cards[39] = new card(11, "clover"); cards[40] = new card(12, "heart"); cards[41] = new card(12, "diamond"); cards[42] = new card(12, "spade"); cards[43] = new card(12, "clover"); cards[44] = new card(13, "heart"); cards[45] = new card(13, "diamond"); cards[46] = new card(13, "spade"); cards[47] = new card(13, "clover"); cards[48] = new card(14, "heart"); cards[49] = new card(14, "diamond"); cards[50] = new card(14, "spade"); cards[51] = new card(14, "clover"); return cards; } } class card { int num; string shape; public card(int num, string shape) { this.num = num; this.shape = shape; } public int number() { return num; } public string shape1() { return shape; } public void idcon(card yosi) { this.num = 0; } }}אשמח אם תוכלו להעיף מבט מבלי להתייחס יותר מידי לאיך שבניתי תמשחק עצמו..
פורסם 2010 בספטמבר 1415 שנים while (cards[num1].number() != 0)תחשוב מה הבעיה כאן.יש לך עוד באגים, אבל נטפל בהם אחר כך.נ.ב. להבא, מומלץ שתסביר למה אתה מתכוון ב"נעצרת" (התכנית נתקעת, או שהיא נעצרת ויוצאת?)
פורסם 2010 בספטמבר 1415 שנים מחבר אחלה, סידרתי את הבעיה הזו. כשאמרתי נעצרת התכוונתי שהיא מראה לי תשורה הראשונה- ברוכים הבאים... ולא ממשיכה, כלומר הסמן מהבהב על הרקע השחור- עדיין פועלת אבל לא ממשיכה. סליחה על החוסר פירוט ממקודם.עכשיו כשהתוכנית רצה יש בעיה שתמיד הקלף שנשלף הערך שלו הוא 0, כאילו הוא נלקח מהמערך שאיפסתי את כולו, אבל למעשה העברתי את כל הקלפים למחסנית ומשם שלפתי.תודה מראש
פורסם 2010 בספטמבר 1515 שנים הבעיה היא שלא העברת את הקלפים למחסנית, אלא רק שמרת התייחסות אליהם שם. הדבר הנכון הוא לאפס את הקלפים במערך ע"י השמת null, ולא ע"י שינוי הערך שלהם ל-0.
ארכיון
דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.