ABAP游戏:俄罗斯方块(代码部分2)_SAP刘梦_新浪博客
    *---------------------------------------------------------------------*
 * FORM F_TASK_END
 *---------------------------------------------------------------------*
 FORM f_task_end USING u_taskname.
   DATA lv_mssg(80).                                         "#EC NEEDED
 * RECEIVING TASK RESULTS
 * YOU NEED TO CREATE FUNCTIONAL MODULE "Z_NBCSH_DELAY"
 * TO TRY DELAY LESS THEN 1 SECOND
   RECEIVE RESULTS FROM FUNCTION 'RFC_PING_AND_WAIT' "接受RFC返回值
 * RECEIVE RESULTS FROM FUNCTION "Z_NBCSH_DELAY"
   EXCEPTIONS
   resource_failure = 1
   communication_failure = 2 message lv_mssg
   system_failure = 3 message lv_mssg
   OTHERS = 4.
   CHECK sy-subrc EQ 0."接受成功,则
   SET USER-COMMAND 'PF26'. "方块自动下落,到底后行检查,出现下个方块,这步【关键】
 ENDFORM. " F_TASK_END
 *************** END OF PROGRAM ZNBCSH_TETRIS *********************
 *&---------------------------------------------------------------------*
 *& MODULE STATUS_0100 OUTPUT
 *&---------------------------------------------------------------------*
 * TEXT
 *----------------------------------------------------------------------*
 MODULE status_0100 OUTPUT.
 * SET PF-STATUS "STATUS_0".
 *CALL METHOD CL_GUI_CFW=>SET_NEW_OK_CODE
 * EXPORTING NEW_CODE = "PF21".
 * WRITE "PRESS TO BEGIN".
   PERFORM out."屏幕输出
   LEAVE TO LIST-PROCESSING AND RETURN TO SCREEN 100.
   LEAVE SCREEN."离开屏幕
 * LEAVE SCREEN.
 * SET TITLEBAR "XXX".
 * DATA LV_MSSG(80). "#EC NEEDED
 ENDMODULE. " STATUS_0100 OUTPUT
 *&---------------------------------------------------------------------*
 *& MODULE USER_COMMAND_0100 INPUT
 *&---------------------------------------------------------------------*
 * TEXT
 *----------------------------------------------------------------------*
 MODULE user_command_0100 INPUT.
   CASE sy-ucomm.
     WHEN 'BACK' OR 'UP' OR'EXIT'."退出
       LEAVE PROGRAM.
   ENDCASE.
 ENDMODULE. " USER_COMMAND_0100 INPUT
 *---------------------------------------------------------------------*
 * MODULE EXX INPUT *
 *---------------------------------------------------------------------*
 * ........ *
 *---------------------------------------------------------------------*
 MODULE exx INPUT.
   LEAVE PROGRAM."退出程序
 ENDMODULE. " EXX INPUT
 *---------------------------------------------------------------------*
 * FORM INIT_FIGURES *
 *---------------------------------------------------------------------*
 * ........ *
 *---------------------------------------------------------------------*
 FORM init_figures."初始化方块
   DATA s TYPE i.
   DATA w TYPE i.
   w = st_width. "
   s = w DIV 2. "
   square-name = 'SQUARE'."方块田
   square-body1 = s.
   square-body2 = s   1.
   square-body3 = s   w.
   square-body4 = s   w   1.
   square-width = 2.
   square-height = 2.
   line1-name = 'LINE1'."横长条
   line1-body1 = s - 2.
   line1-body2 = s - 1.
   line1-body3 = s .
   line1-body4 = s   1.
   line1-width = 4.
   line1-height = 1.
   line2-name = 'LINE2'."竖长条
   line2-body1 = s .
   line2-body2 = s   w.
   line2-body3 = s   w   w.
   line2-body4 = s   w   w   w.
   line2-width = 1.
   line2-height = 4.
   lzz1-name = 'LZZ1'.
   lzz1-body1 = s .
   lzz1-body2 = s   w.
   lzz1-body3 = s   1   w.
   lzz1-body4 = s   1   w   w.
   lzz1-width = 2.
   lzz1-height = 3.
   lzz2-name = 'LZZ2'.
   lzz2-body1 = s .
   lzz2-body2 = s   1.
   lzz2-body3 = s   w - 1.
   lzz2-body4 = s   w.
   lzz2-width = 3.
   lzz2-height = 2.
   rzz1-name = 'RZZ1'.
   rzz1-body1 = s   1.
   rzz1-body2 = s   w .
   rzz1-body3 = s   w   1.
   rzz1-body4 = s   w   w.
   rzz1-width = 2.
   rzz1-height