# Thread: [RESOLVED] Sum Frequency Trouble

1. ## [RESOLVED] Sum Frequency Trouble

Hello Everyone,

I am creating a program that rolls two dice 5 times and adds the values together. This information is shown in a listbox. The issue I am having is that I need the frequency of the sums to show in a second listbox. I have been searching everywhere and am having trouble finding something that will work. Here is the code for the program I have so far:
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void RollDicebtn_Click(object sender, EventArgs e)
{
int firstDice = 0;
int secondDice = 0;
int sum = 0;
Random randomNumber = new Random();
int[] frequencies = new int[13]; //frequencies[2] is the frequency of the sum 2, frequencies[12] is for sum 12

for (int i = 0; i < 5; i++)
{
firstDice = randomNumber.Next(1, 6);
secondDice = randomNumber.Next(1, 6);
sum = firstDice + secondDice;
String.Format("1 Dice = {0}\t2 Dice = {1}\tSum = {2}", firstDice, secondDice, sum));
frequencies[sum]++;
}
}
}
}
I need help with how to get the frequencies of the sums to appear in the second box. I am not asking for the codes to be done for me, I just need an example or something to get me started in the right direction. Like I said before, I have been searching everywhere with how to do this and nothing seems to be working for me. I am also attaching an image of the program running to help give you an idea of what I am doing.

2. ## Re: Sum Frequency Trouble

Just to add a little more clarity, here is an example of what I am looking for in the second box:

Frequency of sum 2 = 0
Frequency of sum 3 = 0
Frequency of sum 4 = 0
Frequency of sum 5 = 2

... and so on all the way through 12. Thanks for any help, I truly appreciate it.

3. ## Re: Sum Frequency Trouble

First thing that pops into my mind is to use a dictionary. Once you've rolled both dice, get the sum and check the dictionary to see if the sum exists as a key. If it does, increment the value by 1, if it doesn't then add the key and set the value to 1.

Then, once you're done, you can loop through the dictionary to list all the sums you rolled and their frequency

4. ## Re: Sum Frequency Trouble

Thanks kfcSmitty, I was starting to think that no one would offer me any help. I had tried to use a dictionary once, but I wasn't able to get it to work. Basically, I am having trouble figuring out how to get it to loop through to list all the sums. I am not very good with coding and am trying to learn the best I can. I will continue to research how to use the dictionary properly but would also appreciate anymore help that I can get. I will check in throughout the day to see if anymore advice is giving or to let you know how I am doing. Thanks again.

5. ## Re: Sum Frequency Trouble

Here is an example. I created an <int,int> dictionary object and initialized it. Then I loop through the dictionary and print it.

C# Code:
1. Dictionary<int, int> numberCount = new Dictionary<int, int>() {{1,1}, {4,1}, {5,3} };
2.
3. foreach (int key in numberCount.Keys)
4. {
5.   Console.WriteLine(key + ": " + numberCount[key]);
6. } //end foreach

And below is the code to increment/add the value to the dictionary. The value I'm checking for is 1, but you would need to integrate it into your code appropriately.

C# Code:
1. if (numberCount.Keys.Contains(1))
2. {
3.   //if it contains the value you're trying to add -- aka 1 in this instance, then increment the call
4.   numberCount[1]++;
5. }
6. else
7. {
8.   //otherwise, add the key to the dictionary and set the count to 1
10. } //end if

6. ## Re: Sum Frequency Trouble

Originally Posted by kfcSmitty
Here is an example. I created an <int,int> dictionary object and initialized it. Then I loop through the dictionary and print it.

C# Code:
1. Dictionary<int, int> numberCount = new Dictionary<int, int>() {{1,1}, {4,1}, {5,3} };
2.
3. foreach (int key in numberCount.Keys)
4. {
5.   Console.WriteLine(key + ": " + numberCount[key]);
6. } //end foreach

And below is the code to increment/add the value to the dictionary. The value I'm checking for is 1, but you would need to integrate it into your code appropriately.

C# Code:
1. if (numberCount.Keys.Contains(1))
2. {
3.   //if it contains the value you're trying to add -- aka 1 in this instance, then increment the call
4.   numberCount[1]++;
5. }
6. else
7. {
8.   //otherwise, add the key to the dictionary and set the count to 1
10. } //end if
I support the use of a dictionary here. Although a dictionary is a collection of KeyValuePair's, you don't need to loop through the keys, and index the original collection if you just loop through the KeyValuePair's:

