Thread overview
Problem with a for loop in a switch case?
Sep 27, 2004
Hytak
Sep 27, 2004
Regan Heath
Sep 27, 2004
Hytak
Sep 27, 2004
J C Calvarese
Sep 27, 2004
Regan Heath
Sep 27, 2004
Hytak
Sep 27, 2004
Bastiaan Veelo
Sep 27, 2004
Hytak
Sep 28, 2004
Bastiaan Veelo
Sep 27, 2004
Jaap Geurts
September 27, 2004
Hi, I am starting D (I love it so much!), and I'm getting better day by day (I
said better, not good ;) ) but I have a little problem.

To practice, I decided to translate little programs I did in C++ when I was beginning my C++, but there is one problem I'm not able to find/fix (I fixed a lot ...).

Here it is:
It's a kind of emulation of a card game, and it's really not complicated. I have
few functions that ask number to the player, and after it compare with a
randomly choosed number. (That's approximatively that.) But in my main(), i have
this code:

int main()
{
[...]

PresenterJeu();

stdout.writeLine("\t (1) Deux joueurs\n" "\t (2) Contre l'ordinateur\n");
mode = stdin.readLine();

switch(mode)
{
case "1":
for (int i = 0; i < 15; i++)
{
pc.RandomSouris();
stdout.writef("\nTour ", toString(i+1));
stdout.writef("\nLa souris vaut: ", toString(sourischoisie));
ComparerCartes(adv.DemanderCarte(),joueur.DemanderCarte());
stdout.writef("Joueur 1: ", toString(joueur.GetTotal));
stdout.writef("Joueur 2: ", toString(adv.GetTotal));
stdout.writeLine("");
}
break;

[...]
}

but when I press 1, it's dooing "kind-of-nothing" ... nothing happens, but the window doesn't freeze... but I can't write anything , and the crusor is clignoting... nobody know how to fix this mistake? It's probably a little thing really easy, but so... (lol... that's the last problem of my apps and it happens at the very last time)

Is this code correct, and the problems come from another part of my code that I did not translated well?


September 27, 2004
On Mon, 27 Sep 2004 00:24:58 +0000 (UTC), Hytak <Hytak_member@pathlink.com> wrote:
> Hi, I am starting D (I love it so much!), and I'm getting better day by day (I
> said better, not good ;) ) but I have a little problem.
>
> To practice, I decided to translate little programs I did in C++ when I was
> beginning my C++, but there is one problem I'm not able to find/fix (I fixed a
> lot ...).
>
> Here it is:
> It's a kind of emulation of a card game, and it's really not complicated. I have
> few functions that ask number to the player, and after it compare with a
> randomly choosed number. (That's approximatively that.) But in my main(), i have
> this code:
>
> int main()
> {
> [...]
>
> PresenterJeu();
>
> stdout.writeLine("\t (1) Deux joueurs\n" "\t (2) Contre l'ordinateur\n");
> mode = stdin.readLine();
>
> switch(mode)
> {
> case "1":      		
> for (int i = 0; i < 15; i++)
> {
> pc.RandomSouris();
> stdout.writef("\nTour ", toString(i+1));
> stdout.writef("\nLa souris vaut: ", toString(sourischoisie));
> ComparerCartes(adv.DemanderCarte(),joueur.DemanderCarte());
> stdout.writef("Joueur 1: ", toString(joueur.GetTotal));
> stdout.writef("Joueur 2: ", toString(adv.GetTotal));
> stdout.writeLine("");
> }
> break;
>
> [...]
> }
>
> but when I press 1, it's dooing "kind-of-nothing" ... nothing happens, but the
> window doesn't freeze... but I can't write anything , and the crusor is
> clignoting... nobody know how to fix this mistake? It's probably a little thing
> really easy, but so... (lol... that's the last problem of my apps and it happens
> at the very last time)
>
> Is this code correct, and the problems come from another part of my code that I did not translated well?

Did you press <enter> (or <return>) after pressing '1'?

Regan

-- 
Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
September 27, 2004
In article <opseymp5e15a2sq9@digitalmars.com>, Regan Heath says...
>
>On Mon, 27 Sep 2004 00:24:58 +0000 (UTC), Hytak <Hytak_member@pathlink.com> wrote:
>> Hi, I am starting D (I love it so much!), and I'm getting better day by
>> day (I
>> said better, not good ;) ) but I have a little problem.
>>
>> To practice, I decided to translate little programs I did in C++ when I
>> was
>> beginning my C++, but there is one problem I'm not able to find/fix (I
>> fixed a
>> lot ...).
>>
>> Here it is:
>> It's a kind of emulation of a card game, and it's really not
>> complicated. I have
>> few functions that ask number to the player, and after it compare with a
>> randomly choosed number. (That's approximatively that.) But in my
>> main(), i have
>> this code:
>>
>> int main()
>> {
>> [...]
>>
>> PresenterJeu();
>>
>> stdout.writeLine("\t (1) Deux joueurs\n" "\t (2) Contre l'ordinateur\n");
>> mode = stdin.readLine();
>>
>> switch(mode)
>> {
>> case "1":
>> for (int i = 0; i < 15; i++)
>> {
>> pc.RandomSouris();
>> stdout.writef("\nTour ", toString(i+1));
>> stdout.writef("\nLa souris vaut: ", toString(sourischoisie));
>> ComparerCartes(adv.DemanderCarte(),joueur.DemanderCarte());
>> stdout.writef("Joueur 1: ", toString(joueur.GetTotal));
>> stdout.writef("Joueur 2: ", toString(adv.GetTotal));
>> stdout.writeLine("");
>> }
>> break;
>>
>> [...]
>> }
>>
>> but when I press 1, it's dooing "kind-of-nothing" ... nothing happens,
>> but the
>> window doesn't freeze... but I can't write anything , and the crusor is
>> clignoting... nobody know how to fix this mistake? It's probably a
>> little thing
>> really easy, but so... (lol... that's the last problem of my apps and it
>> happens
>> at the very last time)
>>
>> Is this code correct, and the problems come from another part of my code that I did not translated well?
>
>Did you press <enter> (or <return>) after pressing '1'?
>
>Regan
>
>-- 
>Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/



Who do you think am I?
I am not that dump!
I pressed enter. But after pressing enter, nothing happened.


September 27, 2004
In article <cj7mkp$s8s$1@digitaldaemon.com>, Hytak says...
>
>Hi, I am starting D (I love it so much!), and I'm getting better day by day (I
>said better, not good ;) ) but I have a little problem.
>
>To practice, I decided to translate little programs I did in C++ when I was beginning my C++, but there is one problem I'm not able to find/fix (I fixed a lot ...).
>
>Here it is:
>It's a kind of emulation of a card game, and it's really not complicated. I have
>few functions that ask number to the player, and after it compare with a
>randomly choosed number. (That's approximatively that.) But in my main(), i have
>this code:
>
>int main()
>{
>[...]
>
>PresenterJeu();
>
>stdout.writeLine("\t (1) Deux joueurs\n" "\t (2) Contre l'ordinateur\n");
>mode = stdin.readLine();
>
>switch(mode)
>{
>case "1":
>for (int i = 0; i < 15; i++)
>{
>pc.RandomSouris();
>stdout.writef("\nTour ", toString(i+1));
>stdout.writef("\nLa souris vaut: ", toString(sourischoisie));
>ComparerCartes(adv.DemanderCarte(),joueur.DemanderCarte());
>stdout.writef("Joueur 1: ", toString(joueur.GetTotal));
>stdout.writef("Joueur 2: ", toString(adv.GetTotal));
>stdout.writeLine("");
>}
>break;
>
>[...]
>}
>
>but when I press 1, it's dooing "kind-of-nothing" ... nothing happens, but the window doesn't freeze... but I can't write anything , and the crusor is clignoting... nobody know how to fix this mistake? It's probably a little thing really easy, but so... (lol... that's the last problem of my apps and it happens at the very last time)
>
>Is this code correct, and the problems come from another part of my code that I did not translated well?
>
>



Who do you think am I?

Of course I pressed!

There isn't the question... if somebody who would have the respect to answer someone as a man to another man, than I am waiting.


September 27, 2004
Hytak wrote:

> In article <opseymp5e15a2sq9@digitalmars.com>, Regan Heath says...
> 
>>On Mon, 27 Sep 2004 00:24:58 +0000 (UTC), Hytak <Hytak_member@pathlink.com> wrote:
>>
>>>Hi, I am starting D (I love it so much!), and I'm getting better day by day (I
>>>said better, not good ;) ) but I have a little problem.
>>>
>>>To practice, I decided to translate little programs I did in C++ when I was
>>>beginning my C++, but there is one problem I'm not able to find/fix (I fixed a
>>>lot ...).
>>>
>>>Here it is:
>>>It's a kind of emulation of a card game, and it's really not complicated. I have
>>>few functions that ask number to the player, and after it compare with a
>>>randomly choosed number. (That's approximatively that.) But in my main(), i have
>>>this code:
>>>
>>>int main()
>>>{
>>>[...]
>>>
>>>PresenterJeu();
>>>
>>>stdout.writeLine("\t (1) Deux joueurs\n" "\t (2) Contre l'ordinateur\n");
>>>mode = stdin.readLine();
>>>
>>>switch(mode)
>>>{
>>>case "1":      		
>>>for (int i = 0; i < 15; i++)
>>>{
>>>pc.RandomSouris();
>>>stdout.writef("\nTour ", toString(i+1));
>>>stdout.writef("\nLa souris vaut: ", toString(sourischoisie));
>>>ComparerCartes(adv.DemanderCarte(),joueur.DemanderCarte());
>>>stdout.writef("Joueur 1: ", toString(joueur.GetTotal));
>>>stdout.writef("Joueur 2: ", toString(adv.GetTotal));
>>>stdout.writeLine("");
>>>}
>>>break;
>>>
>>>[...]
>>>}
>>>
>>>but when I press 1, it's dooing "kind-of-nothing" ... nothing happens, but the
>>>window doesn't freeze... but I can't write anything , and the crusor is
>>>clignoting... nobody know how to fix this mistake? It's probably a little thing
>>>really easy, but so... (lol... that's the last problem of my apps and it happens
>>>at the very last time)
>>>
>>>Is this code correct, and the problems come from another part of my code that I did not translated well?
>>
>>Did you press <enter> (or <return>) after pressing '1'?
>>
>>Regan
>>
>>-- 
>>Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
> 
> 
> 
> 
> Who do you think am I?

I have no idea.


> I am not that dump!

No one accused you of being "dump".

If that's the appreciation you show when someone tries to help, don't be surprised if you don't get much help in the future.

> I pressed enter. But after pressing enter, nothing happened.

-- 
Justin (a/k/a jcc7)
http://jcc_7.tripod.com/d/
September 27, 2004
Hytak wrote:
> In article <cj7mkp$s8s$1@digitaldaemon.com>, Hytak says...
> 
>>Hi, I am starting D (I love it so much!), and I'm getting better day by day (I
>>said better, not good ;) ) but I have a little problem.
>>
>>To practice, I decided to translate little programs I did in C++ when I was
>>beginning my C++, but there is one problem I'm not able to find/fix (I fixed a
>>lot ...).
>>
>>Here it is:
>>It's a kind of emulation of a card game, and it's really not complicated. I have
>>few functions that ask number to the player, and after it compare with a
>>randomly choosed number. (That's approximatively that.) But in my main(), i have
>>this code:
>>
>>int main()
>>{
>>[...]
>>
>>PresenterJeu();
>>
>>stdout.writeLine("\t (1) Deux joueurs\n" "\t (2) Contre l'ordinateur\n");
>>mode = stdin.readLine();
>>
>>switch(mode)
>>{
>>case "1":      		
>>for (int i = 0; i < 15; i++)
>>{
>>pc.RandomSouris();
>>stdout.writef("\nTour ", toString(i+1));
>>stdout.writef("\nLa souris vaut: ", toString(sourischoisie));
>>ComparerCartes(adv.DemanderCarte(),joueur.DemanderCarte());
>>stdout.writef("Joueur 1: ", toString(joueur.GetTotal));                stdout.writef("Joueur 2: ", toString(adv.GetTotal));                 stdout.writeLine("");
>>}             break;
>>
>>[...]
>>}
>>
>>but when I press 1, it's dooing "kind-of-nothing" ... nothing happens, but the
>>window doesn't freeze... but I can't write anything , and the crusor is
>>clignoting... nobody know how to fix this mistake? It's probably a little thing
>>really easy, but so... (lol... that's the last problem of my apps and it happens
>>at the very last time)
>>
>>Is this code correct, and the problems come from another part of my code that I
>>did not translated well?
>>
>>
> 
> 
> 
> 
> Who do you think am I?
> 
> Of course I pressed!
> 
> There isn't the question... if somebody who would have the respect to answer
> someone as a man to another man, than I am waiting.
> 
> 

First of all, this is a pleasant list (like the language) and I have yet to see a disrespectful post that was meant to be disrespectful --- although you are getting close yourself.

But let's cool down.

I can't see anything wrong with the code you posted. Are you sure that pc.RandomSouris() returns? Else I suggest you write a minimal program with a for-loop in a switch statement, and see if it behaves as you expect it to behave. If it does not, you may have discovered a bug.

See you around,
Bastiaan.
September 27, 2004
On Mon, 27 Sep 2004 00:54:21 +0000 (UTC), Hytak <Hytak_member@pathlink.com> wrote:
> In article <opseymp5e15a2sq9@digitalmars.com>, Regan Heath says...
>>
>> On Mon, 27 Sep 2004 00:24:58 +0000 (UTC), Hytak
>> <Hytak_member@pathlink.com> wrote:
>>> Hi, I am starting D (I love it so much!), and I'm getting better day by
>>> day (I
>>> said better, not good ;) ) but I have a little problem.
>>>
>>> To practice, I decided to translate little programs I did in C++ when I
>>> was
>>> beginning my C++, but there is one problem I'm not able to find/fix (I
>>> fixed a
>>> lot ...).
>>>
>>> Here it is:
>>> It's a kind of emulation of a card game, and it's really not
>>> complicated. I have
>>> few functions that ask number to the player, and after it compare with a
>>> randomly choosed number. (That's approximatively that.) But in my
>>> main(), i have
>>> this code:
>>>
>>> int main()
>>> {
>>> [...]
>>>
>>> PresenterJeu();
>>>
>>> stdout.writeLine("\t (1) Deux joueurs\n" "\t (2) Contre l'ordinateur\n");
>>> mode = stdin.readLine();
>>>
>>> switch(mode)
>>> {
>>> case "1":      		
>>> for (int i = 0; i < 15; i++)
>>> {
>>> pc.RandomSouris();
>>> stdout.writef("\nTour ", toString(i+1));
>>> stdout.writef("\nLa souris vaut: ", toString(sourischoisie));
>>> ComparerCartes(adv.DemanderCarte(),joueur.DemanderCarte());
>>> stdout.writef("Joueur 1: ", toString(joueur.GetTotal));
>>> stdout.writef("Joueur 2: ", toString(adv.GetTotal));
>>> stdout.writeLine("");
>>> }
>>> break;
>>>
>>> [...]
>>> }
>>>
>>> but when I press 1, it's dooing "kind-of-nothing" ... nothing happens,
>>> but the
>>> window doesn't freeze... but I can't write anything , and the crusor is
>>> clignoting... nobody know how to fix this mistake? It's probably a
>>> little thing
>>> really easy, but so... (lol... that's the last problem of my apps and it
>>> happens
>>> at the very last time)
>>>
>>> Is this code correct, and the problems come from another part of my code
>>> that I did not translated well?
>>
>> Did you press <enter> (or <return>) after pressing '1'?
>>
>> Regan
>>
>> --
>> Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
>
>
>
> Who do you think am I?
> I am not that dump!

I was simply starting with the simplest answer.. 'occams razor' the 'KISS principle' and all that..
  http://www.hyperdictionary.com/dictionary/Occam's+Razor

> I pressed enter. But after pressing enter, nothing happened.

In that case I would place a printf before and after each function/method call at the top level to isolate the execution path it gets stuck in, once you know where it gets stuck go into that method and repeat the process till you find the system call that is locking up.

Regan

-- 
Using M2, Opera's revolutionary e-mail client: http://www.opera.com/m2/
September 27, 2004
Hi

Hytak: Your code (modified a little ) runs fine on my machine.

#import std.stream;
#
#int main(char[][]args)
#{
#
#  char[] mode;
#
#  stdout.writeLine("\t (1) Deux joueurs\n" "\t (2) Contre l'ordinateur\n");
#  mode = stdin.readLine();
#
#  switch(mode)
#  {
#    case "1":
#      for (int i = 0; i < 15; i++)
#      {
#        stdout.writefln("Tour ", toString(i+1));
#      }
#      break;
#    default:
#      stdout.writef("Wrong function\n");
#  }
#  return 0;
#}


September 27, 2004
In article <cj7rbu$tua$1@digitaldaemon.com>, Bastiaan Veelo says...
>
>Hytak wrote:
>> In article <cj7mkp$s8s$1@digitaldaemon.com>, Hytak says...
>> 
>>>Hi, I am starting D (I love it so much!), and I'm getting better day by day (I
>>>said better, not good ;) ) but I have a little problem.
>>>
>>>To practice, I decided to translate little programs I did in C++ when I was beginning my C++, but there is one problem I'm not able to find/fix (I fixed a lot ...).
>>>
>>>Here it is:
>>>It's a kind of emulation of a card game, and it's really not complicated. I have
>>>few functions that ask number to the player, and after it compare with a
>>>randomly choosed number. (That's approximatively that.) But in my main(), i have
>>>this code:
>>>
>>>int main()
>>>{
>>>[...]
>>>
>>>PresenterJeu();
>>>
>>>stdout.writeLine("\t (1) Deux joueurs\n" "\t (2) Contre l'ordinateur\n");
>>>mode = stdin.readLine();
>>>
>>>switch(mode)
>>>{
>>>case "1":
>>>for (int i = 0; i < 15; i++)
>>>{
>>>pc.RandomSouris();
>>>stdout.writef("\nTour ", toString(i+1));
>>>stdout.writef("\nLa souris vaut: ", toString(sourischoisie));
>>>ComparerCartes(adv.DemanderCarte(),joueur.DemanderCarte());
>>>stdout.writef("Joueur 1: ", toString(joueur.GetTotal));
>>>stdout.writef("Joueur 2: ", toString(adv.GetTotal));
>>>stdout.writeLine("");
>>>}
>>>break;
>>>
>>>[...]
>>>}
>>>
>>>but when I press 1, it's dooing "kind-of-nothing" ... nothing happens, but the window doesn't freeze... but I can't write anything , and the crusor is clignoting... nobody know how to fix this mistake? It's probably a little thing really easy, but so... (lol... that's the last problem of my apps and it happens at the very last time)
>>>
>>>Is this code correct, and the problems come from another part of my code that I did not translated well?
>>>
>>>
>> 
>> 
>> 
>> 
>> Who do you think am I?
>> 
>> Of course I pressed!
>> 
>> There isn't the question... if somebody who would have the respect to answer someone as a man to another man, than I am waiting.
>> 
>> 
>
>First of all, this is a pleasant list (like the language) and I have yet to see a disrespectful post that was meant to be disrespectful --- although you are getting close yourself.
>
>But let's cool down.
>
>I can't see anything wrong with the code you posted. Are you sure that pc.RandomSouris() returns? Else I suggest you write a minimal program with a for-loop in a switch statement, and see if it behaves as you expect it to behave. If it does not, you may have discovered a bug.
>
>See you around,
>Bastiaan.




I'm sorry, I did not wanted to be unrespectful...
It is just that when you spend a lot of time to program something, and that
someone tells you "Did you pressed enter" it is VERY offensing.

My problem was in my RandomSouris(), I found it before coming to check... or maybe it is in ComparerCarte... I will see... but I will rpboably find Thanks.

In future post I will try to specify more my problem, for everyone be able to give an answer without telling things that oculd be offesinging for others.


September 28, 2004
> In future post I will try to specify more my problem, for everyone be able to
> give an answer without telling things that oculd be offesinging for others.

Don't take it so hard. The finest minds are on this list, and even they can be in a haze for a moment, and benefit from an obvious answer. There was nothing wrong with the code you showed us, so we give obvious suggestions --- there is no other way we can try to help. One suggestion offends you, but an other (no less obvious) suggestion you seem to endorse. No need to be offended.

Try not to assume hostility next time :-)

Bastiaan.