Letting someone see your source code is a very private thing. Usually there are a million things that could have been done better, but your program works and that gives you a great deal of satisfaction. If your project is large enough, your source code will always have some less-than-ideal software engineering concepts like global variables.
MTG Forge has global variables and hard coded card names, but it works. People need to realize that software concepts like global variables are NOT always bad, generally they are bad. Global variables represent a trade-off and most of the time they should be avoided. Sometimes global variables help you overcome some obstacles like, “I don’t know how else to program this.” That previous statement is why I used global variables.
Source code is also very private because you like the way you split up a string, even though there are different ways to do it. You like the order of the arguments and you like the architecture that you thought of. Source code is almost a diary of your thoughts, and most people don’t post their diaries to the internet, although I do know that blogs exist. Source code almost invites criticism from other programmers.
Version 2 doesn't have any global variables because they tend to attract errors. Version 1 used global variables as an easy way to "get and see everything." The problem with global variables in version 1 is that there isn't an easy way to reset everything and start a new game, that is why sometimes you have 7 or 8 cards in your opening hand.