C# Code:
1. Dictionary<int, int> numberCount = new Dictionary<int, int>() { { 1, 1 }, { 4, 1 }, { 5, 3 } };
2.
3. foreach (KeyValuePair<int, int> pair in numberCount)
4. {
5.     Console.WriteLine("{0} : {1}", pair.Key, pair.Value);
6. }

7. ## Re: Sum Frequency Trouble

Ok thanks for the info guys, but I have to say I am completely lost on what is going on. Sorry if I am frustrating you all a bit.

8. ## Re: Sum Frequency Trouble

Originally Posted by ncgp81
Ok thanks for the info guys, but I have to say I am completely lost on what is going on. Sorry if I am frustrating you all a bit.
What part are you lost on?

9. ## Re: Sum Frequency Trouble

When I try to create a dictionary the way explained by you guys, I get a few errors. One error is with Console.WriteLine, I get an error under WriteLine that says "System.Console.WriteLine(string, params object[]) is a 'method' but is used like a 'type'". Another problem I am having is calling my sum. I get an error and the options to either create a new type or a new method. I am sure that it this is due to mistakes that I am making by not fully understanding how to code, but I am having trouble figuring out how I am suppose to properly do this.

10. ## Re: Sum Frequency Trouble

Let's see your code then I can't predict exactly what you're doing wrong, but if I can see what you're doing, maybe I can show you.

11. ## Re: Sum Frequency Trouble

Sorry I deleted everything and tried something else. I do not remember exactly what I had so I just copied what Smitty had and tried to change it the way I had it, which I did not do correctly. I rushed to try it again so that I did not keep you waiting long so here is what it is now:
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void RollDicebtn_Click(object sender, EventArgs e)
{
int firstDice = 0;
int secondDice = 0;
int sum = 0;
Random randomNumber = new Random();
int[] frequencies = new int[13]; //frequencies[2] is the frequency of the sum 2, frequencies[12] is for sum 12

for (int i = 0; i < 5; i++)
{
firstDice = randomNumber.Next(1, 6);
secondDice = randomNumber.Next(1, 6);
sum = firstDice + secondDice;
String.Format("1 Dice = {0}\t2 Dice = {1}\tSum = {2}", firstDice, secondDice, sum));
frequencies[sum]++;
}
}

Dictionary<int, int> numberCount = new Dictionary<int, int>() {{1,1}, {4,1}, {5,3} };

foreach (int sum in tSum.RollSumbox)
{
Console.WriteLine(sum + ": " + numberCount[sum]);
}
if (numberCount.Keys.Contains(1))
{
numberCount[1]++;
}
else
{
}

}
}
I am probably going to delete this again and try some other things that I am finding through research, but I will definitely check back in a few minutes so that I can get your advice.

12. ## Re: Sum Frequency Trouble

That looks like a bunch of jumble to me.. some of that code is trying to run outside of the scope of a method as if it was some kind of code routine that should be in a method...

I'm not going to just fix the code for you though, if this is different than what you had before, but you haven't even mentioned what you were having trouble with in this new "revision". I'll point out that you shouldn't be defining a new instance of the Random class each time that button is clicked though:
Code:
Random randomNumber = new Random();
Put that outside of the button click method. Take a look here for more information: http://msdn.microsoft.com/en-us/libr...=VS.71%29.aspx

~Ace

13. ## Re: Sum Frequency Trouble

This new revision was just thrown together quickly, I didn't want to keep you waiting long and was hoping to remember what it was I had exactly but couldn't. The first part of my code works fine, it is just where I try creating the dictionary that I start getting errors. It does still show the same error with the Console.WriteLine part though. I will try to get it back the way I had it and repost but it might take me a little bit to recall it exactly how it was. And I would not want you to just fix it for me because I would not learn anything from that and the program would be pointless if I did not learn how the codes work. On a side note, I just found something about Enumerators. Do you think this is something that might help me? Sorry I am trying but I always seem to have great difficulties with learning and understanding coding.

14. ## Re: Sum Frequency Trouble

Do you think this is something that might help me?
Not unless you want to understand more about how the foreach works or if you're building your own collection. But this is much more advanced than what you are probably currently expected to know at your skill level so far.

it is just where I try creating the dictionary that I start getting errors. It does still show the same error with the Console.WriteLine part though
I know: "That looks like a bunch of jumble to me.. some of that code is trying to run outside of the scope of a method as if it was some kind of code routine that should be in a method... "

Can't just paste code in and expect it to work

