|
Has anybody tried to download the "core sdk" or the complete sdk (November 2001) from microsoft ????
If someone was able to download it, then please let me know because i have
some big problems with it!!!
thanks!
|
|
|
|
|
I downloaded it 2 days ago.
All 380 MB of it
No problems
I didnt try combining them yet though
Nish
My miniputt high is now 29
I do not think I can improve on that
My temperament won't hold
www.busterboy.org
|
|
|
|
|
What problems have you got cos i had problems comining it under 9x. I fixed this by unzipping it to c:\temp and tehn it worked fine.
Peter
|
|
|
|
|
// Creates a reference of the board then copies
// the reference to a new board
const CBoard& rConstBoard = *mpBoard;
CBoard Board = rConstBoard;
is this call rite? because it causing my whole function not to work properly.
can any tell me whats the problem.
here is my whole function if my question information is insufficient...
// Searches for the best computer move on the board
int CComputer::CheckForMoves(int Depth, int Alpha, int Beta, int& Row, int& Col)
{
// Check if the Entered Depth is greater than the Maximum depth
ASSERT(Depth >= MAXDEPTH);
// Creates a reference of the board then copies
// the reference to a new board
const CBoard& rConstBoard = *mpBoard; <-- the problem
CBoard Board = rConstBoard;
Row = Col = 1;
return 0;
}
And i wanted to return both Row and Col but it wont do that... i have debugged 15X wid the debugger and i still can find my mistake. can anyone tell me what i am doing wrong???
john
|
|
|
|
|
Why don't you just do this:
CBoard Board = *mpBoard; // Assuming mpBoard has been properly instantiated.
What makes you think you need a reference to CBoard? I mean, you've got a pointer to a board, than a reference to the same board and than a local instantiation of the same board. Looks a little convoluted to me.
"There's a slew of slip 'twixt cup and lip"
|
|
|
|
|
that worked but i still cant figure out the bug in my function. it returns both the row and column but it wont set the value.
here is where i call the previous function...
// Handles all the moves done by the computer
void CChildView::ComputerMove()
{
// Set to default values
int row = 0, col = 0;
// Check for a possible move
mpComputer->CheckForMoves(MAXDEPTH,Lose,Win,row,col); <-- this returns
// both the row and column but the following function wont work
// though the row and column is 1...
mpComputer->SetMove(row,col); <-- wont work...
Invalidate();
}
when i comment out this: CBoard Board = *mpBoard;
the whole function works just fine.... can anyone help me well, anways, thank you for your help... in advance
|
|
|
|
|
You have something wrong somewhere in your CBoard equal operator logic. The most likely culprit is that you are overwritting something in memory that something in SetMove does not like. Debug into CBoard& operator=( CBoard& );
"There's a slew of slip 'twixt cup and lip"
|
|
|
|
|
OH ok... thanx... i think your right coz i didnt write a default = operator. so i thnk thats the bug... thank you very much again stan
|
|
|
|
|
Are you writing a chess engine?
-CDudd
|
|
|
|
|
no... i am actually writing a Tictactoe program to so i can practice the alpha-beta pruning method.
|
|
|
|
|
I have few modeless dialogs in a specific time and i want
that the dialog that the user click on her will be above all the dialogs - how can i do that???
Thank
|
|
|
|
|
I think WM_LBUTTONDOWN or WM_ACTIVATE will help you
Mazy
"So,so you think you can tell,
Heaven from Hell,
Blue skies from pain,...
How I wish,how I wish you were here." Wish You Were Here-Pink Floyd-1975
|
|
|
|
|
Try SetForegroundWindow and SetActiveWindow
Nish
My miniputt high is now 29
I do not think I can improve on that
My temperament won't hold
www.busterboy.org
|
|
|
|
|
Here the SIMPLE project demo to illustrate the strange bug I noticed just some minutes ago. http://digilander.iol.it/ilbanca/fuffa/Bug.zip
Compile in Debug mode and press the button.
Compile in Release and press the button.
It beheaves in different ways (bad in Release)
The function that made me crazy:
[code]
void Buggy( char* result )
{
char s1[6];
char s2[5];
strcpy(s1,"abcde");
strcpy(s2,"BUG!");
// DOESNT WORK
strcpy(result,"anystring");
strcat(result,s1);
// THIS WAY WORKS
// strcpy(result,s1);
}
[/code]
In Debug mode works
In Release mode not
Setting 'Optimizations' to "Default" instead of "Maximixe Speed" solve the problem, but why?
I want to append 's1' to 'result', and it appends 's2' ((((((((
Bye.
|
|
|
|
|
What is 'result', coming in ? Has it been created, or just declared ?
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
"I'm thinking of getting married for companionship and so I have someone to cook and clean." - Martin Marvinski, 6/3/2002
|
|
|
|
|
void Buggy( char* result )
in the function declaration, where Buggy stores the result of the appending action.
|
|
|
|
|
Yes, but do you say char * pResult; , or do you say char * pResult = new char [255]; , for example ?
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
"I'm thinking of getting married for companionship and so I have someone to cook and clean." - Martin Marvinski, 6/3/2002
|
|
|
|
|
As Christian suggests the definition of 'result' is most likely where the problem lie.
Debug builds initialize the stack, heap etc. whereas release builds don't, which is one of the reasons they behave differently.
Neville Franks, Author of ED for Windows. www.getsoft.com
|
|
|
|
|
Ok.
But this is an initialization:
strcpy(result,"anystring");
Then:
strcat(result,s1);
should append 's1' to 'result', instead it appends the other string 's2' to 'result'...
it has to do with Opt/MazimixeSpeed, that in Debug build is Disabled, but for a such simple task I don't figure out why causes this strange effect...
|
|
|
|
|
Yes, new char[255], is a string, vector of chars. I use Buggy() this way:
void CBugDlg::OnButton1()
{
char* test = new char[255];
Buggy(test);
m_sTest = test;
delete [] test;
UpdateData(FALSE);
}
or
void CBugDlg::OnButton1()
{
char test[255];
Buggy(test);
m_sTest = test;
UpdateData(FALSE);
}
The bug vanishes if I turn Optimizations\MaximixeSpeed to Optimizations\Default. But this still sucks... I must know why
|
|
|
|
|
There is your problem - m_sText = test means both variables point to the same allocated data, which delete [] test will delete. You should also always set deleted pointers to NULL.
Christian
The tragedy of cyberspace - that so much can travel so far, and yet mean so little.
"I'm thinking of getting married for companionship and so I have someone to cook and clean." - Martin Marvinski, 6/3/2002
|
|
|
|
|
Sorry, I did not specify, but m_sTest is a CString object (DDX for a CEDit), so it copies 'test' and there should be no problems about it.
|
|
|
|
|
are you allocating memory for result???
Nish
My miniputt high is now 29
I do not think I can improve on that
My temperament won't hold
www.busterboy.org
|
|
|
|
|
Yes... try the test project if you can, try Debug and Release, pressing the button: it gives no errors, but two different outputs
http://digilander.iol.it/ilbanca/fuffa/Bug.zip
|
|
|
|
|
I am puzzled.
It worked fine.
Both in release and in debug
Nish
My miniputt high is now 29
I do not think I can improve on that
My temperament won't hold
www.busterboy.org
|
|
|
|