楼主: alexyang1223

用ABAP作游戏开发?

[复制链接]
论坛徽章:
65
娜美
日期:2019-11-05 22:10:22日产
日期:2013-10-25 16:03:35比亚迪
日期:2013-10-10 21:14:31蛋疼蛋
日期:2013-07-11 12:50:51蜘蛛蛋
日期:2013-06-15 14:48:28复活蛋
日期:2013-05-09 22:48:44奥运会纪念徽章:射击
日期:2012-08-22 18:54:11灰彻蛋
日期:2011-12-08 22:41:29灰彻蛋
日期:2011-11-26 23:41:15蛋疼蛋
日期:2011-11-19 18:41:26
11#
发表于 2008-11-19 17:17 | 只看该作者
急求游戏代码

使用道具 举报

回复
论坛徽章:
0
12#
 楼主| 发表于 2008-11-19 17:17 | 只看该作者
写过游戏的人分享一下经验,

使用道具 举报

回复
论坛徽章:
121
紫蛋头
日期:2013-07-02 19:27:392014年新春福章
日期:2014-02-18 16:41:11马上有车
日期:2014-02-18 16:41:112014年世界杯参赛球队: 波黑
日期:2014-06-07 00:05:53喜羊羊
日期:2015-03-04 14:49:392015年新春福章
日期:2015-03-06 11:57:31
13#
发表于 2008-11-19 17:22 | 只看该作者
试玩过别人写的俄罗斯方块

使用道具 举报

回复
论坛徽章:
5
奥运会纪念徽章:自行车
日期:2008-05-11 12:38:22奥运会纪念徽章:摔跤
日期:2008-10-24 13:21:29生肖徽章2007版:猴
日期:2008-11-16 14:42:48生肖徽章2007版:牛
日期:2009-01-04 13:19:22生肖徽章2007版:狗
日期:2009-03-10 21:31:05
14#
发表于 2008-11-19 17:32 | 只看该作者
这么牛!谁做过先谈谈思路啊.

使用道具 举报

回复
论坛徽章:
0
15#
 楼主| 发表于 2008-11-19 17:54 | 只看该作者
原帖由 rosefish 于 2008-11-19 17:22 发表
试玩过别人写的俄罗斯方块


玩过??
羡慕,
我见都没有见过,

把思路弄个出来

大家凑着弄个游戏出来,

使用道具 举报