15. ## Re: Sum Frequency Trouble

Ok, then I will go back to what I was trying to do with the information you provided me, I do not want to get too much past anything within my skill level. Let me mess with the coding a bit and I will post again, it may take me a little while because I am also trying to read things to try getting a better understanding of what I am trying to do and what the codes mean.

16. ## Re: Sum Frequency Trouble

If you want to get the sense of figuring this out on your own, i'll give you a hint. Look at the brackets in your code and the way they match up. All bits of code that 'actually do something' should be within a method.

17. ## Re: Sum Frequency Trouble

Hello Ace and anyone else that would like to take a look and provide assistance,
I had trouble with figuring out the Dictionary and making it work. I had someone in my class give me some direction on how else I could do this. Unfortunately, I am not allowed to post my code to my classmate only discuss what we are doing. So I am posting my updated code here and would like any advice:
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void RollDicebtn_Click(object sender, EventArgs e)
{
int firstDice = 0;
int secondDice = 0;
int sum = 0;
Random randomNumber = new Random();
int [] frequencies = new int[11];
int offset = 2; //frequencies[2] is the frequency of the sum 2, frequencies[12] is for sum 12

for (int i = 0; i < 5; i++)
{
firstDice = randomNumber.Next(1, 6);
secondDice = randomNumber.Next(1, 6);
sum = firstDice + secondDice;
String.Format("1 Dice = {0}\t2 Dice = {1}\tSum = {2}", firstDice, secondDice, sum));
frequencies[sum]++;
}

// TODO - display the frequencies array elements as listbox2 items
for (int i = 0; i<11; i++)
Console.WriteLine("{0} : {1}", i + offset, frequencies[i]);
ListBox.Add(String.Format("{0} : {1}", i + offset, frequencies[i]);
}

}
}
}
I am having an issue with the Add command. The error I get is: "'System.Windows.Forms.ListBox' does not contain a definition for 'Add'". Any help or suggestions will be greatly appreciated.

18. ## Re: Sum Frequency Trouble

What is the name of your ListBox? You're trying to reference it in an incorrect way.. you're referencing the object type rather than the object itself.

Example:

C# Code:
1. //right way to do it
2. ListBox listbox_to_add_to = new ListBox();
4.
5. //what you're doing

Find out what you've called your ListBox and use that name to reference the object in the code-behind

19. ## Re: Sum Frequency Trouble

kfcSmitty is right, what you're doing, and hopefully you did not name your ListBox, "ListBox"... Is referencing the System.Windows.Forms.ListBox class, instead of the instance of the ListBox, that you want to add the item to.

20. ## Re: Sum Frequency Trouble

Sorry guys,

The name of my listbox is 'Freqbox' since that is where the frequencies are to appear. I really do not know why I changed it to listbox before I posted this. When I have it as 'Freqbox' I am still getting the same error.

21. ## Re: Sum Frequency Trouble

Originally Posted by ncgp81
Sorry guys,

The name of my listbox is 'Freqbox' since that is where the frequencies are to appear. I really do not know why I changed it to listbox before I posted this. When I have it as 'Freqbox' I am still getting the same error.
What error are you getting? There's no way you should be getting the same error unless Freqbox is some kind of custom ListBox class.

22. ## Re: Sum Frequency Trouble

The error I am getting when I use Freqbox is:
"'System.Windows.Forms.ListBox' does not contain a definition for 'Add' accepting a first argument of type 'System.Windows.Forms.ListBox' could be found (are you missing a using directive or an assembly reference?)"

23. ## Re: Sum Frequency Trouble

Ok, here is where I am at now. I tried using the suggestion from smitty and I still get a couple errors. When I use this code:
Code:
Listbox Freqbox = new ListBox();
Freqbox.Add(String.Format("{0} : {1}", i + offset, frequencies[i]);
I get this error under listbox:
"The type or namespace 'ListBox' could not be found (are you missing a using directive or an assembly reference?)"
Then when I try this code:
Code:
I get the following error with Freqbox:
"'WindowsFormApplication1.Form1.Freqbox' is a 'field' but is used like a 'type'".
What am I not doing right?

24. ## Re: Sum Frequency Trouble

Why are you declaring a new instance of a ListBox dynamically though?

This is wrong though:
Code:
You're trying to use Freqbox, which is already declared as a ListBox, as a type for a new variable named listbox_to_add_to... Which makes no sense.

25. ## Re: Sum Frequency Trouble

Here is my full code as it is right now:
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void RollDicebtn_Click(object sender, EventArgs e)
{
int firstDice = 0;
int secondDice = 0;
int sum = 0;
Random randomNumber = new Random();
int [] frequencies = new int[11];
int offset = 2; //frequencies[2] is the frequency of the sum 2, frequencies[12] is for sum 12

for (int i = 0; i < 5; i++)
{
firstDice = randomNumber.Next(1, 6);
secondDice = randomNumber.Next(1, 6);
sum = firstDice + secondDice;
String.Format("1 Dice = {0}\t2 Dice = {1}\tSum = {2}", firstDice, secondDice, sum));
frequencies[sum]++;
}

// TODO - display the frequencies array elements as listbox2 items
for (int i = 0; i<11; i++)
Console.WriteLine("{0} : {1}", i + offset, frequencies[i]);
}

}
}
}

