I have almost completed my project the last thing I can not for the life of me figure out is why when I input 'B' into 'currentresponse99' it will not return but instead continue to out put the 'What Happened' prompt. It is probably a stupid fix but I have been staring at this for hours and can't figure out what's wrong.
**In addition 'N' works fine, the function runs and it kicks it back to main.
(With your current code logic) your "What happened" prompt is not within a loop, but IS the first executable line in your function ... so the only way to get to it is to call this function again ... so what is wrong is probably OUTSIDE this particular code fragment. Look at any statement in the rest of your code which calls punt() (or revisit your logic if you intended "What happened" to be in a loop).
currentresponse (as opposed to currentresponse99) isn't defined on first pass in line 13, but this won't cause your problem.
Other variables, like teamswap and objects home and away must, presumably, be global.
home and away are userdefined classes and teamswap is a global variable, however I assumed it can't be affected by one of these due to the fact that 'N' runs its functions, stops the loop and goes back to main. It is only 'B' that has this problem.
Please don't back-edit your original post like this - it completely breaks the thread of subsequent comments.
As far as I can see, punt() will only be called if playcin is 'U'. Then the while loop must run again and goes to mainprompt (twice - no idea why).
In mainprompt(), you try to test a condition on playresponse - a local variable which, at first pass whenever this function is called (i.e. calling twice makes no difference whatsoever) will be undefined.