مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

Mohammadreza

عضویت از 1401/05/05

جمع امتیاز های کاربر

  • جمعه 7 مرداد 1401
  • 23:49
تشکر میکنم

 

درسته که عنوان تاپیک خیلی سادست ولی من به یه مشکل تقریبا گیج کننده رسیدم.

تصور کنید که کاربر 5 راند تاس میندازه و نتیجه به این صورته (از دوتا تاس 6 وجهی استفاده میشه که حداقل امتیاز ها 2 و حداکثر امتیاز ها 12 در هر راند هستش):

Round1: 5

Round2: 7

Round3: 2

Round4: 7

Round5: 6

من میخوام مجموع امتیاز ها که 27 هست رو به کاربر نشون بدم (میخوام این کار بدون تخصیص دادن متغیر برای هر راند انجام بشه و تو همینجاش گیر کردم)

باز اگر نیاز به اطلاعات بیشتری بود بهم بگید که راجع بهش بیشتر توضیح بدم. (خیلی ممنون که وقتتون رو صرف جواب دادن به این سوال میکنید)

این هم تصویر از کل برنامه (ولی من فقط کد های مربوط به Player1 رو گزاشتم) (سولوشن کل پروژه هم به صورت فایل آپلود کردم)

 

private void button1_Click(object sender, EventArgs e)
        {
            SoundPlayer throwDice = new SoundPlayer(@"C:\Users\malem\source\repos\DiceGame\DiceGame\Resources\Audios\0004526.wav");
            throwDice.Play();

            int player1point = 0;

            

            Random random = new Random();
            int randomNum = random.Next(1, 7);
            int randomNum2 = random.Next(1, 7);
            player1point = randomNum + randomNum2;
            
            

            lblPlayer1Point.Text = $"Score: {Convert.ToString(player1point)}";

            switch (randomNum)
            {
                case 1:
                    pictureBox1.ImageLocation = @"C:\Users\malem\source\repos\DiceGame\DiceGame\Resources\1.png";
                    break;
                case 2:
                    pictureBox1.ImageLocation = @"C:\Users\malem\source\repos\DiceGame\DiceGame\Resources\2.png";
                    break;
                case 3:
                    pictureBox1.ImageLocation = @"C:\Users\malem\source\repos\DiceGame\DiceGame\Resources\3.png";
                    break;
                case 4:
                    pictureBox1.ImageLocation = @"C:\Users\malem\source\repos\DiceGame\DiceGame\Resources\4.png";
                    break;
                case 5:
                    pictureBox1.ImageLocation = @"C:\Users\malem\source\repos\DiceGame\DiceGame\Resources\5.png";
                    break;
                case 6:
                    pictureBox1.ImageLocation = @"C:\Users\malem\source\repos\DiceGame\DiceGame\Resources\6.png";
                    break;
                default:
                    pictureBox1.ImageLocation = @"C:\Users\malem\source\repos\DiceGame\DiceGame\Resources\1.png";
                    break;
            }
            switch (randomNum2)
            {
                case 1:
                    pictureBox2.ImageLocation = @"C:\Users\malem\source\repos\DiceGame\DiceGame\Resources\1.png";
                    break;
                case 2:
                    pictureBox2.ImageLocation = @"C:\Users\malem\source\repos\DiceGame\DiceGame\Resources\2.png";
                    break;
                case 3:
                    pictureBox2.ImageLocation = @"C:\Users\malem\source\repos\DiceGame\DiceGame\Resources\3.png";
                    break;
                case 4:
                    pictureBox2.ImageLocation = @"C:\Users\malem\source\repos\DiceGame\DiceGame\Resources\4.png";
                    break;
                case 5:
                    pictureBox2.ImageLocation = @"C:\Users\malem\source\repos\DiceGame\DiceGame\Resources\5.png";
                    break;
                case 6:
                    pictureBox2.ImageLocation = @"C:\Users\malem\source\repos\DiceGame\DiceGame\Resources\6.png";
                    break;
                default:
                    pictureBox2.ImageLocation = @"C:\Users\malem\source\repos\DiceGame\DiceGame\Resources\1.png";
                    break;
            }
        }

فایل های ضمیمه

پاسخ های این پرسش

تعداد پاسخ ها : 9 پاسخ
کاربر سایت

سرور پایتون

عضویت از 1401/05/18

  • سه شنبه 18 مرداد 1401
  • 08:05

بیشتر توضیح بده داداش اگه منظورت نشون دادن امتیاز هاست که میتونی یک label بزاری و مقدارش رو صفر کنی بعد یک دکمه بزاری که هر وقت روش کلیک کردی امتیاز محاسبه بشه (میتونی تایمر هم بزاری)

