Tetris clone - Comments pls

Hello,
I've finished my first game ever! :D
Check it out at http://jtet.sourceforge.net and tell me your opinion please.
If you check the source code you will not see many comments but I will put some commencts when I'm not that lazy :P

All I get when running appletviewer (on linux) is an exeption when I press a key.
java.lang.NullPointerException
at ca.games.jtet.tetramino.Tetramino.canMoveDown(Unknown Source)
at ca.games.jtet.tetramino.Tetramino.move(Unknown Source)
at ca.games.jtet.components.GameArea.keyPressed(Unknown Source)
at java.awt.Component.processKeyEvent(Component.java:4979)
at javax.swing.JComponent.processKeyEvent(JComponent.java:2372)
at java.awt.Component.processEvent(Component.java:4830)
at java.awt.Container.processEvent(Container.java:1525)
at java.awt.Component.dispatchEventImpl(Component.java:3526)
at java.awt.Container.dispatchEventImpl(Container.java:1582)
at java.awt.Component.dispatchEvent(Component.java:3367)
at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1700)
at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:568)
at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:740)
at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:673)
at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:534)
at java.awt.Component.dispatchEventImpl(Component.java:3396)
at java.awt.Container.dispatchEventImpl(Container.java:1582)
at java.awt.Component.dispatchEvent(Component.java:3367)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:445)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:191)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:144)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:130)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:98)

