   collision detection for tetris
  working on tetris as my "refresh" project atm, just wanted to run this thought by:for collision detection, is it a good idea to keep a "playing field" structure around to do the collision detection in, or should I just do that graphically directly on the playing field?   
  Yes it is best to have a playing field structure.Usually when I create tetris, I have an Array called Well that is the size in blocks of the Well, or in your case the playing field.  Each cycle of the main game loop, when the shape is in a position that it will be staying in the Well, I insert it into the array.In proceeding loops I continue to check the current shape with the contents of the Well array.  This also makes it easy to see if their are full lines that should be removed, and the like.If for some reason you need to redraw the Well, you can easily do so using the Well array since it have the information (such as color, style, etc.) of the blocks that are currently in it.Hope this helps,MrE   ;  Keep a playfield representation - this is a much better design, since mixing logic and graphical output isn't a good idea.A separate playfield allows for different output methods without requiring modifications to the core logic.   ;  For very simple game mechanics, you can do it graphically. Tetris might qualify. For more complex games, you always end up doing collision testing using some other mechanism than the graphical playing field.   