Wow!!  I finally figured it out, it took me the late morning through the middle of the afternoon to finally get this right.  Yes I was able to change to a forEach loop and my code definitely reduced in size.  Really in this implementation of the game, I am only dealing with hands.  The RobotPlayer class just generates a random number.  It might be in the future I might just get rid of him and write a generateNumber function for the Game Class.  One quirk I found was with the "While" loop I started with one player forward, the requesting player and looked back one player to the requested player.  So the requesting player would never run out of cards before the loop was over since he was always he last to go.  However, in the forEach loop I had to start with the requested player and look forward to the requesting player.  The forEach loop always cycles through every player (actually hand in this case) so during the last iteration that particular hand was the requested player and he ran out of cards and drew and exception withe the randomCardGeneration.  I was able to fix it.