진지한 아밥 자료실엔 올리기 머하고 자유게시판에 올려요
허접하지만... 아직 공부하고 있는중이니 너그럽게 봐주세요 ㅠㅠ
사다리 타기.. 이름 7개에 넣으시고... 돌리세요 ㅋㅋ
사람 인원에따라 편집해서 하세요 ㅎㅎ;;;;
PARAMETERS: num1(10),
num2(10),
num3(10),
num4(10),
num5(10),
num6(10),
num7(10).
DATA: num_1 TYPE i VALUE '1',
num_2 TYPE i VALUE '2',
num_3 TYPE i VALUE '3',
num_4 TYPE i VALUE '4',
num_5 TYPE i VALUE '5',
num_6 TYPE i VALUE '6',
num_7 TYPE i VALUE '7'.
DATA: unluck LIKE datatype-integer4.
DATA: rmin TYPE i,
rmax TYPE i.
rmin = 1.
rmax = 7.
DO 100 TIMES.
CALL FUNCTION 'RANDOM_I4'
EXPORTING
rnd_min = rmin
rnd_max = rmax
IMPORTING
rnd_value = unluck.
ENDDO.
IF num_1 = unluck.
MESSAGE i001(abap) WITH num1'은/는 꽝!!!!떡볶이사오세요!!!'.
ELSEIF num_2 = unluck.
MESSAGE i002(abap) WITH num2'은/는 꽝!!!!떡볶이사오세요!!!'.
ELSEIF num_3 = unluck.
MESSAGE i003(abap) WITH num3'은/는 꽝!!!!떡볶이사오세요!!!'.
ELSEIF num_4 = unluck.
MESSAGE i004(abap) WITH num4'은/는 꽝!!!!떡볶이사오세요!!!'.
ELSEIF num_5 = unluck.
MESSAGE i005(abap) WITH num5'은/는 꽝!!!!떡볶이사오세요!!!'.
ELSEIF num_6 = unluck.
MESSAGE i006(abap) WITH num6'은/는 꽝!!!!떡볶이사오세요!!!'.
ELSEIF num_7 = unluck.
MESSAGE i007(abap) WITH num7'은/는 꽝!!!!떡볶이사오세요!!!'.
ENDIF.
댓글 14
-
초보아밥퍼
2011.02.18 04:07
-
양키
2011.02.18 17:49
'RANDOM_I4' 이런 Function도 있었네요. ㅎㅎ
-
늦깍이대뷰자
2011.02.18 17:52
공부하시는 분이 이걸 짜시니 대단하신데요..^^
-
육포먹는 스님
2011.02.18 18:08
재미있는 펑션 및 프로그램 갑니다..
-
그림장이
2011.02.18 18:35
아 재밌게 봐주셔서 감사합니다 ^^;; 분명히 자유게시판에 올린거 같은데 ... 이동되어있네요 ㅋ;;
-
Abap
2011.02.18 19:25
와.. 재미있게 공부하시네요..^^ 실력도 금방금방 올라가실듯 합니다!
-
icarus
2011.02.18 19:42
공부하신다고 하셔서...
일단 올려주신 소스 기준으로 필드심벌 사용하시면 아래처럼 할 수 있어요...
PARAMETERS: num1(10),
num2(10),
num3(10),
num4(10),
num5(10),
num6(10),
num7(10).
DATA: num_1 TYPE i VALUE '1',
num_2 TYPE i VALUE '2',
num_3 TYPE i VALUE '3',
num_4 TYPE i VALUE '4',
num_5 TYPE i VALUE '5',
num_6 TYPE i VALUE '6',
num_7 TYPE i VALUE '7'.
DATA: unluck LIKE datatype-integer4.
DATA: rmin TYPE i,
rmax TYPE i.
DATA: lv_num(01) TYPE n,
lv_unluck(20).
FIELD-SYMBOLS: <fs>.
rmin = 1.
rmax = 7.
DO 100 TIMES.
CALL FUNCTION 'RANDOM_I4'
EXPORTING
rnd_min = rmin
rnd_max = rmax
IMPORTING
rnd_value = unluck.
ENDDO.
lv_num = unluck.
CONCATENATE 'NUM' lv_num INTO lv_unluck.
ASSIGN (lv_unluck) TO <fs>.
MESSAGE i001(abap) WITH <fs> '은/는 꽝!!!!떡볶이사오세요!!!'. -
기쁨
2011.02.18 20:09
잼있는 프로그램이네요. 떡볶이 사러가야징.. ㅋㅋ
-
그림장이
2011.02.18 20:21
하앍 ^^ 필드심볼까지 ㅎㅎ 감사합니다 열공하겠습니다....
-
ABAPCHOJJA
2011.02.18 23:11
재미있을 것 같아 저도 한번 만들어봤어요. ^^
DATA RAND_I TYPE I.
DATA FNAME TYPE FIELDNAME.
DATA NUMBER TYPE N LENGTH 1.
DATA POS TYPE I.
DATA RAND_T TYPE SORTED TABLE OF I WITH UNIQUE KEY TABLE_LINE.
FIELD-SYMBOLS <FS_RESULT> TYPE ANY.
" 이름 지정 ( 7명 기준 )
SELECTION-SCREEN BEGIN OF BLOCK BLOCK1.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : P_1 TYPE CHAR10,
P_2 TYPE CHAR10,
P_3 TYPE CHAR10,
P_4 TYPE CHAR10,
P_5 TYPE CHAR10,
P_6 TYPE CHAR10,
P_7 TYPE CHAR10.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK BLOCK1.
" Blank
SELECTION-SCREEN BEGIN OF BLOCK BLOCK2.
SELECTION-SCREEN SKIP 7.
SELECTION-SCREEN END OF BLOCK BLOCK2.
" 벌칙
SELECTION-SCREEN BEGIN OF BLOCK BLOCK3.
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS : P_F1 TYPE CHAR10 DEFAULT '꽝',
P_F2 TYPE CHAR10 DEFAULT '1000',
P_F3 TYPE CHAR10 DEFAULT '꽝',
P_F4 TYPE CHAR10 DEFAULT '2000',
P_F5 TYPE CHAR10 DEFAULT '꽝',
P_F6 TYPE CHAR10 DEFAULT '3000',
P_F7 TYPE CHAR10 DEFAULT '5000'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN END OF BLOCK BLOCK3.
START-OF-SELECTION.
WRITE : (10) P_1 NO-GAP CENTERED COLOR 1,
(10) P_2 NO-GAP CENTERED COLOR 2,
(10) P_3 NO-GAP CENTERED COLOR 3,
(10) P_4 NO-GAP CENTERED COLOR 4,
(10) P_5 NO-GAP CENTERED COLOR 5,
(10) P_6 NO-GAP CENTERED COLOR 6,
(10) P_7 NO-GAP CENTERED COLOR 7.
FORMAT RESET.
WRITE /.
DO 7 TIMES.
WRITE : (10) SY-VLINE NO-GAP CENTERED,
(10) SY-VLINE NO-GAP CENTERED,
(10) SY-VLINE NO-GAP CENTERED,
(10) SY-VLINE NO-GAP CENTERED,
(10) SY-VLINE NO-GAP CENTERED,
(10) SY-VLINE NO-GAP CENTERED,
(10) SY-VLINE NO-GAP CENTERED.
WRITE /.
ENDDO.
CLEAR NUMBER.
DO 7 TIMES.
CALL FUNCTION 'RANDOM_I4'
EXPORTING
RND_MIN = 1
RND_MAX = 7
IMPORTING
RND_VALUE = RAND_I.
" 중복 점검 및 재시도
DO 1000 TIMES.
READ TABLE RAND_T TRANSPORTING NO FIELDS
FROM RAND_I.
IF SY-SUBRC IS NOT INITIAL.
INSERT RAND_I INTO TABLE RAND_T.
EXIT.
ELSE.
CALL FUNCTION 'RANDOM_I4'
EXPORTING
RND_MIN = 1
RND_MAX = 7
IMPORTING
RND_VALUE = RAND_I.
ENDIF.
ENDDO.
POS = RAND_I * 10 - 10.
ADD 1 TO NUMBER.
CONCATENATE 'P_F' NUMBER INTO FNAME.
ASSIGN (FNAME) TO <FS_RESULT>.
WRITE AT POS(10) <FS_RESULT> NO-GAP CENTERED. -
그림장이
2011.02.19 01:53
호곡.. 이건 또 머지 .. 함 실행해보고 어떻게 돌아가는지 연구해봐야겠네요 ㅋ -
남군
2011.02.21 17:54
ㅎㅎ 잘 보고 갑니다. Online으로도 만들어도 꽤 재밌을것도 같네요~ -
젊은시인
2011.02.22 21:30
ㅋㅋㅋ
-
싼타할배
2011.02.23 22:19
저도 재밌게 공부해야겠습니다^^
혼자하니 전부 꽝 ㅜ^ㅜ 재밌네요