Similar Messages

  • Noobie is making a tetris clone NEED HELP PLEASE!!!

    Hello,
    I am a newbie and I took on the task of making a tetris clone for my final project in my CS162 java class.
    In my Block Class I have each Tetris block set up as an array of Shapes
    using rectangle2D.Doubles for the small squares that make up the block, and a paintcomponent method in my gamePanel Class to paint the blocks. I use the Swing Timer Class to triger an event to move the block down every second, and when the block intersects a line, a new block is instantiated and begins to fall...So...my problem now is getting the old block to stay when the new block is instantiated(the old block disapears). I have tried adding the blocks to an arraylist and then making paintcomponent repaint it but I am getting a nullPointerException.
    I still think using the arraylist is better than trying to make my own array of blocks. I think I am just using it wrong.
    Can anyone suggest Anything???

    cross-post:
    http://forum.java.sun.com/thread.jspa?threadID=665840

  • MSI K8N neo4 -F User comments PLS help ....is it a good buy?

    As above
    Can those MSI K8N neo4 -F give me comments of the board. Did you all regert buying this mobo
    What are the good pros and cons
    HAve been hearing some complains about HSY in the MOBO is a bit too noisy, is it true ?...
    How does it comapres to gigabyte K8NF-9 Which cost $195 here in sg
    MSI K8N neo4 -F cost about $240
    So which more worth to get ?
    Thanks

    LOL Didn't you know that no overclocker is ever happy with any parts??? They never allow them to acheive the ultimate 300% overclock they are always after... I have yet to meet an overclocker that actually liked their parts and peices. It is usually the MB they blaim no matter what other junk they have in the system. It is just the way of the world. Read any tech forum and look at who is doing the screaming and why.
    Simply put at normal speeds things work well for most anyone if they have stuff set up properly. Once you enter the dark hallways of the overclocker though you are more often on your own and you better know what you are doing or have a fat wallot. Overclockers tend to change parts out more often than Bill Gates changes his socks.
    That is not to say that it isn't fun to push the envelope a bit or shoot for that next level.  Follow the dark side and you can acheive greatness or end in smoking rubble. Just remember though that is more on you to acheive that goal than on any parts maker and you will be set into the right mindset.

  • Just another Tetris Implementation

    Again.... a tetris clone
    http://dagaenzele.tripod.com/files/tetris.zip
    Download the zip-file, extract it and start the jar-file with "java -jar tetris.jar"
    I only tested it on win2k and winxp. There might be a problem locating the images since i haven't fully implemented my "ressource-locator thing" yet.
    Feel free to have a look at the source code or modify the images. the design is still under construction
    If it works: just use the arrow-keys to navigate through the menu. there is no mouse support yet
    thanks for your reply

    (aka implementations :P) Is that the wrong word? English isn't my first language.
    Your clone is nice too.
    If you could make the mousepointer stop flickering it would be perfect :)
    no need for all those fancy graphics and fullscreen mode... mine is MUCH better, and its a applet too! lolsorry your link seems to be broken.

  • Problem restoring applet focus

    As an exercise I wrote a Tetris clone in Swing. The game itself is fine, and runs without problems when run standalone in a JFrame. Next, I tried making an applet version of the game. Mostly the same code, just wrapped inside of a JApplet instead of a JFrame. Here's where the problems started.
    The applet version seems to run fine in Firefox as long as you do not open a new tab, or click on another already-opened tab. If you go to another tab, then back to the applet's tab, and try clicking on the applet, focus is never regained (or so it seems - the applet no longer responds to keypresses).
    In other words:
    1. I load the applet in a new tab in Firefox. I can click on the game and play it like I'd expect.
    2. I click on some other tab I already have open.
    3. I click back on the Tetris applet's tab.
    4. I click on the applet and try to start playing again. The applet doesn't respond to any keypresses, no matter how hard I try.
    What am I missing here? Hopefully this sounds familiar to somebody. I would post some code but the game is made up of several source files, and I was hoping someone would spot the obvious for me just from a description.
    FWIW, using IE7 and Safari, things work as expected - I can switch tabs, then come back and play the game fine. (Although with Safari, sometimes I really have to work to get the applet focus in the first place, but I think that's a different issue).
    Thanks for any help!

    thorsti16 wrote:
    Hi,
    i have a similar focus problem. After a click of a Tab and back the focus for keyboard is gone.
    I use a shell which has embedded th IE control. My applet has no such problems with jre 1.4.2_10 and older vms.
    Which jre version do you use?On Windows it was 1.6.0_03. On OS X, 1.5.0_07. On Fedora Linux, I'm not sure, but it was some release of 1.6. With all three configurations, Firefox had this problem.
    Could you please check your applet with 1.4.2_10 ? Perhaps we are facing the same problem.
    thorstenUnfortunately my code uses Java 5 features, so I can't test with 1.4.x. I might "backport" to 1.4 just to see if things work that way. But I think I found a solution. Try something like this in your applet's init() method:
    applet.setFocusable(false);
    gamePanel.setFocusable(true);
    gamePanel.setFocusCycleRoot(true);where above, "gamePanel" is the JPanel (or whatever) you added to the applet's content pane, that renders the game, etc. With this code, the "switching tabs" problem is fixed for me on both Windows and OS X. I haven't tested on Fedora yet; when I do I'll post back with the results.
    So try the above if you can, and post back with whether it works for you! I suppose if gamePanel is not a java.awt.Container subclass (i.e. if you use java.awt.Canvas), you won't have a setFocusCycleRoot() method to call, but you might not need it in that case. Not sure, haven't tested that either...

  • POS XI POSDM integration

    Hi Experts,
                         I am into POS XI POSDM integration . My queries are,
       1. Is there any specific forum in XI where I can get in touch with those, who have undertaken the following type of integtarion.
        2. My scenerio is File 2 XI to RFC adapter. I am getting an error in SXMB_MONI as " Root Cause: javax.xml.transform.TransformerException: com.sap.engine.lib.xml.parser.ParserException: XMLParser: No data allowed here: (hex) 4d, 20, 30(:main:, row:1, col:3) at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:255)................".
    I believe taht the file I am sending is not matching with the mapping . Pls comment, pls tell me if u need any further info.
    You can see the word doc with settings , if u want, pls tell me if u r also experienced in POS - XI - POSDM integration inbound, 2 b more specific.
    Regards,
    Arnab.
    Hi experts, I was expecting some reply.
    And pls , no links to ECOVERSITY. I am already in touch with them.
    Edited by: Arnab Mondal on Feb 16, 2009 1:22 PM
    Edited by: Arnab Mondal on Feb 16, 2009 1:22 PM.
    Error during dry testing in Messege Mapping is "Fatal Error: com.sap.engine.lib.xml.parser.ParserException: XMLParser: No data allowed here: (hex) 4d, 20, a(:main:, row:2, col:0)".
    Showld I consider this as error in the load as its format is not matchin with the messege mapping SOurce Structure?
    Edited by: Arnab Mondal on Feb 16, 2009 1:38 PM

    Hi Hetal,
    Answer to ur queries.
    Can you just let me know that what is format of your file?
           The format of teh file is .DAT.
    You all can take a details look at teh file , as well as error taht I am gacing in the follwing url.
    http://sapknowhow.ecoservity.com/forum/topics/pos-xi-posdm-r3-integration?page=1&commentId=2328205%3AComment%3A2942&x=1#2328205Comment2942
    Reply by Arnab on February 12, 2009 at 7:21am .
    See the ID settings ZIP file.
    and have you used FCC in File adapter?
    Yes .
    If yes, what are your settings?
    ROOT.fieldSeparator                      ,
    ROOT.fieldContentFormatting      trim
    ROOT.endSeparator                   'nl'
    ROOT.missingLastfields             ADD
    ROOT.processFieldNames         fromConfiguration
    ignoreRecordsetName     TRUE.
    Pls tell me where am I going wrong.!

  • RFC Receiver Adapter error.

    Hi Experts,
                      Mine is a File To RFC Scenerio. data from File is foing into an RFC called /POSDW/CREATE_TRANSACTIONS_EXT, in R/3 system. . RFC adapter is red .Giving the follwoing error!.
       2009-02-18 14:49:41 Error MP: Exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: error while processing message to remote system:com.sap.aii.af.rfc.core.client.RfcClientException: JCO.Exception while calling /POSDW/CREATE_TRANSACTIONS_EXT in remote system (RfcClient[GeneratedReceiverChannel_RFC]):com.sap.mw.jco.JCO$Exception: (104) RFC_ERROR_SYSTEM_FAILURE: The ASSERT condition was violated.: com.sap.aii.af.rfc.afcommunication.RfcAFWException: error while processing message to remote system:com.sap.aii.af.rfc.core.client.RfcClientException: JCO.Exception while calling /POSDW/CREATE_TRANSACTIONS_EXT in remote system (RfcClient[
    Comments Pls!
    Regards,
    Arnab.
    Do I need to make a seperate TCP/IP connection from XI to R/3. If so, what will b the settings, Pls comment, !
    Arnab .
    Edited by: Arnab Mondal on Feb 18, 2009 11:04 AM

    Rajesh,
         you  mean to say apart from ABAP type 3 connection in XI as well as BI , I need to create TCP/IP connection in XI as well as BI ? Well In that case can you tell me when I am making the TCP/IP setting in XI, what will be the selection in
    Technical setings: Activation type?
    and in the gateway options, when I am doin the settings in XI server , whose gate way host and service , and  am i goin to put, XI or BI .
    Pls comment.
    Regards

  • Problem starting WLS 5.1 in RH Linux

    I have RH Linux 6.2 and just downloaded Sun JDK1.3 and BEA WLS 5.1. There
    were a couple of problems with the install:
    1) The case statemement in startWebLogic.sh did not pick up Linux using
    uname -s, but I fixed that by commenting out all the other Unixes and the
    case and esac. And LD_LIBRARY_PATH was defined as
    /home/wlogic/weblogic/lib/linux
    2) The second problem I have not been able to resolve. This is the
    stackdump:
    LD_LIBRARY_PATH=/home/wlogic/weblogic/lib/linux
    Exception in thread "main" java.security.AccessControlException: access
    denied (
    java.lang.RuntimePermission createSecurityManager)
    at
    java.security.AccessControlContext.checkPermission(AccessControlContext.java
    :272)
    at
    java.security.AccessController.checkPermission(AccessController.java:399)
    at
    java.lang.SecurityManager.checkPermission(SecurityManager.java:545)
    at java.lang.SecurityManager.<init>(SecurityManager.java:301)
    at
    weblogic.boot.ServerSecurityManager.<init>(ServerSecurityManager.java:11)
    at weblogic.Server.main(Server.java:59)
    at weblogic.Server.main(Server.java:55)
    Comments pls someone. Many thanks.
    Kenny

    Try modifying your weblogic.polic file so that the paths in that file
    match your environment.
    John
    Kenny Kon wrote:
    >
    I have RH Linux 6.2 and just downloaded Sun JDK1.3 and BEA WLS 5.1. There
    were a couple of problems with the install:
    1) The case statemement in startWebLogic.sh did not pick up Linux using
    uname -s, but I fixed that by commenting out all the other Unixes and the
    case and esac. And LD_LIBRARY_PATH was defined as
    /home/wlogic/weblogic/lib/linux
    2) The second problem I have not been able to resolve. This is the
    stackdump:
    LD_LIBRARY_PATH=/home/wlogic/weblogic/lib/linux
    Exception in thread "main" java.security.AccessControlException: access
    denied (
    java.lang.RuntimePermission createSecurityManager)
    at
    java.security.AccessControlContext.checkPermission(AccessControlContext.java
    :272)
    at
    java.security.AccessController.checkPermission(AccessController.java:399)
    at
    java.lang.SecurityManager.checkPermission(SecurityManager.java:545)
    at java.lang.SecurityManager.<init>(SecurityManager.java:301)
    at
    weblogic.boot.ServerSecurityManager.<init>(ServerSecurityManager.java:11)
    at weblogic.Server.main(Server.java:59)
    at weblogic.Server.main(Server.java:55)
    Comments pls someone. Many thanks.
    Kenny--
    Jesus M. Salvo, Jr.
    Senior Consultant
    PowerServe Pty Ltd
    Level 2, 116 Miller Street
    North Sydney 2060
    New South Wales, Australia
    Ph: (61-2) 9492 4800
    Direct (61-2) 9492 4853
    Fax: (61-2) 9492 4899
    http://www.powerserve.com.au
    Email: [email protected]
    This email is from PowerServe Pty Limited (ACN 069 037 056)
    The information contained in this email (including any attached files)
    may be privileged and confidential intended for the use of the
    person/persons named above. If you are not the intended recipient, you
    are advised that any use, distribution or copying of the information is
    strictly prohibited. If you have received this transmission in error,
    please notify PowerServe Pty Limited immediately on (61 3) 9618 1222 or
    reply by email to the sender.
    PowerServe Pty Limited does not represent or warrant that this email or
    any attached files are free from computer viruses or other defects. Any
    attached files are provided, and may only be used, on the basis that the
    user assumes all responsibility for

  • ALE Settings error: Outbound: LS to KU

    Hi Guys,
    Requirement: send idoc to customer 1000358 (KU)  when user execute a report in R/3
    when user execute report we have written the code for idoc generation using function module
    MASTER_IDOC_DISTRIBUTE. the idoc number is geeting genarated successfully with sy-subrc 0
    although its giving an error in WE02 that:
    IDoc: 0000000003560240 Status 29: Error in ALE service
    Could not determine recipients for message type ZNACPRLST
    its not picking the recepient information of the customer from ALE settings.
    I have added that recepient info forcefully in debug before function module MASTER_IDOC_DISTRIBUTE.
    But again the idoc number is geeting genarated successfully although its giving
    another error in we02 that:
    IDoc: 0000000003560258 Status 37: IDoc added incorrectly
    Entry in outbound table EDP13 not found. please check the partner profile.
    Although i have checked tht the entry exist in above table in se11.
    ALE Settings:OUTBOUND:
    Sender: LS- SP5CLNT210
    Receiver: KU - 1000358
    idoc type: ZPRLST01
    message type:ZNACPRLST
    WE82 assign idoc type with message type.
    Receiver port: SAPOUT (File type & Transfer idoc immediately, RFC destination also there)
    Partner profile:  partner no: 1000358
                      partner type: KU
                      outbound params: message type - ZNACPRLST
                      But nothing i did in message control for outbound process code becoz we are
                      generating the idoc in the report itself by coding.
    Distribution model: i can not create any distribution model. Because recipient system is KU.
                        and therefore no logical system name of recepient. therefore system will
                        not allow to create distribution model unless we have a logical sys name
                        of recipient. And i think as the recipient sys is KU (not LS) therefore
                        no need of distribution model?
    I dont have any configuration for inbound till now. And i believe that doesnt matter
    for outbound trigger.
    Please can anybody tell me what could be the error in ALE settings that sytem is showing?
    Will appriciate any help....
    Thanks,
    Biswajit.

    Hi,
    thanks for your reply.....
    i did exactly in WE20 that i wrote before...
    The file port for EDI system is also perfect otherwise it woudnt work for other standard idocs...right?
    i m tried to retest the same in We19 as well....
    but it is giving the same below error:
    IDoc: 0000000003560240 Status 29: Error in ALE service
    Could not determine recipients for message type ZNACPRLST
    its not picking the recepient information of the customer from ALE settings.
    If I added that recepient info forcefully in iwe19 and retest it again the idoc number is geeting genarated successfully although its giving another error in we02 that:
    IDoc: 0000000003560258 Status 37: IDoc added incorrectly
    Entry in outbound table EDP13 not found. please check the partner profile.
    Although i have checked tht the entry exist in above table in se11.
    Your comments pls...
    Thanks,
    Biswajit.

  • Distribution model required for LS to KU ?

    Hi Guys,
    In BD64 we can create distribution model ONLY with LS to LS.
    So iscenario like LS to KU  system is not allowing to create Distribution Mode because the recepient is KU (not LS).
    So how does the system(MSTER_IDOC_DISTRIBUTE) will determine who is the recepient? Is it from partner profile only???
    If it is yes then distribution model is not required at all for LS to KU scenario??
    Your comments pls.....
    Thanks & regards,
    Biswajit Ganguly.

    I found by myself that ...no dist model req for KU...
    Cheers,
    Biswajit.

  • Removing messeges in RW

    Hi Experts,
             some unwanted scenerios in my dev system has filled the RW-> Messege Monitering -> Adapter Engine-> with thousands of system errors  / waiting and holding messeges! I think I need to clean them up. I hav already STOPPED the communication channels in communication channel monitering. Is there any simpler way to delete all these messeges in 1 go, instead od selecting the messeges and cancelling them?
    Can this be  a reason why every time when I go to the J2ee stack- cache refresh, and try to refresh the integration runtime , the process shows a circling wheel?
    comments pls !
    Arnab

    Yes,
    You can schedule deletion and archiving jobs in SXMB_ADMIN. Before scheduling Choose your interfaces for Archiving in SXMB_ADMIN-->Define Interfaces for Archiving and Retention Periods with multiple selection. Also keep your retention period 7 days or 3 days from default value 30 days.
    Check SAP Note no. (790226,807615) for Removing/Archiving of non expired messages.
    For changing this value you need to set in Visual Admin--> SAP XI Adapter: XI --> XIADapter.Outbound.persistduration.default to 604800000(7 days) and same for Inbound parameter.
    Thanks!

  • Debugging problem, in inbound function module.

    Hi Experts,
                  R/3 system is receiving data through an IDOC called WPUUMS[sales data]. It has been seen that when this data is posted in R/3 through XI the data gets reflected in WE02 / WE05, and is similar to when a manual entry is done the transaction WPUK. But the difference is , when manual idoc generation is done, it is updating correct data in database, but when same data is posted from XI, it is updating data base with in correct data!
       what I cant get to understand is in both the cases, IDOC is posted, and same data is there in the DATA records, but database is getting upated with diff data.
        Also , when I am putting a break point on the inbound function module IDOC_INPUT_POS_SALES_ACCOUNT, it is not hitting the break-point but idoc gets generated successfully with status records like
    53 Application Document posted
    62 Idoc Passed to application
    64 Idoc ready to be transferred to application
    50 Idoc added.
    Also , i want to know, wether these messeges come step by step or randomly, because, why is the messege 62, before messege 64.
    Lastly when I am taking the same IDOC and trying the same in WE19, then it hits the break-point function module IDOC_INPUT_POS_SALES_ACCOUNT successfully.
    Experts, comments pls.!
    Regards,
    Arnab.

    Hi,
    You are supposed to read the ststus messages from bottom to top. So the actual sequence is:
    50 Idoc added.
    64 Idoc ready to be transferred to application
    62 Idoc Passed to application
    53 Application Document posted
    Which is correct.
    And it is correct that the system bypasses any breakpoint in the background mode. So when the IDoc is coming from XI the posting FM IDOC_INPUT_POS_SALES_ACCOUNT is called in background and so the breakpoint is not called.
    Only way to debug the problem is via transaction WE19 in Debug mode.
    Regards,
    Prakash Pandey

  • ST22 information at Source System.

    Hi ,
            mine is a webservice to PI to proxy scenerio. I prefer a synchronous process, but I have the choice of making it asynchronous also.
       However my requirement is , if information sent from webservice reaches sap abap proxy through Pi and then throws a short dump in ST22 of sap, then source system i.e. webservice will never get to know about the same. Is there any option to check it/ tracce it??
      Experts, your  comments pls .
    Regards,
    Arnab.

    Hi Raghu ,
                         your concept appreciated. I planned this long back. But there was a catch. I noticed in ST22 , most of the short dumps have an exception , but there are a few, which dont have exception. Strange but true. You know what, ultimately, we are moving into this type of coding, but the hitch lies in the mind , if there is a dump, without an exception , and the cllient is unaware of the same ,  we miss the business  !!    
       Thanks and Regards,
    Arnab ,

  • How to add "open" file button in form 4.5

    Hi all,
    I want to add a button "open file" on the form (like any
    application's "OPEN FILE" button, user can select the driver, dir
    of the file located). Then the path of the file will stored in a
    text box and then a procedure will open that file and read all
    data of that file and it will insert the data into table.
    I know it can be done easily by asking the user to type in the
    path in the text box directly, but i want to add a "OPEN FILE"
    button to do this.
    Should U have any comment, pls tell me and help me!!
    Thank for your help!!
    Regards,
    A beginer of Oralce developer/2000
    null

    HK, Cheung (guest) wrote:
    : Hi all,
    : I want to add a button "open file" on the form (like any
    : application's "OPEN FILE" button, user can select the driver,
    dir
    : of the file located). Then the path of the file will stored in
    a
    : text box and then a procedure will open that file and read all
    : data of that file and it will insert the data into table.
    : I know it can be done easily by asking the user to type in
    the
    : path in the text box directly, but i want to add a "OPEN FILE"
    : button to do this.
    : Should U have any comment, pls tell me and help me!!
    : Thank for your help!!
    : Regards,
    : A beginer of Oralce developer/2000
    Hi,
    I have done similar things with cmdlg.vbx (Common Dialog 16 bit
    version) in Windows 3.11 as follows:
    1. Create a VBX item
    2. Open up Properties and set location of your cmdlg.vbx
    3. Write a simple pl/sql such as FileOpen with a series of
    Set_Property such as follows (example only):
    VBX.Set_Property('<name of VBXItem>','<vbxproperty>','c:\temp');
    where <vbxproperty> could be DialogTitle, InitDir, Filter etc.
    (these can all be seen in Properties) depending on your
    requirements.
    Also, use
    VBX.Set_Property('<name of VBXItem>','Flags','&H1800') to force
    File Must Exist and Path Must Exist conditions when OPEN
    and
    VBX.Set_Property('<name of VBXItem>','CancelError','1') to trap
    click on Cancel in the File Open dialog box.
    4. To activate the File Open dialog box, use
    VBX.Set_Property('<name of VBXItem>','Action','1');
    5. To capture the selected filename, use
    retFilename := VBX.Get_Property('<name of VBXItem>','Filename');
    NB.
    a) Instead of using '<name of VBXItem>', you could use Find_Item
    and refer to its Handle. See VBX package spec.
    b) All VBX properties are case-sensitive.
    Will extract complete code and post it to you later.
    Regards,
    TP
    null

  • "Tris"

    I havent used the app store in a couple days, and when I went on today I noticed that tris was no longer #1 on the free top 25. I did a search in the app store and nothing came up. What happened to the app? It was a great app and a lot of fun. Why would it be removed from the app store???

    Because the people that own the trademark to "Tetris" threatened legal action against them.
    I wondered how long that would take.
    http://kotaku.com/5041686/iphone-tetris-clone-tris-pulled-from-app-store

Maybe you are looking for