26. ## Re: Sum Frequency Trouble

Code:
ListBox is a type, Freqbox is not, so I'm not sure what you're doing there. Freqbox was declared as an instance of a ListBox, but it is not a Type. The ListBox is a Type, of Control.

27. ## Re: Sum Frequency Trouble

So should I replace Freqbox with ListBox and then replace new Listbox with Freqbox? Sorry, I am not too sure what I am doing and all of my research has not really helped me to understand any better either. I just cannot seem to get the hang of this.

28. ## Re: Sum Frequency Trouble

If this is making you struggle, then you should be going back to the fundamentals of C# first with variables and types. Declaring a ListBox dynamically won't do anything unless you add it to the form container and you assign it's other properties to define a placement and all of that... Why aren't you using the Designer view for this? I don't understand. :S

But if this confuses you, I really think it would be helpful and beneficial to your understanding if you just backtrack a little and learn about the Designer and adding/managing controls.

Frequencies, assuming it's a ListBox , looks like it's already on the form, so you shouldn't have to declare a new instance of the ListBox anyways... It's already on your Form.

29. ## Re: Sum Frequency Trouble

That's where I get confused too. This is my first C# class and only the third project I have had to do. I do not know why, but I have always had trouble grasping coding and the different languages (Java, HTML, etc...). This is why programming is not my major but I have to take these classes to meet my IT requirements. I will continue to do research but it all just seems to confuse me more the more I try. You have been the most help that I have been able to find and I truly thank you for the help and for your time. I will continue trying to figure this all out though I feel that it may be a lost cause. Thank you again for all of your assistance.

30. ## Re: Sum Frequency Trouble

When you add a control to a form, in the hidden designer code (which you can see in your solution explorer if you choose the option to show all files), a variable is already assigned kind of like a 'handle' to that control. By default, your first ListBox added should follow the naming standard 'listBox1' which is assigned by the time you drag the ListBox to the form automatically. Your next ListBox if you were to add another, 'listBox2', and so on. If I were a betting man, that Frequencies listbox should have the name 'listBox2' if I'm right. Assuming you didn't change the designer names of any of the controls, and you added the Frequencies ListBox second.

By trying to dynamically create a new instance of a System.Windows.Forms.ListBox, you're creating a new listbox, and one that is definitely not the one you are seeing on the form, when you added it via the designer view.

31. ## Re: Sum Frequency Trouble

You are correct, the frequencies box was indeed the second listbox that I added, but I did change the name to Freqbox when I added it. I am looking at the designer code (it is called Form1.Designer.cs if I am looking at the right thing) and I see Freqbox there. It is shown in the codes as this:
Code:
private System.Windows.Forms.ListBox Freqbox;
This is what I am looking for and how it should be, correct?

32. ## Re: Sum Frequency Trouble

Yes... See how it's already a ListBox, and that ListBox is the type of that variable?

Freqbox.Add(). You don't need to do ANYTHING like this:
Code:
Any line where you're using the 'new' keyword and trying to create a new instance of a ListBox with it, no.

33. ## Re: Sum Frequency Trouble

Ok, so if I am following correctly then do I want my code to be:
Code:
Console.WriteLine("{0} : {1}", i + offset, frequencies[i]);
If so I am still getting the error that it does not contain a definition for 'Add'. I don't want to add it to the Designer codes do I?
Here is my entire code right now if you need to see it:
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void RollDicebtn_Click(object sender, EventArgs e)
{
int firstDice = 0;
int secondDice = 0;
int sum = 0;
Random randomNumber = new Random();
int [] frequencies = new int[11];
int offset = 2; //frequencies[2] is the frequency of the sum 2, frequencies[12] is for sum 12

for (int i = 0; i < 5; i++)
{
//Sets the dice to roll a random number
firstDice = randomNumber.Next(1, 6);
secondDice = randomNumber.Next(1, 6);
//Adds the values of the two dice
sum = firstDice + secondDice;
String.Format("1 Dice = {0}\t2 Dice = {1}\tSum = {2}", firstDice, secondDice, sum));
frequencies[sum]++;
}