اگه منظورت این نیست خب بیشتر توضیح بده(:

سرور...

کاربر سایت

سرور پایتون

عضویت از 1401/05/18

  • سه شنبه 18 مرداد 1401
  • 08:07

هعیییییی:(

هر برنامه نویسی یک مشکی داره:(

یک بار نشد من یک برنامه بنویسم ارور نده:(

داش امید وارم درکم کنی:(

کاربر سایت

Mohammadreza

عضویت از 1401/05/05

  • سه شنبه 18 مرداد 1401
  • 08:20

میخوام امتیاز ها بعد از هربار کلیک با امتیازی که از قبل داشت جمع بشه، مثال:

کاربر برای اولین بار تاس میندازه و 8 میاره >> امتیاز(8) = امتیاز قبلی(0) + مقداری که با تاس انداختن به دست آورد(8) 

کاربر برای دومین بار تاس میندازه و 10 میاره >> امتیاز(18) = امتیاز قبلی(8) + مقداری که با تاس انداختن به دست آورد(10) 

کاربر برای سومین بار تاس میندازه و 4 میاره >> امتیاز(22) = امتیاز قبلی(18) + مقداری که با تاس انداختن به دست آورد(4) 

کاربر برای چهارمین بار تاس میندازه و 7 میاره >> امتیاز(29) = امتیاز قبلی(22) + مقداری که با تاس انداختن به دست آورد(7)

 

امیدوارم قابل درک شده باشه

کاربر سایت

سرور پایتون

عضویت از 1401/05/18

  • سه شنبه 18 مرداد 1401
  • 10:56

خب عزیزم این که کاری نداره:)

اول دو شی میسازی:)

به شکل پایین:

double numbers;
double number;

اینکه این کد رو کجا بزاری پای خودت;)

بعد میری توی هر تاس کدت رو مینویسی :( مثلا من طرف 3 تاس رو زدم:) )

label.text = "3";
number = System.Convert.ToDouble(label1.Text);
#دستور بالا مقدار استرینگ لابل رو به دابل تغییر میده و در متغیر نامبر ها  قرار میده
numbers = number + numbers;
label2.Text = System.Convert.ToString(numbers);

خروجیش تو یک فایل پایین گزاشتم:)

باید تو رشته کار با دیتا های سی شارپ یکم تخصص داشته باشی:)

اگه خوشت اومد گیت هاب منم فالو کن:)

فایل های ضمیمه

کاربر سایت

سرور پایتون

عضویت از 1401/05/18

  • سه شنبه 18 مرداد 1401
  • 10:58

اگه اون چیزی که میخاستی نبود فردا میام سر میزنم;)

سرور...

کاربر سایت

سرور پایتون

عضویت از 1401/05/18

  • سه شنبه 18 مرداد 1401
  • 11:04

البته اگه میخای برنامه زیبا تر بشه یک menu strip بخش اضافه کن و کار هایی مثل سیو کردن رکورد تو یک فایل txt و...(:

کاربر سایت

Mohammadreza

عضویت از 1401/05/05

  • چهارشنبه 19 مرداد 1401
  • 23:33

آره این رو قبلا امتحان کرده بودم، ولی یه مشکلی هست و اون اینه که بعد از هر بار کلیک کاربر، مِتود دوباره اجرا میشه و مقدار ها به حالت اولیه بر میگرده، و برای اینکه این اتفاق نیافته باید بیرون از بدنه متود، مقدار دهی بشه که در این صورت نمیتونم به مقدار های داخل متود ها دسترسی پیدا کن، شاید راه حلش خیلی ساده باشه، به قدری ساده که بعد از فهمیدن راه حل خندم بگیره، ولی به هر حال بدونید که با یه تازه وارد سر و کار دارید. 

@سرور پایتون مرسی که تا اینجا وقت گزاشتی و جوابگو بودی

کاربر سایت

سرور پایتون

عضویت از 1401/05/18

  • جمعه 21 مرداد 1401
  • 10:25

خب حاجی چرا متغیر رو با حالت ثابت معرفی نمیکنی؟D:

double number1
case number2

یکم تحقیق کن;)

کاربر سایت

سرور پایتون

عضویت از 1401/05/18

  • جمعه 21 مرداد 1401
  • 10:26

عه اشتب شد:(

double number
case numbers

درستش اینه:|

کاربرانی که از این پست تشکر کرده اند سرور پایتون

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)