回复
论坛徽章:
55
Jeep
日期:2013-09-09 14:56:182014年新春福章
日期:2014-02-18 16:42:02马上有房
日期:2014-02-18 16:42:022014年新春福章
日期:2014-04-10 10:59:40马上有对象
日期:2014-05-04 16:31:492014年世界杯参赛球队: 阿根廷
日期:2014-07-01 19:32:06罗罗诺亚·索隆
日期:2018-10-19 09:52:41
16#
发表于 2008-11-19 18:00 | 只看该作者
ABAP编写的小游戏

  1. *&---------------------------------------------------------------------*
  2. *& Report  Z_BUTTON_GAME                                               *
  3. *&                                                                     *
  4. *&---------------------------------------------------------------------*
  5. *&                                                                     *
  6. *&                                                                     *
  7. *&---------------------------------------------------------------------*

  8. REPORT z_button_game .

  9. INCLUDE <icon>.
  10. TABLES : sscrfields.
  11. *** internal table for storing the list of icons temporarily
  12. DATA : BEGIN OF i_icons OCCURS 1000,
  13. id LIKE icon-id,
  14. END OF i_icons.
  15. *** internal table for storing the 32 icons/pictures
  16. DATA : BEGIN OF i_iconlist OCCURS 32,
  17. id LIKE icon-id,
  18. END OF i_iconlist.
  19. *** internal table for storing the icons in the 64 positions
  20. DATA : BEGIN OF i_layout OCCURS 0,
  21. row(1) TYPE n,
  22. col(1) TYPE n,
  23. id LIKE icon-id,
  24. END OF i_layout.
  25. *** data declaration
  26. DATA : w_layout LIKE i_layout.
  27. DATA : ran_no TYPE i.
  28. DATA : len TYPE i.
  29. DATA : subrc LIKE sy-subrc.
  30. DATA : count TYPE i.
  31. DATA : name(10).
  32. DATA : flg_one.
  33. DATA : flg_two.
  34. DATA : icon_one LIKE icon-id.
  35. DATA : icon_two LIKE icon-id.
  36. DATA : b_one(5).
  37. DATA : b_two(5).
  38. DATA : current_ucomm LIKE sscrfields-ucomm.
  39. FIELD-SYMBOLS : <fs> TYPE ANY.
  40. **** selection-screen declaration.
  41. *** keeping the button names and its user-command same will
  42. *** make things easier later....
  43. SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME NO INTERVALS.
  44. SELECTION-SCREEN SKIP 1.
  45. SELECTION-SCREEN PUSHBUTTON /2(4) pb11 USER-COMMAND pb11.
  46. SELECTION-SCREEN PUSHBUTTON 9(4) pb12 USER-COMMAND pb12.
  47. SELECTION-SCREEN PUSHBUTTON 16(4) pb13 USER-COMMAND pb13.
  48. SELECTION-SCREEN PUSHBUTTON 23(4) pb14 USER-COMMAND pb14.
  49. SELECTION-SCREEN PUSHBUTTON 30(4) pb15 USER-COMMAND pb15.
  50. SELECTION-SCREEN PUSHBUTTON 37(4) pb16 USER-COMMAND pb16.
  51. SELECTION-SCREEN PUSHBUTTON 44(4) pb17 USER-COMMAND pb17.
  52. SELECTION-SCREEN PUSHBUTTON 51(4) pb18 USER-COMMAND pb18.
  53. SELECTION-SCREEN SKIP 1.
  54. SELECTION-SCREEN PUSHBUTTON /2(4) pb21 USER-COMMAND pb21.
  55. SELECTION-SCREEN PUSHBUTTON 9(4) pb22 USER-COMMAND pb22.
  56. SELECTION-SCREEN PUSHBUTTON 16(4) pb23 USER-COMMAND pb23.
  57. SELECTION-SCREEN PUSHBUTTON 23(4) pb24 USER-COMMAND pb24.
  58. SELECTION-SCREEN PUSHBUTTON 30(4) pb25 USER-COMMAND pb25.
  59. SELECTION-SCREEN PUSHBUTTON 37(4) pb26 USER-COMMAND pb26.
  60. SELECTION-SCREEN PUSHBUTTON 44(4) pb27 USER-COMMAND pb27.
  61. SELECTION-SCREEN PUSHBUTTON 51(4) pb28 USER-COMMAND pb28.
  62. SELECTION-SCREEN SKIP 1.
  63. SELECTION-SCREEN PUSHBUTTON /2(4) pb31 USER-COMMAND pb31.
  64. SELECTION-SCREEN PUSHBUTTON 9(4) pb32 USER-COMMAND pb32.
  65. SELECTION-SCREEN PUSHBUTTON 16(4) pb33 USER-COMMAND pb33.
  66. SELECTION-SCREEN PUSHBUTTON 23(4) pb34 USER-COMMAND pb34.
  67. SELECTION-SCREEN PUSHBUTTON 30(4) pb35 USER-COMMAND pb35.
  68. SELECTION-SCREEN PUSHBUTTON 37(4) pb36 USER-COMMAND pb36.
  69. SELECTION-SCREEN PUSHBUTTON 44(4) pb37 USER-COMMAND pb37.
  70. SELECTION-SCREEN PUSHBUTTON 51(4) pb38 USER-COMMAND pb38.
  71. SELECTION-SCREEN SKIP 1.
  72. SELECTION-SCREEN PUSHBUTTON /2(4) pb41 USER-COMMAND pb41.
  73. SELECTION-SCREEN PUSHBUTTON 9(4) pb42 USER-COMMAND pb42.
  74. SELECTION-SCREEN PUSHBUTTON 16(4) pb43 USER-COMMAND pb43.
  75. SELECTION-SCREEN PUSHBUTTON 23(4) pb44 USER-COMMAND pb44.
  76. SELECTION-SCREEN PUSHBUTTON 30(4) pb45 USER-COMMAND pb45.
  77. SELECTION-SCREEN PUSHBUTTON 37(4) pb46 USER-COMMAND pb46.
  78. SELECTION-SCREEN PUSHBUTTON 44(4) pb47 USER-COMMAND pb47.
  79. SELECTION-SCREEN PUSHBUTTON 51(4) pb48 USER-COMMAND pb48.
  80. SELECTION-SCREEN SKIP 1.
  81. SELECTION-SCREEN PUSHBUTTON /2(4) pb51 USER-COMMAND pb51.
  82. SELECTION-SCREEN PUSHBUTTON 9(4) pb52 USER-COMMAND pb52.
  83. SELECTION-SCREEN PUSHBUTTON 16(4) pb53 USER-COMMAND pb53.
  84. SELECTION-SCREEN PUSHBUTTON 23(4) pb54 USER-COMMAND pb54.
  85. SELECTION-SCREEN PUSHBUTTON 30(4) pb55 USER-COMMAND pb55.
  86. SELECTION-SCREEN PUSHBUTTON 37(4) pb56 USER-COMMAND pb56.
  87. SELECTION-SCREEN PUSHBUTTON 44(4) pb57 USER-COMMAND pb57.
  88. SELECTION-SCREEN PUSHBUTTON 51(4) pb58 USER-COMMAND pb58.
  89. SELECTION-SCREEN SKIP 1.
  90. SELECTION-SCREEN PUSHBUTTON /2(4) pb61 USER-COMMAND pb61.
  91. SELECTION-SCREEN PUSHBUTTON 9(4) pb62 USER-COMMAND pb62.
  92. SELECTION-SCREEN PUSHBUTTON 16(4) pb63 USER-COMMAND pb63.
  93. SELECTION-SCREEN PUSHBUTTON 23(4) pb64 USER-COMMAND pb64.
  94. SELECTION-SCREEN PUSHBUTTON 30(4) pb65 USER-COMMAND pb65.
  95. SELECTION-SCREEN PUSHBUTTON 37(4) pb66 USER-COMMAND pb66.
  96. SELECTION-SCREEN PUSHBUTTON 44(4) pb67 USER-COMMAND pb67.
  97. SELECTION-SCREEN PUSHBUTTON 51(4) pb68 USER-COMMAND pb68.
  98. SELECTION-SCREEN SKIP 1.
  99. SELECTION-SCREEN PUSHBUTTON /2(4) pb71 USER-COMMAND pb71.
  100. SELECTION-SCREEN PUSHBUTTON 9(4) pb72 USER-COMMAND pb72.
  101. SELECTION-SCREEN PUSHBUTTON 16(4) pb73 USER-COMMAND pb73.
  102. SELECTION-SCREEN PUSHBUTTON 23(4) pb74 USER-COMMAND pb74.
  103. SELECTION-SCREEN PUSHBUTTON 30(4) pb75 USER-COMMAND pb75.
  104. SELECTION-SCREEN PUSHBUTTON 37(4) pb76 USER-COMMAND pb76.
  105. SELECTION-SCREEN PUSHBUTTON 44(4) pb77 USER-COMMAND pb77.
  106. SELECTION-SCREEN PUSHBUTTON 51(4) pb78 USER-COMMAND pb78.
  107. SELECTION-SCREEN SKIP 1.
  108. SELECTION-SCREEN PUSHBUTTON /2(4) pb81 USER-COMMAND pb81.
  109. SELECTION-SCREEN PUSHBUTTON 9(4) pb82 USER-COMMAND pb82.
  110. SELECTION-SCREEN PUSHBUTTON 16(4) pb83 USER-COMMAND pb83.
  111. SELECTION-SCREEN PUSHBUTTON 23(4) pb84 USER-COMMAND pb84.
  112. SELECTION-SCREEN PUSHBUTTON 30(4) pb85 USER-COMMAND pb85.
  113. SELECTION-SCREEN PUSHBUTTON 37(4) pb86 USER-COMMAND pb86.
  114. SELECTION-SCREEN PUSHBUTTON 44(4) pb87 USER-COMMAND pb87.
  115. SELECTION-SCREEN PUSHBUTTON 51(4) pb88 USER-COMMAND pb88.
  116. SELECTION-SCREEN SKIP 1.
  117. SELECTION-SCREEN BEGIN OF LINE.
  118. SELECTION-SCREEN COMMENT 2(15) no_tries.
  119. PARAMETERS : p_tries TYPE i MODIF ID hid VISIBLE LENGTH 3.
  120. SELECTION-SCREEN END OF LINE.
  121. SELECTION-SCREEN END OF BLOCK b1.

  122. INITIALIZATION.
  123.   PERFORM do_initialization.

  124. AT SELECTION-SCREEN OUTPUT.
  125.   IF i_layout[] IS INITIAL.
  126.     MESSAGE i000(z01) WITH 'You have WON !!!'.
  127.   ENDIF.
  128. *** make the count field display only
  129.   LOOP AT SCREEN.
  130.     IF screen-group1 = 'HID'.
  131.       screen-input = 0.
  132.       MODIFY SCREEN.
  133.     ENDIF.
  134.   ENDLOOP.

  135. AT SELECTION-SCREEN.
  136. *** make sure it is one of the buttons that is clicked and
  137. *** not clicking the same button again
  138. *** exception is if 2 are open and you want to keep the 2nd one open
  139. *** you can do so....
  140.   CHECK sscrfields-ucomm CS 'PB' AND
  141.   ( sscrfields-ucomm <> current_ucomm OR
  142.   NOT flg_two IS INITIAL ).
  143.   current_ucomm = sscrfields-ucomm.
  144. *** making sure again that a button is clicked and get the icon
  145. *** hidden in the clicked button.
  146.   READ TABLE i_layout WITH KEY row = sscrfields-ucomm+2(1)
  147.   col = sscrfields-ucomm+3(1).
  148.   CHECK sy-subrc = 0.
  149.   PERFORM validate.
  150. *&---------------------------------------------------------------------*
  151. *& Form validate
  152. *&---------------------------------------------------------------------*
  153. * checking whether its the 1st or the 2nd button click, assign the ucomm
  154. * to the field-symbol. The trick is the buttons have been named same as
  155. * its ucomm, so assigning it gives the value of the button.
  156. *----------------------------------------------------------------------*
  157. * --> p1 text
  158. * <-- p2 text
  159. *----------------------------------------------------------------------*
  160. FORM validate.
  161.   IF NOT flg_two IS INITIAL.
  162.     ASSIGN (b_one) TO <fs>.
  163.     <fs> = '@5F@'.
  164.     ASSIGN (b_two) TO <fs>.
  165.     <fs> = '@5F@'.
  166.     CLEAR : flg_one,flg_two,
  167.     icon_one,icon_two,
  168.     b_one,b_two.
  169.   ENDIF.
  170.   IF flg_one IS INITIAL OR
  171.   flg_two IS INITIAL.
  172.     ASSIGN (sscrfields-ucomm) TO <fs>.
  173.     IF sy-subrc = 0.
  174.       <fs> = i_layout-id.
  175.     ENDIF.
  176.     IF flg_one IS INITIAL.
  177.       flg_one = 'X'.
  178.       icon_one = i_layout-id.
  179.       b_one = sscrfields-ucomm.
  180.     ELSEIF flg_two IS INITIAL.
  181.       flg_two = 'X'.
  182.       icon_two = i_layout-id.
  183.       b_two = sscrfields-ucomm.
  184.     ENDIF.
  185.   ENDIF.
  186.   IF icon_one = icon_two.
  187.     p_tries = p_tries + 1.
  188.     DELETE i_layout WHERE id = icon_one.
  189.     CLEAR : flg_one,flg_two,icon_one,icon_two.
  190.   ENDIF.
  191.   IF NOT flg_two IS INITIAL.
  192.     p_tries = p_tries + 1.
  193.   ENDIF.
  194. ENDFORM. " validate
  195. *&---------------------------------------------------------------------*
  196. *& Form do_initialization
  197. *&---------------------------------------------------------------------*
  198. * Make all the buttons show blank space. Also select, the list of
  199. * all icons from the standard table and select 32 from it randomly. Once
  200. * the 32 icons are selected, lay it out in pairs on the 8 X 8 board of
  201. * buttons.
  202. *----------------------------------------------------------------------*
  203. *----------------------------------------------------------------------*
  204. FORM do_initialization.
  205.   no_tries = 'No. of Tries'.
  206.   pb11 = pb12 = pb13 = pb14 = pb15 = pb16 = pb17 = pb18 = icon_space.
  207.   pb21 = pb22 = pb23 = pb24 = pb25 = pb26 = pb27 = pb28 = icon_space.
  208.   pb31 = pb32 = pb33 = pb34 = pb35 = pb36 = pb37 = pb38 = icon_space.
  209.   pb41 = pb42 = pb43 = pb44 = pb45 = pb46 = pb47 = pb48 = icon_space.
  210.   pb51 = pb52 = pb53 = pb54 = pb55 = pb56 = pb57 = pb58 = icon_space.
  211.   pb61 = pb62 = pb63 = pb64 = pb65 = pb66 = pb67 = pb68 = icon_space.
  212.   pb71 = pb72 = pb73 = pb74 = pb75 = pb76 = pb77 = pb78 = icon_space.
  213.   pb81 = pb82 = pb83 = pb84 = pb85 = pb86 = pb87 = pb88 = icon_space.
  214.   SELECT id FROM icon INTO TABLE i_icons
  215.   WHERE NOT id IN ('@5F@','@E5@','@00@','@E6@','@E7@',
  216.   '@EI@','@GE@','@GG@','@JX@','@JY@',
  217.   '@JZ@','@K0@').
  218.   DESCRIBE TABLE i_icons LINES len.
  219.   CLEAR : subrc.
  220.   WHILE subrc < 32.
  221.     CALL FUNCTION 'QF05_RANDOM_INTEGER'
  222.       EXPORTING
  223.         ran_int_max   = len
  224.         ran_int_min   = 1
  225.       IMPORTING
  226.         ran_int       = ran_no
  227.       EXCEPTIONS
  228.         invalid_input = 1
  229.         OTHERS        = 2.
  230.     READ TABLE i_icons INDEX ran_no.
  231.     READ TABLE i_iconlist WITH KEY id = i_icons-id.
  232.     IF sy-subrc <> 0.
  233.       i_iconlist-id = i_icons-id.
  234.       APPEND i_iconlist.
  235.     ENDIF.
  236.     DESCRIBE TABLE i_iconlist LINES subrc.
  237.   ENDWHILE.
  238.   REFRESH : i_icons.
  239.   CLEAR : subrc.
  240.   WHILE subrc < 64.
  241.     IF subrc <> 0.
  242.       READ TABLE i_layout INDEX subrc.
  243.       IF i_layout-col = 8.
  244.         i_layout-col = 1.
  245.         i_layout-row = i_layout-row + 1.
  246.       ELSE.
  247.         i_layout-col = i_layout-col + 1.
  248.       ENDIF.
  249.     ELSE.
  250.       i_layout-row = 1.
  251.       i_layout-col = 1.
  252.     ENDIF.
  253.     CLEAR : count,i_iconlist.
  254.     CALL FUNCTION 'QF05_RANDOM_INTEGER'
  255.       EXPORTING
  256.         ran_int_max   = 32
  257.         ran_int_min   = 1
  258.       IMPORTING
  259.         ran_int       = ran_no
  260.       EXCEPTIONS
  261.         invalid_input = 1
  262.         OTHERS        = 2.
  263.     READ TABLE i_iconlist INDEX ran_no.
  264.     LOOP AT i_layout INTO w_layout WHERE id = i_iconlist-id.
  265.       count = count + 1.
  266.     ENDLOOP.
  267.     IF count < 2.
  268.       i_layout-id = i_iconlist-id.
  269.       APPEND i_layout.
  270.     ENDIF.
  271.     CLEAR : i_layout.
  272.     DESCRIBE TABLE i_layout LINES subrc.
  273.   ENDWHILE.
  274.   CLEAR : flg_one,flg_two,icon_one,icon_two, current_ucomm.
  275. ENDFORM. " do_initialization