// TODO - display the frequencies array elements as listbox2 items
for (int i = 0; i<11; i++)
Console.WriteLine("{0} : {1}", i + offset, frequencies[i]);

}

}
}
And here is the code from the Designer:
Code:
namespace WindowsFormsApplication1
{
partial class Form1
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;

/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}

#region Windows Form Designer generated code

/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.RollDicebtn = new System.Windows.Forms.Button();
this.RollSumbox = new System.Windows.Forms.ListBox();
this.Freqbox = new System.Windows.Forms.ListBox();
this.SuspendLayout();
//
// RollDicebtn
//
this.RollDicebtn.Font = new System.Drawing.Font("Microsoft Sans Serif", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.RollDicebtn.Location = new System.Drawing.Point(78, 25);
this.RollDicebtn.Name = "RollDicebtn";
this.RollDicebtn.Size = new System.Drawing.Size(285, 81);
this.RollDicebtn.TabIndex = 0;
this.RollDicebtn.Text = "Roll Dice and Display";
this.RollDicebtn.UseVisualStyleBackColor = true;
this.RollDicebtn.Click += new System.EventHandler(this.RollDicebtn_Click);
//
// RollSumbox
//
this.RollSumbox.FormattingEnabled = true;
this.RollSumbox.Location = new System.Drawing.Point(78, 140);
this.RollSumbox.Name = "RollSumbox";
this.RollSumbox.Size = new System.Drawing.Size(285, 134);
this.RollSumbox.TabIndex = 1;
//
// Freqbox
//
this.Freqbox.FormattingEnabled = true;
this.Freqbox.Location = new System.Drawing.Point(78, 304);
this.Freqbox.Name = "Freqbox";
this.Freqbox.Size = new System.Drawing.Size(285, 134);
this.Freqbox.TabIndex = 2;
//
// Form1
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(457, 467);
this.Name = "Form1";
this.Text = "Everett- Dice Sum Frequencies";
this.ResumeLayout(false);

}

#endregion

private System.Windows.Forms.Button RollDicebtn;
private System.Windows.Forms.ListBox RollSumbox;
private System.Windows.Forms.ListBox Freqbox;
}
}

34. ## Re: Sum Frequency Trouble

Ok, I solved the Add definition problem by changing it to
Code:
Freqbox.Items.Add(String.Format("{0} : {1}", i + offset, frequencies[i]));
All I needed was to add 'Items' to the code. Now my only issue is with the two instances of 'i' that I have in that line of code. I am getting this error: "The name 'i' does not exist in the current context". I am confused by this since it is used in the lines above it without any errors.

35. ## Re: Sum Frequency Trouble

To add to my last post, I do get two options with the 'i' errors: Generate property stub or Generate field stub. I am not sure if I should choose one of these or should I try something else?

36. ## Re: Sum Frequency Trouble

If that code you have is in this loop:
Code:
for (int i = 0; i<11; i++)
Console.WriteLine("{0} : {1}", i + offset, frequencies[i]);
}
Then there would be no problem, otherwise, it is, as it says: i is not declared. There's no i to reference a value for a variable in the scope in which you're trying to use i from. Forgot about Items, i'm writing on my Surface so bare with me... And I cannot install Visual Studio either on this RT device.

You shouldn't be doing anything with a stub here. There's no i variable being seen in that scope, you need to declare it. I think you're moving too fast however in C# programming ...

I'm going to provide you with some references on scope: http://msdn.microsoft.com/en-us/libr...=VS.71%29.aspx

You probably declared it before this loop or after it, and you'll see in that link why it's invalid when you try to use i. Trying to just copy and paste in code, you'll get no where, if you want to pass this course you're going to have to slow down, read, and learn. I would suggest looking up the C# reference on MSDN.

I really urge you to read though, I can't teach you anything at this point if you don't understand the fundamentals yet. You'll be using code and taking in advice you don't understand, which is basically no more productive than running in circles, until you get some traction and know your do's/don'ts and some of the basics for the language you're trying to use.

