|
Thanks for your reply.
I m implementing Sudoku that computer will play after the user inputs certain numbers in its grid. The logic that I m following is that the function PossibleNumbers() calculates the numbers that are possible for each cell of 9x9 grid of Sudoku.The number of numbers possible for each cell may Vary. If for example 1, 3 are numbers possible for one cell, then 2,3,4 maybe possible for other cell.PossibleNumbers() runs for every cell of the grid. Here is its implementation
private int[] PossibleNumbers()
{ int[] PossibleNumbers = new int[] { 1, 2, 3, 4, 5, 6 };
Array.Clear(PossibleValues, 0, 6);
int k = 0;
for (int i=0 ; i < PossibleNumbers.Length; i++)
{
int count = 0;
for (int j=0 ; j < tempArray.Length; j++)
{
if (tempArray[j] == Convert.ToInt32(PossibleNumbers[i]))
{
count++;
break;
}
}
if (count == 0)
{
PossibleValues[k] = PossibleNumbers[i];
k++;
}
}
return PossibleValues;
}
The size of PossibleValues is set to 6 at the time of initializing it.so if two numbers are possible for a cell then the remaining 4 indexes will contain zero. And this is the problem. How do I go about it.
Please Help!
Thanks
|
|
|
|
|
This is the implementation. The inconsistency in variable declaration and usage was a typo. How do I proceed now ?
PossibleValues = PossibleNumbers();
for (int i = 0; i < PossibleValues.Length; i++)
{
if (PossibleValues[i] != 0)
{ JaggedArray[jaggedVar][i] = PossibleValues[i];
}
}
jaggedVar++;
|
|
|
|
|
ariez88 wrote: How do I proceed now ?
With what?
V.
|
|
|
|
|
With assigning PossibleValues to Jaggedarray without encountering Null Reference Exception.
|
|
|
|
|
If it is for a Sudoku I'm not sure from your code, how you'll implement it.
However I would use the following logic.
Create a 9x9 integer array which will be your playboard.
After that you'll need to create a "solved" sudoku (I think there is only one solution, not sure)
Somewhere on the internet you should be able to find how many digits you need where to be able to solve the soduku. Create a copy of the solution, remove the digits that are not necessary and voila, your sudoku is ready.
There is, in my opinion, no need for a jagged array.
Hope this helps.
V.
|
|
|
|
|
Actually, the user will input the numbers that are normally given in any Sudoku game,
once those numbers are entered, the computer will present the solution using If-Else logic throughout the game, calculating the possible numbers for each cell of the 9x9 grid.
|
|
|
|
|
That doesn't seem like a bad solution, but still no need for jagged array's, you need to use a fixed multidimensional array of 9x9.
V.
|
|
|
|
|
Hi All !
I have a pdf file, place in the debug directory (in any drive) . I want to open this file with any full path :
string appPath = Path.GetDirectoryName(Application.ExecutablePath);
Process.Start(appPath + "\\Debug\\HelpFile.pdf");
But I have an error that can not file file ,
pl z help me !
thanks in advance !
|
|
|
|
|
Message Removed
modified 8-May-12 16:18pm.
|
|
|
|
|
@"..\Debug\HelpFile.pdf");
It's works !
Thanks in advance!
Regards !
|
|
|
|
|
Yeah, but when you deploy the application in production, it'll fail! Unless you have the Debug folder created when you install the application, BOOM!
|
|
|
|
|
|
thanx !
|
|
|
|
|
How do you create and link multiple forms in c#?
|
|
|
|
|
Could you be more specific? Link the forms to what? Are these different forms, or multiple forms of the same type?
Basically, tell us what scenario you are trying to satisfy here, and tell us what code you currently have. Without this, we can only guess what you really want, and could steer you in completely the wrong direction.
|
|
|
|
|
Form1 form = new Form1();
form.ShowDialog();
|
|
|
|
|
FORM1 FR = NEW FORM1;
FR.SHOW();
|
|
|
|
|
Been stuck with this for too long now and thought I ask for help. From reading a bunch of threads this seems trivial for you guys. I am not on some homework, just doing it out of self interest following a tutorial at csharpskolan.se
I do know how to make a windows form to generate a number using two numericUpDown boxes but I though I try make a dice program and pick the number of sides out of a comboBox. I have added 3 sided dice, 4 sided dice and so on using the design mode but I do not know how to put the value (1, 4) to the 3 sided dice selection for example.
Feels like I am getting stuck making the method, to call it depending on how many times I want to roll the 3 sided dice. I am going to have the output to a richTextBox.
What I am using is a comboBox(dice sides), textBox(number of times to roll), richTextBox(to diplay the value) and a button to generate it.
This is what I got after redoing it so many times.
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 Dice
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
richTextBox1.Clear();
var random = new RollDice();
}
}
public class RollDice
{
public int RandomDice(Int32 numberOfSides, Int32 numberOfTimes)
{
Random rndGen = new Random();
for (int i = 0; i < numberOfSides; i++);
int randomT3;
int randomT4;
int randomT5;
int randomT6;
randomT3 = rndGen.Next(1, 4);
randomT4 = rndGen.Next(1, 5);
randomT5 = rndGen.Next(1, 6);
randomT6 = rndGen.Next(1, 7);
}
}
}
modified 8-May-12 8:35am.
|
|
|
|
|
Here you go.
public static int RandomDice(Int32 numberOfSides, Int32 numberOfTimes)
{
int total = 0;
Random rndGen = new Random();
for (int i = 0; i < numberOfTimes; i++)
{
total = total + rndGen.Next(1, numberOfSides + 1);
}
return total;
}
|
|
|
|
|
Thanks a bunch, now it makes sence. I have been staring myself blind at this. I added a piece of code to the random but I am unsure what it does.
Random rndGen = new Random((int)DateTime.Now.Ticks);
To keep the precision on "random"?
|
|
|
|
|
I'm just guessing here but I think that's a seed value. And probably unnecessary since I guess the parameterless constructor does something similar anyway.
|
|
|
|
|
|
I don't think I got that. I have a comboBox and added 3 sided dice, 4 sided dice etc. using, skipped the design mode and just put it into the form, the code now looks like this.
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 Dice
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
comboBox1.Items.Add("3 sided die");
comboBox1.Items.Add("4 sided die");
comboBox1.Items.Add("5 sided die");
comboBox1.Items.Add("6 sided die");
comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "Value";
}
private void button1_Click(object sender, EventArgs e)
{
richTextBox1.Clear();
var random = new RollDice();
var dice =
int result;
result = ();
richTextBox1.Text = (result).ToString();
}
}
public class RollDice
{
public static int RandomDice(Int32 numberOfSides, Int32 numberOfTimes)
{
int total = 0;
Random rndGen = new Random((int)DateTime.Now.Ticks);
for (int i = 0; i < numberOfTimes; i++)
{
total = total + rndGen.Next(1, numberOfSides + 1);
}
return total;
}
}
}
I am unsure how to assign "3 sided die" the value of 3, on my button click take the selected value in the comboBox1 (numberOfSides) + (numberOfTimes) from my textBox1 and call the method.
Some code in here is incomplete, the call method part and comboBox items has 0 value
|
|
|
|
|
Don't use the designer to set the values.
|
|
|
|
|
I did not use the designer, that first sentence looked a bit weird, remove "using". I ment I skipped the designer and made the code for the combobox in the form, the code I pasted above.
Don't really know how to do this, assign each dropdown a value, get the value depending on what is selected + the number of times of course that is typed to roll in the textBox1.
Never used a comboBox before.
modified 9-May-12 9:16am.
|
|
|
|