复制代码

使用道具 举报

回复
论坛徽章:
0
17#
 楼主| 发表于 2008-11-19 18:17 | 只看该作者







如果想写成例如俄罗斯方块,动态类的,
该如何呢??

请高手指点一二....

使用道具 举报

回复
论坛徽章:
3
生肖徽章2007版:猪
日期:2009-03-10 21:31:232012新春纪念徽章
日期:2012-01-04 11:50:442013年新春福章
日期:2013-02-25 14:51:24
18#
发表于 2008-11-19 20:23 | 只看该作者
强啊,哈哈

使用道具 举报

回复
论坛徽章:
1
授权会员
日期:2008-07-29 13:58:59
19#
发表于 2008-11-20 08:51 | 只看该作者
收藏

使用道具 举报

回复
论坛徽章:
44
ITPUB元老
日期:2014-08-11 09:08:00秀才
日期:2017-08-18 11:06:45妮可·罗宾
日期:2017-07-28 14:32:572015年新春福章
日期:2015-06-02 15:10:36慢羊羊
日期:2015-04-21 10:06:082015年新春福章
日期:2015-03-06 11:58:18itpub13周年纪念徽章
日期:2014-10-08 15:19:03itpub13周年纪念徽章
日期:2014-10-08 15:19:03itpub13周年纪念徽章
日期:2014-10-08 15:19:03itpub13周年纪念徽章
日期:2014-10-08 15:19:03
20#
发表于 2008-11-20 09:31 | 只看该作者

回复 #16 zltpc007 的帖子

你真是太有才了

收藏了

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

TOP技术积分榜 社区积分榜 徽章 团队 统计 知识索引树 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 未成年人举报专区 
京ICP备16024965号-8  北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表