Good luck

~Ace

37. ## Re: Sum Frequency Trouble

I have actually gotten rid of all errors by making a couple of changes to my code. Here is my entire code now:
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void RollDicebtn_Click(object sender, EventArgs e)
{
int firstDice = 0;
int secondDice = 0;
int sum = 0;
Random randomNumber = new Random();
int[] frequencies = new int[13]; //frequencies[2] is the frequency of the sum 2, frequencies[12] is for sum 12

for (int i = 0; i < 5; i++)
{
firstDice = randomNumber.Next(1, 6);
secondDice = randomNumber.Next(1, 6);
sum = firstDice + secondDice;
String.Format("1 Dice = {0}\t2 Dice = {1}\tSum = {2}", firstDice, secondDice, sum));
frequencies[sum]++;
}

// TODO - display the frequencies array elements as listbox2 items
for (int i = 0; i<11; i++)
Console.WriteLine(String.Format("1 Dice = {0}\t2 Dice = {1}\tSum = {2}", firstDice, secondDice, sum));
Freqbox.Items.Add(String.Format("Frequency of sum 2 = ", sum + 1, frequencies[sum + 1]));
}

}
}
Everything is running good and I am close to getting what I need into my Freqbox listbox. When I run the program and press the button to roll the dice, I get "Frequency of sum 2 =" to appear into the Freqbox. Now I just have to figure out how to get it to actually show the counts of the total sums of 2, and do this for all sums up to 12. Once I figure this out then I am good to go. Thank you again Ace for all of your help, you have been a terrific person during this (as well as very patient). If you have any suggestions to give to lead me to getting the actual count and add each sum into the Freqbox, I would appreciate it. And I think you are right, it tends to seem that I am just running in circles. I just get so anxious, then frustrated when I can't seem to figure out the proper codes. I probably just need to slow down a bit. Anyways, all errors are gone and I feel that I am finally getting somewhere, and all that is left is figuring out how to get the sum count to actually show.

38. ## Re: Sum Frequency Trouble

I am going to call it a night and will return in the morning to continue on this program before I go to work. Again Ace, I cannot thank you enough for your time, help, and patience. All that is left is to get the sum frequency counts to appear in the Freqbox. I just might need to be pointed in the right direction. I will also check out the link you posted tomorrow after I get some sleep and refresh. Thank you again for everything, it really has meant a lot to me.

39. ## Re: Sum Frequency Trouble

The value for the sums should be in the Value in the KeyValuePair for the Dictionary. Note: You're not using String.Format correctly, there is no format for the parameters you've specified.
Code:
Freqbox.Items.Add(String.Format("Frequency of sum 2 = ", sum + 1, frequencies[sum + 1]));
Code:
"Frequency of sum 2 = "
Where are they? {0} and {1}? Read this: http://msdn.microsoft.com/en-us/libr...=vs.90%29.aspx

40. ## Re: Sum Frequency Trouble

Hey Ace,
It has been a lot of work and time, but I finally got my program to work the way I needed it to. It took a lot of reading, and trial and error, but it finally works properly. I cannot say that I fully understand everything yet, I was just trying things as I researched them. I thank you for all of your help and time. I still have a lot to learn with coding but I definitely would not have succeeded without your help. Thank you so much. Before I mark this thread as resolved, is there anything that I need to do to give you a rating or credit or anything to inform that you provided excellent assistance? I just want to make sure because I see you have "Please rate my post if this helped you out." in your signature and I definitely want you to get the credit you deserve. Also, I am posting my final code just so you can see how I finished it:
Code:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void RollDicebtn_Click(object sender, EventArgs e)
{
int firstDice = 0;
int secondDice = 0;
int sum = 0;
Random randomNumber = new Random();
int[] frequencies = new int[13]; //frequencies[0] is the frequency of the sum 2, frequencies[10] is for sum 12
int offset = 0;

for (int i = 0; i < 5; i++)
{
firstDice = randomNumber.Next(1, 6);
secondDice = randomNumber.Next(1, 6);
sum = firstDice + secondDice;
String.Format("1 Dice = {0}\t2 Dice = {1}\tSum = {2}", firstDice, secondDice, sum));
frequencies[sum - offset]++;
}

for (int i = 2; i < 13; i++)
{
Freqbox.Items.Add(String.Format("Frequency of sum {0} = {1}", i + offset, frequencies[i]));
}
}
}
}
Again thank you and just let me know what I have to do to give you your rating.

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•

Featured