<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ABAP Tutorials &#187; Fun</title>
	<atom:link href="http://www.abap-tutorials.com/category/fun/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.abap-tutorials.com</link>
	<description>ABAP Tutorials, Guides, Training, Manuals</description>
	<lastBuildDate>Thu, 17 Nov 2011 07:43:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.3</generator>
		<item>
		<title>Complete Reference to ABAP Basics</title>
		<link>http://www.abap-tutorials.com/2010/03/16/complete-reference-to-abap-basics/</link>
		<comments>http://www.abap-tutorials.com/2010/03/16/complete-reference-to-abap-basics/#comments</comments>
		<pubDate>Tue, 16 Mar 2010 18:16:32 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ABAP]]></category>
		<category><![CDATA[Abap Objects]]></category>
		<category><![CDATA[ALV]]></category>
		<category><![CDATA[BDC / LSMW]]></category>
		<category><![CDATA[DDIC]]></category>
		<category><![CDATA[Enhancement/Modification]]></category>
		<category><![CDATA[Formatting]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Function Modules]]></category>
		<category><![CDATA[Module Pool]]></category>
		<category><![CDATA[Quick Reference]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[SAP Query]]></category>
		<category><![CDATA[ABAP Basics]]></category>
		<category><![CDATA[Complete Reference]]></category>

		<guid isPermaLink="false">http://www.abap-tutorials.com/?p=1393</guid>
		<description><![CDATA[The following ebook is for the ABAP beginners giving an overview of basic topics in ABAP. This reference guide focuses on following topics: ENTERPRISE RESOURCE PLANNING (ERP) SAP ADVANTAGES Role of ABAPer R/3 ARCHITECTURE COMPONENTS WHAT IS CLIENT IN SAP Developemt Obects -  REPOSITORY OBJECTS and  DATA DICTIONARY OBJECTS ABAP GUI DATA DICTIONARY INTERNAL TABLES SUBROUTINES [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">The following ebook is for the ABAP beginners giving an overview of basic topics in ABAP.</p>
<p style="text-align: justify;">
<div style="float: left; width: 100%;"><img class="aligncenter size-full wp-image-1398" title="References" src="http://www.abap-tutorials.com/wp-content/uploads/2010/03/references.jpg" alt="" width="288" height="285" /></div>
</p>
<p style="text-align: justify;">This reference guide focuses on following topics:</p>
<ul>
<li>
<div style="text-align: justify;">ENTERPRISE RESOURCE PLANNING (ERP)</div>
</li>
<li>
<div style="text-align: justify;">SAP ADVANTAGES</div>
</li>
<li>
<div style="text-align: justify;">Role of ABAPer</div>
</li>
<li>
<div style="text-align: justify;">R/3 ARCHITECTURE COMPONENTS</div>
</li>
<li>
<div style="text-align: justify;">WHAT IS CLIENT IN SAP</div>
</li>
<li style="text-align: justify;">Developemt Obects -  REPOSITORY OBJECTS and  DATA DICTIONARY OBJECTS</li>
<li style="text-align: justify;">ABAP GUI</li>
<li style="text-align: justify;">DATA DICTIONARY</li>
<li style="text-align: justify;">INTERNAL TABLES</li>
<li style="text-align: justify;">SUBROUTINES</li>
<li style="text-align: justify;">Reports</li>
<li style="text-align: justify;">MODULE POOL PROGRAMMING</li>
<li style="text-align: justify;">Menu Painter</li>
<li style="text-align: justify;">BATCH DATA COMMUNICATION</li>
<li style="text-align: justify;">LSMW ( Legacy System Migration Workbench)</li>
<li style="text-align: justify;">SAPSCRIPTS</li>
<li style="text-align: justify;">SMARTFORMS</li>
</ul>
<p style="text-align: justify;"> <span id="more-1393"></span></p>
<p style="text-align: justify;"> </p>
<p style="text-align: justify;">Link : <a href="http://www.abap-tutorials.com/wp-content/uploads/pdfs/Complete_Reference_to_ABAP_Basics.pdf" target="_blank">Complete Reference to ABAP Basics</a></p>


<p>You might also be interested in these posts:<ol><li><a href='http://www.abap-tutorials.com/2009/07/28/display-se78-pictures-on-screen/' rel='bookmark' title='ABAP Program to Display SE78 pictures on Screen'>ABAP Program to Display SE78 pictures on Screen</a></li>
<li><a href='http://www.abap-tutorials.com/2010/05/07/abap-programs-for-beginners/' rel='bookmark' title='ABAP Programs for Beginners'>ABAP Programs for Beginners</a></li>
<li><a href='http://www.abap-tutorials.com/2009/08/19/lock-objects-in-sap/' rel='bookmark' title='Lock Objects in SAP'>Lock Objects in SAP</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.abap-tutorials.com/2010/03/16/complete-reference-to-abap-basics/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Customizing SAP Login Screen</title>
		<link>http://www.abap-tutorials.com/2009/12/30/customizing-sap-login-screen/</link>
		<comments>http://www.abap-tutorials.com/2009/12/30/customizing-sap-login-screen/#comments</comments>
		<pubDate>Wed, 30 Dec 2009 04:33:02 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[Login screen]]></category>
		<category><![CDATA[Note 205487]]></category>
		<category><![CDATA[RSTXICON]]></category>
		<category><![CDATA[se61]]></category>

		<guid isPermaLink="false">http://www.abap-tutorials.com/?p=1267</guid>
		<description><![CDATA[There are times, when Client want to display some important / statutory message on SAP Login Screen.      We can do that using some simple steps: 1. Goto SE61 and select GENERAL TEXT as Document Class and search for &#8220;ZLOGIN_SCREEN_INFO&#8220;. Click Change button. (if not found, Create   Enter the text you want to display [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">There are times, when Client want to display some important / statutory message on SAP Login Screen. </p>
<p style="text-align: center;"><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_main.jpg"></a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_main.jpg"><br /> 
<div style="width: 100%; float: left;"><img class="aligncenter size-full wp-image-1269" title="modify_login_screen_main" src="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_main.jpg" alt="" width="614" height="445" /></div>
<p> </a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_main.jpg"></a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_main.jpg"> </a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_main.jpg"></a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_main.jpg"> </a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_main.jpg"></a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_main.jpg"> </a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_main.jpg"></a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_main.jpg"> </a></p>
<p style="text-align: left;"> </p>
<p style="text-align: left;"><span id="more-1267"></span></p>
<p style="text-align: left;"> </p>
<p style="text-align: left;">We can do that using some simple steps:</p>
<p>1. Goto SE61 and select GENERAL TEXT as Document Class and search for &#8220;<strong>ZLOGIN_SCREEN_INFO</strong>&#8220;. Click Change button. (if not found, Create</p>
<p style="text-align: center;"><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_1.jpg"></a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_1.jpg"><br /> 
<div style="width: 100%; float: left;"><img class="aligncenter size-full wp-image-1270" title="modify_login_screen_1" src="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_1.jpg" alt="" width="614" height="445" /></div>
<p> </a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_1.jpg"></a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_1.jpg"> </a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_1.jpg"></a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_1.jpg"> </a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_1.jpg"></a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_1.jpg"> </a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_1.jpg"></a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_1.jpg"> </a></p>
<p> </p>
<p>Enter the text you want to display in free text field displayed. Save and exit.</p>
<p style="text-align: center;"><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_3.jpg"></a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_3.jpg"><br /> 
<div style="width: 100%; float: left;"><img class="aligncenter size-full wp-image-1271" title="modify_login_screen_3" src="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_3.jpg" alt="" width="614" height="445" /></div>
<p> </a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_3.jpg"></a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_3.jpg"> </a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_3.jpg"></a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_3.jpg"> </a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_3.jpg"></a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_3.jpg"> </a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_3.jpg"></a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_3.jpg"> </a></p>
<p> </p>
<p>Now the next time you click login on login pad, you will see the message you saved.</p>
<p> </p>
<p> </p>
<p> </p>
<p> </p>
<p><strong>Note:</strong></p>
<p>1. You can add Icons to the message. Use report RSTXICON to identify icon.</p>
<p style="text-align: center;"><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_2.jpg"></a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_2.jpg">
<div style="width: 100%; float: left;"><img class="aligncenter size-full wp-image-1273" title="modify_login_screen_2" src="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_2.jpg" alt="" width="614" height="445" /></div>
<p> </a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_2.jpg"></a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_2.jpg"> </a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_2.jpg"></a></p>
<p><a href="http://www.abap-tutorials.com/wp-content/uploads/2009/12/modify_login_screen_2.jpg"> </a></p>
<p> </p>
<p>2. Refer to SAP Note 205487 for more on displaying text on login screen.</p>
<p> </p>
<p> </p>


<p>You might also be interested in these posts:<ol><li><a href='http://www.abap-tutorials.com/2009/07/25/unlock-login-id-in-sap/' rel='bookmark' title='ABAP Program to Unlock Login ID in SAP'>ABAP Program to Unlock Login ID in SAP</a></li>
<li><a href='http://www.abap-tutorials.com/2009/12/23/add-company-logo-to-sap-easy-access-screen/' rel='bookmark' title='Add company logo to SAP Easy Access Initial Screen'>Add company logo to SAP Easy Access Initial Screen</a></li>
<li><a href='http://www.abap-tutorials.com/2009/08/12/field-exit-in-sap/' rel='bookmark' title='Field Exit in SAP'>Field Exit in SAP</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.abap-tutorials.com/2009/12/30/customizing-sap-login-screen/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Add company logo to SAP Easy Access Initial Screen</title>
		<link>http://www.abap-tutorials.com/2009/12/23/add-company-logo-to-sap-easy-access-screen/</link>
		<comments>http://www.abap-tutorials.com/2009/12/23/add-company-logo-to-sap-easy-access-screen/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 04:31:26 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[Fun]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[Tutorial]]></category>
		<category><![CDATA[company logo]]></category>
		<category><![CDATA[image]]></category>
		<category><![CDATA[SAP Easy Access]]></category>
		<category><![CDATA[SM30]]></category>
		<category><![CDATA[SMW0]]></category>
		<category><![CDATA[wallpaper]]></category>
		<category><![CDATA[WebRFC application]]></category>

		<guid isPermaLink="false">http://www.abap-tutorials.com/?p=1242</guid>
		<description><![CDATA[It is primarily required to display company logo instead of SAP standard wallpaper on SAP Easy Access Initial Screen. you can do it by using SMW0.     Go to transaction SMW0 and click on Binary Data for Web RFC Applications,     Click on Right Tick Mark on above.   On next screen you [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">It is primarily required to display company logo instead of SAP standard wallpaper on SAP Easy Access Initial Screen.  you can do it by using SMW0.</p>
<p style="text-align: center;"> </p>
<div style="width: 100%; float: left;"><img class="aligncenter size-full wp-image-1251" title="Change SAP Easy Access Image -pic0" src="http://www.abap-tutorials.com/wp-content/uploads/2009/12/main_image0.jpg" alt="main_image0" width="368" height="267" /></div>
<p> </p>
<p><span id="more-1242"></span></p>
<p>Go to transaction SMW0 and click on Binary Data for Web RFC Applications,</p>
<p style="text-align: center;"> </p>
<div style="width: 100%; float: left;"><img class="aligncenter size-full wp-image-1252" title="Change SAP Easy Access Image -pic1" src="http://www.abap-tutorials.com/wp-content/uploads/2009/12/main_image.jpg" alt="Change SAP Easy Access Image -pic1" width="548" height="221" /></div>
<p> </p>
<p>Click on Right Tick Mark on above.</p>
<p> </p>
<p>On next screen you will see a execute button don&#8217;t select any package just execute it.</p>
<p style="text-align: center;"> </p>
<div style="width: 100%; float: left;"><img class="aligncenter size-full wp-image-1253" title="Change SAP Easy Access Image -pic2" src="http://www.abap-tutorials.com/wp-content/uploads/2009/12/main_image2.jpg" alt="Change SAP Easy Access Image -pic2" width="579" height="248" /></div>
<p> </p>
<p> </p>
<p>On the next screen create a new entry by selecting Create button. Enter Object Name and Description. Press Enter to select the Image using File Browser. Select the Image and press Import.</p>
<p style="text-align: center;"> </p>
<div style="width: 100%; float: left;"><img class="aligncenter size-full wp-image-1254" title="Change SAP Easy Access Image -pic3" src="http://www.abap-tutorials.com/wp-content/uploads/2009/12/main_image3.jpg" alt="Change SAP Easy Access Image -pic3" width="602" height="440" /></div>
<p> </p>
<p> </p>
<p>Then go to SM30. Select table SSM_CUST. There will be a perameter called START_IMAGE. Enter parameter value (TEST IMAGE in our case).</p>
<p style="text-align: center;"> </p>
<div style="width: 100%; float: left;"><img class="aligncenter size-full wp-image-1256" title="Change SAP Easy Access Image -pic5" src="http://www.abap-tutorials.com/wp-content/uploads/2009/12/main_image41.jpg" alt="Change SAP Easy Access Image -pic4" width="614" height="445" /></div>
<p> </p>
<p>It will ask for a Transport Request. Create a Local Request.</p>
<p>Log off and login again. You will see new logo.</p>


<p>You might also be interested in these posts:<ol><li><a href='http://www.abap-tutorials.com/2009/07/29/display-oaer-pictures-on-screen/' rel='bookmark' title='ABAP Program to Display OAER pictures on Screen'>ABAP Program to Display OAER pictures on Screen</a></li>
<li><a href='http://www.abap-tutorials.com/2009/07/17/assign-a-t-code-to-maintenance-view/' rel='bookmark' title='Assign a T-code to Maintenance View in SAP'>Assign a T-code to Maintenance View in SAP</a></li>
<li><a href='http://www.abap-tutorials.com/2009/12/30/customizing-sap-login-screen/' rel='bookmark' title='Customizing SAP Login Screen'>Customizing SAP Login Screen</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.abap-tutorials.com/2009/12/23/add-company-logo-to-sap-easy-access-screen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Tic-Tac-Toe Game in SAP</title>
		<link>http://www.abap-tutorials.com/2009/08/24/tic-tac-toe-game-in-sap/</link>
		<comments>http://www.abap-tutorials.com/2009/08/24/tic-tac-toe-game-in-sap/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 14:10:08 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ABAP]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Sample Code]]></category>
		<category><![CDATA[SAP]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[Tic-Tac-Toe]]></category>

		<guid isPermaLink="false">http://naveenvishal.wordpress.com/?p=734</guid>
		<description><![CDATA[The main objective of this program is to develop a game in abap. The game is called as &#8220;Tic Tac Toe&#8221; which can be played against a computer. Simple procedures are used to write this program. Use of selection screen concepts are done in this game.         *———————————————————————* * Report ZTICTACTOE * *———————————————————————* REPORT ZTICTACTOE. [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">The main objective of this program is to develop a game in abap. The game is called as &#8220;<strong>Tic Tac Toe</strong>&#8221; which can be played against a computer. Simple procedures are used to write this program. Use of selection screen concepts are done in this game.</p>
<div style="width:100%; float:left">
<p style="text-align: center;"> <img class="size-full wp-image-735 aligncenter" title="Tic-Tac-Toe Game" src="http://naveenvishal.files.wordpress.com/2009/08/tictactoe1.jpg" alt="Tic-Tac-Toe Game" width="414" height="207" /></p>
</div>
<p style="text-align:justify;"> </p>
<p style="text-align:justify;"> </p>
<div style="text-align:justify;"><span style="font-family:arial;"><span style="line-height:normal;"> </span></span></div>
<p><span id="more-734"></span></p>
<div style="text-align:justify;">
<pre lang="ABAP">*———————————————————————*

* Report ZTICTACTOE

*

*———————————————————————*

REPORT ZTICTACTOE.

TABLES SSCRFIELDS.

DATA: FLAG, count(10) type c ,

f1,f2,f3,f4,f5,f6,f7,f8,f9,

p1(2) type c,

p2(2) type c,

player(2) type c,

ch type c.

SELECTION-SCREEN BEGIN OF BLOCK rad1

WITH FRAME TITLE text-002 no intervals.

PARAMETERS Message(10) TYPE c .

SELECTION-SCREEN SKIP 1.

SELECTION-SCREEN:

BEGIN OF LINE,

PUSHBUTTON 2(5) BUT1 USER-COMMAND CLI1 MODIF ID sc1,

PUSHBUTTON 7(5) BUT2 USER-COMMAND CLI2 MODIF ID sc2,

PUSHBUTTON 12(5) BUT3 USER-COMMAND CLI3 MODIF ID sc3,

END OF LINE,

BEGIN OF LINE,

PUSHBUTTON 2(5) BUT4 USER-COMMAND CLI4 MODIF ID sc4,

PUSHBUTTON 7(5) BUT5 USER-COMMAND CLI5 MODIF ID sc5,

PUSHBUTTON 12(5) BUT6 USER-COMMAND CLI6 MODIF ID sc6,

END OF LINE,

BEGIN OF LINE,

PUSHBUTTON 2(5) BUT7 USER-COMMAND CLI7 MODIF ID sc7,

PUSHBUTTON 7(5) BUT8 USER-COMMAND CLI8 MODIF ID sc8,

PUSHBUTTON 12(5) BUT9 USER-COMMAND CLI9 MODIF ID sc9,

END OF LINE.

SELECTION-SCREEN END OF BLOCK rad1.

* DISPLAYING THE SCORE FILED AS A LABEL

*disabling process******************************* *

form box_disable using ch.

LOOP AT SCREEN.

IF screen-group1 = ch.

screen-input = ‘0′.

MODIFY SCREEN.

ENDIF.

ENDLOOP.

endform. “box_disable

AT SELECTION-SCREEN OUTPUT.

if f1 = 1.

perform box_disable using ‘SC1′.

endif.

if f2 = 1.

perform box_disable using ‘SC2′.

endif.

if f3 = 1.

perform box_disable using ‘SC3′.

endif.

if f4 = 1.

perform box_disable using ‘SC4′.

endif.

if f5 = 1.

perform box_disable using ‘SC5′.

endif.

if f6 = 1.

perform box_disable using ‘SC6′.

endif.

if f7 = 1.

perform box_disable using ‘SC7′.

endif.

if f8 = 1.

perform box_disable using ‘SC8′.

endif.

if f9 = 1.

perform box_disable using ‘SC9′.

endif.

AT SELECTION-SCREEN .

CASE SSCRFIELDS.

WHEN ‘CLI1′.

count = count + 1.

perform player_turn.

BUT1 = p1.

f1 = ‘1′.

perform computer_move.

WHEN ‘CLI2′.

count = count + 1.

perform player_turn.

BUT2 = p1.

f2 = ‘1′.

perform computer_move.

WHEN ‘CLI3′.

count = count + 1.

perform player_turn.

BUT3 = p1.

f3 = ‘1′.

perform computer_move.

WHEN ‘CLI4′.

count = count + 1.

perform player_turn.

BUT4 = p1.

f4 = ‘1′.

perform computer_move.

WHEN ‘CLI5′.

count = count + 1.

perform player_turn.

BUT5 = p1.

f5 = ‘1′.

perform computer_move.

WHEN ‘CLI6′.

count = count + 1.

perform player_turn.

BUT6 = p1.

f6 = ‘1′.

perform computer_move.

WHEN ‘CLI7′.

count = count + 1.

perform player_turn.

BUT7 = p1.

f7 = ‘1′.

perform computer_move.

WHEN ‘CLI8′.

count = count + 1.

perform player_turn.

BUT8 = p1.

f8 = ‘1′.

perform computer_move.

WHEN ‘CLI9′.

count = count + 1.

perform player_turn.

BUT9 = p1.

f9 = ‘1′.

perform computer_move.

ENDCASE.

*this is for toggle operation p1 = X ; p2 = O ;

form player_turn.

player = count MOD 2.

**BUT2 = player.

if player = 1.

**BUT4 = ‘player1′.

p1 = ‘X’.

else.

**BUT4 = ‘player2′.

p1 = ‘O’.

endif.

endform. “player_turn

**———————————————————————**

** Form computer_move

**———————————————————————**

** text

**———————————————————————-**

form computer_move.

if count = 9.

Message = ‘DRAW’.

perform reset.

endif.

if count = 7.

perform fourth_move.

endif.

if count = 5.

perform third_move.

endif.

if count = 3.

perform second_move.

endif.

if count = 1.

perform first_move.

endif.

perform who_wins.

endform. “computer_move

**computer – O

form first_move.

if but5 &lt;&gt; ‘X’.

but5 = ‘O’.

else.

BUT9 = ‘O’.

endif.

count = count + 1.

endform. “first_move

**———————————————————————**

** Form second_move

**———————————————————————**

** text

**———————————————————————-**

form second_move.

data str1 type c.

str1 = ‘X’.

perform check_possible using ‘X’.

if count = 3.

perform misc_move.

endif.

if count = 3.

perform empty_fill.

endif.

endform. “second_move

**———————————————————————**

** Form check_possible

**———————————————————————**

** text

**———————————————————————-**

form check_possible using str type c.

**checking for rows

**1st row *–3rd col empty

if but1 = str and but2 = str and but3 = ‘ ‘.

but3 = ‘O’.

count = count + 1.

endif.

**2ndrow

if but4 = str and but5 = str and but6 = ‘ ‘.

but6 = ‘O’.

count = count + 1.

endif.

**3rd row

if but7 = str and but8 = str and but9 = ‘ ‘.

but9 = ‘O’.

count = count + 1.

endif.

**1st row *–2nd col empty

if but1 = str and but2 = ‘ ‘ and but3 = str.

but2 = ‘O’.

count = count + 1.

endif.

**2ndrow

if but4 = str and but5 = ‘ ‘ and but6 = str.

but5 = ‘O’.

count = count + 1.

endif.

**3rd row

if but7 = str and but8 = ‘ ‘ and but9 = str.

but8 = ‘O’.

count = count + 1.

endif.

**1st row *–1st col empty

if but1 = ‘ ‘ and but2 = str and but3 = str.

but1 = ‘O’.

count = count + 1.

endif.

**2ndrow

if but4 = ‘ ‘ and but5 = str and but6 = str.

but4 = ‘O’.

count = count + 1.

endif.

**3rd row

if but7 = ‘ ‘ and but8 = str and but9 = str.

but7 = ‘O’.

count = count + 1.

endif.

**check for columns

**1st col *–3rd col empty

if but1 = str and but4 = str and but7 = ‘ ‘.

but7 = ‘O’.

count = count + 1.

endif.

**2nd col

if but2 = str and but5 = str and but8 = ‘ ‘.

but8 = ‘O’.

count = count + 1.

endif.

**3rd col

if but3 = str and but6 = str and but9 = ‘ ‘.

but9 = ‘O’.

count = count + 1.

endif.

**1st col *–2nd col empty

if but1 = str and but4 = ‘ ‘ and but7 = str.

but4 = ‘O’.

count = count + 1.

endif.

**2nd col

if but2 = str and but5 = ‘ ‘ and but8 = str.

but5 = ‘O’.

count = count + 1.

endif.

**3rd col

if but3 = str and but6 = ‘ ‘ and but9 = str.

but6 = ‘O’.

count = count + 1.

endif.

**1st col *–1st col empty

if but1 = ‘ ‘ and but4 = str and but7 = str.

but1 = ‘O’.

count = count + 1.

endif.

**2nd col

if but2 = ‘ ‘ and but5 = str and but8 = str.

but2 = ‘O’.

count = count + 1.

endif.

**3rd col

if but3 = ‘ ‘ and but6 = str and but9 = str.

but3 = ‘O’.

count = count + 1.

endif.

**diagonal

**left-top

if but1 = ‘ ‘ and but5 = str and but9 = str.

but1 = ‘O’.

count = count + 1.

endif.

if but1 = str and but5 = str and but9 = ‘ ‘.

but9 = ‘O’.

count = count + 1.

endif.

**right-top

if but3 = ‘ ‘ and but5 = str and but7 = str.

but3 = ‘O’.

count = count + 1.

endif.

if but3 = str and but5 = str and but7 = ‘ ‘.

but7 = ‘O’.

count = count + 1.

endif.

endform. “check_possible

**———————————————————————**

** Form misc_move

**———————————————————————**

** text

**———————————————————————-**

form misc_move.

if but6 = ‘X’ and but8 = ‘X’.

but9 = ‘O’.

count = count + 1.

endif.

if but1 = ‘X’ and but9 = ‘X’.

but2 = ‘O’.

count = count + 1.

endif.

if but3 = ‘X’ and but7 = ‘X’.

but2 = ‘O’.

count = count + 1.

endif.

if but1 = ‘X’ and but5 = ‘X’.

but7 = ‘O’.

count = count + 1.

endif.

if but1 = ‘X’ and but8 = ‘X’.

but7 = ‘O’.

count = count + 1.

endif.

if but3 = ‘X’ and but8 = ‘X’.

but9 = ‘O’.

count = count + 1.

endif.

if but6 = ‘X’ and but7 = ‘X’.

but9 = ‘O’.

count = count + 1.

endif.

if but4 = ‘X’ and but6 = ‘X’.

but1 = ‘O’.

count = count + 1.

endif.

**—————————-misc–last updated trial *-error

if but2 = ‘X’ and but8 = ‘X’.

but1 = ‘O’.

count = count + 1.

exit .

endif.

if but2 = ‘X’ and but7 = ‘X’.

but9 = ‘O’.

count = count + 1.

endif.

if but2 = ‘X’ and but9 = ‘X’.

but7 = ‘O’.

count = count + 1.

endif.

if but4 = ‘X’ and but8 = ‘X’.

but1 = ‘O’.

count = count + 1.

endif.

if but1 = ‘X’ and but6 = ‘X’.

but3 = ‘O’.

count = count + 1.

endif.

if but2 = ‘X’ and but6 = ‘X’.

but9 = ‘O’.

count = count + 1.

endif.

if but2 = ‘X’ and but4 = ‘X’.

but3 = ‘O’.

count = count + 1.

endif.

if but4 = ‘X’ and but9 = ‘X’.

but7 = ‘O’.

count = count + 1.

endif.

if but4 = ‘X’ and but3 = ‘X’.

but1 = ‘O’.

count = count + 1.

endif.

endform. “misc_move

**———————————————————————**

** Form empty_fill

**———————————————————————**

** text

**———————————————————————-**

form empty_fill.

if but1 &lt;&gt; ‘X’ and but1 &lt;&gt; ‘O’.

but1 = ‘O’.

count = count + 1.

elseif but2 &lt;&gt; ‘X’ and but2 &lt;&gt; ‘O’.

but2 = ‘O’.

count = count + 1.

elseif but3 &lt;&gt; ‘X’ and but3 &lt;&gt; ‘O’.

but3 = ‘O’.

count = count + 1.

elseif but4 &lt;&gt; ‘X’ and but4 &lt;&gt; ‘O’.

but4 = ‘O’.

count = count + 1.

elseif but5 &lt;&gt; ‘X’ and but5 &lt;&gt; ‘O’.

but5 = ‘O’.

count = count + 1.

elseif but6 &lt;&gt; ‘X’ and but6 &lt;&gt; ‘O’.

but6 = ‘O’.

count = count + 1.

elseif but7 &lt;&gt; ‘X’ and but7 &lt;&gt; ‘O’.

but7 = ‘O’.

count = count + 1.

elseif but8 &lt;&gt; ‘X’ and but8 &lt;&gt; ‘O’.

but8 = ‘O’.

count = count + 1.

elseif but9 &lt;&gt; ‘X’ and but9 &lt;&gt; ‘O’.

but9 = ‘O’.

count = count + 1.

endif.

endform. “empty_fill

**———————————————————————**

** Form third_move

**———————————————————————**

** text

**———————————————————————-**

form third_move.

perform check_possible using ‘O’.

if count = 5.

perform check_possible using ‘X’.

endif.

if count = 5.

perform empty_fill.

endif.

endform. “third_move

**———————————————————————**

** Form fourth_move

**———————————————————————**

** text

**———————————————————————-**

form fourth_move.

perform check_possible using ‘O’.

if count = 7.

perform check_possible using ‘X’.

endif.

if count = 7.

perform empty_fill.

endif.

endform. “fourth_move

**check for win ,reset——————————————————————————-*-

**———————————————————————**

** Form check_x_win

**———————————————————————**

** text

**———————————————————————-**

form check_x_win.

** checking of the rows

data a type i.

if but1 = ‘X’ AND but2 = ‘X’ AND but3 = ‘X’.

Message = ‘ X wins ‘.

perform reset.

endif.

if but4 = ‘X’ AND but5 = ‘X’ AND but6 = ‘X’.

Message = ‘ X wins ‘.

perform reset.

endif.

if but7 = ‘X’ AND but8 = ‘X’ AND but9 = ‘X’.

Message = ‘ X wins ‘.

perform reset.

endif.

** checking of the cols

if but1 = ‘X’ AND but4 = ‘X’ AND but7 = ‘X’.

Message = ‘ X wins ‘.

perform reset.

endif.

if but2 = ‘X’ AND but5 = ‘X’ AND but8 = ‘X’.

Message = ‘ X wins ‘.

perform reset.

endif.

if but3 = ‘X’ AND but6 = ‘X’ AND but9 = ‘X’.

Message = ‘ X wins ‘.

perform reset.

endif.

** checking for diagonal

if but1 = ‘X’ AND but5 = ‘X’ AND but9 = ‘X’.

Message = ‘ X wins ‘.

perform reset.

endif.

if but3 = ‘X’ AND but5 = ‘X’ AND but7 = ‘X’.

Message = ‘ X wins ‘.

perform reset.

endif.

endform. “check_x_win

**———————————————————————**

** Form check_o_win

**———————————————————————**

** text

**———————————————————————-**

form check_o_win.

** checking of the rows

if but1 = ‘O’ AND but2 = ‘O’ AND but3 = ‘O’.

Message = ‘ O wins ‘.

perform reset.

endif.

if but4 = ‘O’ AND but5 = ‘O’ AND but6 = ‘O’.

Message = ‘ O wins ‘.

perform reset.

endif.

if but7 = ‘O’ AND but8 = ‘O’ AND but9 = ‘O’.

Message = ‘ O wins ‘.

perform reset.

endif.

** checking of the cols

if but1 = ‘O’ AND but4 = ‘O’ AND but7 = ‘O’.

Message = ‘O wins ‘.

perform reset.

endif.

if but2 = ‘O’ AND but5 = ‘O’ AND but8 = ‘O’.

Message = ‘ O wins ‘.

perform reset.

endif.

if but3 = ‘O’ AND but6 = ‘O’ AND but9 = ‘O’.

Message = ‘ O wins ‘.

perform reset.

endif.

** checking for diagonal

if but1 = ‘O’ AND but5 = ‘O’ AND but9 = ‘O’.

Message = ‘ O wins ‘.

perform reset.

endif.

if but3 = ‘O’ AND but5 = ‘O’ AND but7 = ‘O’.

Message = ‘ O wins ‘.

perform reset.

endif.

endform. “check_o_win

**———————————————————————**

** Form who_wins

**———————————————————————**

** text

**———————————————————————-**

form who_wins.

perform check_x_win.

perform check_o_win.

endform. “who_wins

**———————————————————————**

** Form reset

**———————————————————————**

** text

**———————————————————————-**

form reset.

BUT1 = ‘ ‘.

BUT2 = ‘ ‘.

BUT3 = ‘ ‘.

BUT4 = ‘ ‘.

BUT5 = ‘ ‘.

BUT6 = ‘ ‘.

BUT7 = ‘ ‘.

BUT8 = ‘ ‘.

BUT9 = ‘ ‘.

f1 = ‘ ‘.

f2 =’ ‘.

f3 = ‘ ‘.

f4 =’ ‘.

f5 = ‘ ‘.

f6 =’ ‘.

f7 = ‘ ‘.

f8 =’ ‘.

f9 = ‘ ‘.

** Message = ‘ ‘.

** Score = ‘ ‘.

count = 0.

endform. “reset

initialization.

count = 0.

BUT1 = p1.

BUT2 = p1.

BUT3 = p1.

BUT4 = p1.

BUT5 = p1.

BUT6 = p1.

BUT7 = p1.

BUT8 = p1.

BUT9 = p1.</pre>
</div>


<p>You might also be interested in these posts:<ol><li><a href='http://www.abap-tutorials.com/2009/08/01/marble-game/' rel='bookmark' title='ABAP Program for Marble Game in SAP'>ABAP Program for Marble Game in SAP</a></li>
<li><a href='http://www.abap-tutorials.com/2009/09/10/displaying-icons-in-alv-abap/' rel='bookmark' title='Displaying Icons in ALV Grid using ABAP'>Displaying Icons in ALV Grid using ABAP</a></li>
<li><a href='http://www.abap-tutorials.com/2009/09/17/abap-program-to-add-colors-in-alv-grid/' rel='bookmark' title='ABAP Program to add Colors in ALV Grid'>ABAP Program to add Colors in ALV Grid</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.abap-tutorials.com/2009/08/24/tic-tac-toe-game-in-sap/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>ABAP Program for Marble Game in SAP</title>
		<link>http://www.abap-tutorials.com/2009/08/01/marble-game/</link>
		<comments>http://www.abap-tutorials.com/2009/08/01/marble-game/#comments</comments>
		<pubDate>Sat, 01 Aug 2009 02:58:16 +0000</pubDate>
		<dc:creator>Admin</dc:creator>
				<category><![CDATA[ABAP]]></category>
		<category><![CDATA[Fun]]></category>
		<category><![CDATA[Game]]></category>
		<category><![CDATA[marble]]></category>
		<category><![CDATA[marbles]]></category>
		<category><![CDATA[SAP]]></category>

		<guid isPermaLink="false">http://naveenvishal.wordpress.com/?p=564</guid>
		<description><![CDATA[Try to remove all but one marble from the board. You can remove a marble by skipping over it to an empty spot. Select a marble by clicking on it and move it by selecting the spot that you want to move to.         *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* *&#38; Report  ZTST_MARBLE *&#38; *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~* *&#38; *&#38; [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align:justify;">Try to remove all but one marble from the board. You can remove a marble by skipping over it to an empty spot. Select a marble by clicking on it and move it by selecting the spot that you want to move to.</p>
<p style="text-align:justify;"> </p>
<div id="attachment_565" class="wp-caption aligncenter" style="width: 460px"><img class="size-full wp-image-565" title="Marble Game" src="http://naveenvishal.files.wordpress.com/2009/08/marble.jpg" alt="Marble Game" width="450" height="326" /><p class="wp-caption-text">Marble Game</p></div>
<p> </p>
<p> </p>
<p style="text-align:justify;"><span id="more-564"></span></p>
<p style="text-align:justify;"> </p>
<div><span style="color:#3366ff;">*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*</span></div>
<div><span style="color:#3366ff;">*&amp; Report  ZTST_MARBLE</span></div>
<div><span style="color:#3366ff;">*&amp;</span></div>
<div><span style="color:#3366ff;">*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*</span></div>
<div><span style="color:#3366ff;">*&amp;</span></div>
<div><span style="color:#3366ff;">*&amp;</span></div>
<div><span style="color:#3366ff;">*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*</span></div>
<div>REPORT  ZTST_MARBEL NO STANDARD PAGE HEADING.</div>
<div><span style="color:#3366ff;">*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*</span></div>
<div><span style="color:#3366ff;">* I N C L U D E</span></div>
<div><span style="color:#3366ff;">*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*</span></div>
<div>INCLUDE &lt;ICON&gt;.</div>
<div><span style="color:#3366ff;">*</span></div>
<div><span style="color:#3366ff;">*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*</span></div>
<div><span style="color:#3366ff;">* D A T A   D E F I N I T I O N</span></div>
<div><span style="color:#3366ff;">*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*</span></div>
<div><span style="color:#3366ff;">*&#8230;.Types</span></div>
<div>TYPES: BEGIN OF TY_SCORE,</div>
<div>       SRL   TYPE I,</div>
<div>       UNAME TYPE SY-UNAME,</div>
<div>       SCORE TYPE I,</div>
<div>       TIME  TYPE I,</div>
<div>       END   OF TY_SCORE.</div>
<div><span style="color:#3366ff;">*&#8230;.Internal Tables</span></div>
<div>DATA: BEGIN OF ITAB OCCURS 0,</div>
<div>      C1,  C2,  C3,</div>
<div>      C4,  C5,  C6,</div>
<div>      C7,  C8,  C9,</div>
<div>      END   OF ITAB.</div>
<div>DATA: BEGIN OF IT_PRINT OCCURS 0,</div>
<div>      C1(4), C2(4), C3(4),</div>
<div>      C4(4), C5(4), C6(4),</div>
<div>      C7(4), C8(4), C9(4),</div>
<div>      END   OF IT_PRINT.</div>
<div>DATA: IT_SCORE TYPE STANDARD TABLE OF TY_SCORE.</div>
<div><span style="color:#3366ff;">*&#8230;.Work Areas</span></div>
<div>DATA: WA_ITAB  LIKE ITAB,</div>
<div>      WA_PRINT LIKE IT_PRINT,</div>
<div>      W_SCORE  TYPE TY_SCORE.</div>
<div><span style="color:#3366ff;">*&#8230;.Globle Variables</span></div>
<div>DATA: L_NO_M      TYPE I,</div>
<div>      L_NO_S      TYPE I,</div>
<div>      L_NO_C      TYPE CHAR10,</div>
<div>      L_HALF      TYPE I,</div>
<div>      L_HALF_HALF TYPE I,</div>
<div>      L_PRINT     TYPE FLAG,</div>
<div>      L_NAME      TYPE CHAR20,</div>
<div>      L_MOD       TYPE I.</div>
<div>DATA: W_ON        TYPE FLAG,</div>
<div>      W_SEL_LINE  TYPE I,</div>
<div>      W_SEL_COL   TYPE CHAR1,</div>
<div>      W_DEST_OK   TYPE FLAG,</div>
<div>      W_DEST_LINE TYPE I,</div>
<div>      W_DEST_COL  TYPE CHAR1,</div>
<div>      W_FIELD     TYPE CHAR20,</div>
<div>      W_LINE      TYPE I,</div>
<div>      W_GAME_OVER TYPE FLAG,</div>
<div>      W_TOTAL     TYPE I,</div>
<div>      W_REM       TYPE I,</div>
<div>      W_GONE      TYPE I,</div>
<div>      W_ST_TIME   TYPE I,</div>
<div>      W_END_TIME  TYPE I,</div>
<div>      W_EXPORTED  TYPE FLAG.</div>
<div><span style="color:#3366ff;">*&#8230;.Field symbols</span></div>
<div>FIELD-SYMBOLS: &lt;F&gt; TYPE ANY.</div>
<div><span style="color:#3366ff;">*&#8230;.Constants</span></div>
<div>CONSTANTS: ICON_0(40) TYPE C VALUE ICON_WD_RADIO_BUTTON_EMPTY,</div>
<div>           ICON_1(40) TYPE C VALUE ICON_RADIOBUTTON,</div>
<div>           ICON_2(40) TYPE C VALUE ICON_COLOR.</div>
<div><span style="color:#3366ff;">*.. Some systems don&#8217;t have above listed ICONs You can use:</span></div>
<div><span style="color:#3366ff;">**&#8230;.Constants</span></div>
<div><span style="color:#3366ff;">*CONSTANTS: ICON_0(40) TYPE C VALUE ICON_AVERAGE,      &#8221; ICON_WD_RADIO_BUTTON_EMPTY,</span></div>
<div><span style="color:#3366ff;">*           ICON_1(40) TYPE C VALUE ICON_POSITIVE,     &#8221; ICON_RADIOBUTTON,</span></div>
<div><span style="color:#3366ff;">*           ICON_2(40) TYPE C VALUE ICON_COLOR.</span></div>
<div><span style="color:#3366ff;">*</span></div>
<div><span style="color:#3366ff;">*&#8230;.Ranges</span></div>
<div>RANGES: R_NOT_GREY FOR ABDOCMODE-FLAG.</div>
<div><span style="color:#3366ff;">*&#8230;.Macros</span></div>
<div>DEFINE CONV_I_C.</div>
<div>  &amp;2 = &amp;1.</div>
<div>  CONDENSE &amp;2.</div>
<div>END-OF-DEFINITION.</div>
<div><span style="color:#3366ff;">*</span></div>
<div><span style="color:#3366ff;">*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*</span></div>
<div><span style="color:#3366ff;">* S E L E C T I O N   S C R E E N</span></div>
<div><span style="color:#3366ff;">*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*</span></div>
<div>PARAMETERS: P_NUM TYPE I DEFAULT 7.</div>
<div><span style="color:#3366ff;">*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*</span></div>
<div><span style="color:#3366ff;">* A T   S E L E C T I O N &#8211; S C R E E N .</span></div>
<div><span style="color:#3366ff;">*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*</span></div>
<div>AT SELECTION-SCREEN.</div>
<div>  IF  P_NUM GT 9</div>
<div>  OR  P_NUM LT 5.</div>
<div>    MESSAGE E398(00) WITH &#8216;Currently allowed only: 5, 7, 9&#8242;.</div>
<div>  ENDIF.</div>
<div>  L_MOD = P_NUM MOD 2.</div>
<div>  IF L_MOD = 0.</div>
<div>    MESSAGE E398(00) WITH &#8216;Only odd numbers are allowed&#8217;.</div>
<div>  ENDIF.</div>
<div><span style="color:#3366ff;">*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*</span></div>
<div><span style="color:#3366ff;">* S T A R T   O F   S E L E C T I O N</span></div>
<div><span style="color:#3366ff;">*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*</span></div>
<div>START-OF-SELECTION.</div>
<div>  GET TIME FIELD W_ST_TIME.</div>
<div>  PERFORM FILL_MARBLES.</div>
<div>  PERFORM FILL_PRINT_TABLE.</div>
<div>  PERFORM WRITE_MARBLES.</div>
<div><span style="color:#3366ff;">*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*</span></div>
<div><span style="color:#3366ff;">* A T   L I N E   S E L E C T I O N</span></div>
<div><span style="color:#3366ff;">*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*</span></div>
<div>AT LINE-SELECTION.</div>
<div>  GET CURSOR FIELD W_FIELD.</div>
<div>  PERFORM CALCULATE_MARBLES.</div>
<div>  PERFORM FILL_PRINT_TABLE.</div>
<div>  SY-LSIND = 0.</div>
<div>  PERFORM WRITE_MARBLES.</div>
<div>  PERFORM CHECK_GAME_OVER.</div>
<div><span style="color:#3366ff;">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span></div>
<div><span style="color:#3366ff;">*&amp;      Form  fill_marbles</span></div>
<div><span style="color:#3366ff;">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span></div>
<div><span style="color:#3366ff;">*       Fillup the initial table for the marbles</span></div>
<div><span style="color:#3366ff;">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span></div>
<div>FORM FILL_MARBLES .</div>
<div><span style="color:#3366ff;">* Grey cells</span></div>
<div>  L_HALF = FLOOR( P_NUM / 2 ).</div>
<div>  L_HALF_HALF = L_HALF / 2.</div>
<div>  R_NOT_GREY-SIGN   = &#8216;I&#8217;.</div>
<div>  R_NOT_GREY-OPTION = &#8216;BT&#8217;.</div>
<div>  R_NOT_GREY-LOW  = ( L_HALF &#8211; L_HALF_HALF ) + 1.</div>
<div>  R_NOT_GREY-HIGH = ( L_HALF + L_HALF_HALF ) &#8211; 1.</div>
<div>  APPEND R_NOT_GREY.</div>
<div>  CLEAR  R_NOT_GREY.</div>
<div><span style="color:#3366ff;">* Filling up the table</span></div>
<div>  DO P_NUM TIMES.</div>
<div>    L_NO_M = SY-INDEX.</div>
<div>    NEW-LINE.</div>
<div>    DO P_NUM TIMES.</div>
<div>      L_NO_S = SY-INDEX.</div>
<div>      CLEAR: L_PRINT.</div>
<div>      IF L_NO_M IN R_NOT_GREY.</div>
<div>        L_PRINT = &#8216;X&#8217;.</div>
<div>      ENDIF.</div>
<div>      IF L_NO_S IN R_NOT_GREY.</div>
<div>        L_PRINT = &#8216;X&#8217;.</div>
<div>      ENDIF.</div>
<div>      IF L_PRINT = &#8216;X&#8217;.</div>
<div>        CONV_I_C L_NO_S L_NO_C.</div>
<div>        CONCATENATE &#8216;WA_ITAB-C&#8217; L_NO_C INTO L_NAME.</div>
<div>        ASSIGN (L_NAME) TO &lt;F&gt;.</div>
<div>        IF  L_NO_S = L_HALF</div>
<div>        AND L_NO_M = L_HALF.</div>
<div>          &lt;F&gt; = &#8217;0&#8242;.</div>
<div>          W_TOTAL = W_TOTAL &#8211; 1.</div>
<div>        ELSE.</div>
<div>          &lt;F&gt; = &#8217;1&#8242;.</div>
<div>          W_TOTAL = W_TOTAL + 1.</div>
<div>        ENDIF.</div>
<div>      ELSE.</div>
<div>        WRITE: &#8216; &#8216;.</div>
<div>      ENDIF.</div>
<div>    ENDDO.</div>
<div>    APPEND WA_ITAB TO ITAB.</div>
<div>    CLEAR  WA_ITAB.</div>
<div>  ENDDO.</div>
<div>  W_REM = W_TOTAL.</div>
<div>ENDFORM.                    <span style="color:#3366ff;">&#8221; fill_marbles</span></div>
<div><span style="color:#3366ff;">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span></div>
<div><span style="color:#3366ff;">*&amp;      Form  fill_print_Table</span></div>
<div><span style="color:#3366ff;">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span></div>
<div><span style="color:#3366ff;">*       Convert ITAB value to PRINT table value .</span></div>
<div><span style="color:#3366ff;">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span></div>
<div>FORM FILL_PRINT_TABLE .</div>
<div>  FIELD-SYMBOLS: &lt;F1&gt; TYPE ANY.</div>
<div>  REFRESH IT_PRINT.</div>
<div>  LOOP AT ITAB INTO WA_ITAB.</div>
<div>    L_NO_M = SY-INDEX.</div>
<div>    DO P_NUM TIMES.</div>
<div>      CONV_I_C SY-INDEX L_NO_C.</div>
<div>      CLEAR L_NAME.</div>
<div>      CONCATENATE &#8216;WA_ITAB-C&#8217; L_NO_C INTO L_NAME.</div>
<div>      ASSIGN (L_NAME) TO &lt;F&gt;.</div>
<div>      CLEAR L_NAME.</div>
<div>      CONCATENATE &#8216;WA_PRINT-C&#8217; L_NO_C INTO L_NAME.</div>
<div>      ASSIGN (L_NAME) TO &lt;F1&gt;.</div>
<div>      CASE &lt;F&gt;.</div>
<div>        WHEN &#8217;1&#8242;.</div>
<div>          &lt;F1&gt; = ICON_1.</div>
<div>        WHEN &#8217;0&#8242;.</div>
<div>          &lt;F1&gt; = ICON_0.</div>
<div>        WHEN &#8217;2&#8242;.</div>
<div>          &lt;F1&gt; = ICON_2.</div>
<div>        WHEN OTHERS.</div>
<div>      ENDCASE.</div>
<div>    ENDDO.</div>
<div>    APPEND WA_PRINT TO IT_PRINT.</div>
<div>    CLEAR  WA_PRINT.</div>
<div>  ENDLOOP.</div>
<div>ENDFORM.                  <span style="color:#3366ff;">  &#8221; fill_print_Table</span></div>
<div><span style="color:#3366ff;">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span></div>
<div><span style="color:#3366ff;">*&amp;      Form  write_marbles</span></div>
<div><span style="color:#3366ff;">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span></div>
<div><span style="color:#3366ff;">*       Write marbles from the PRINT table</span></div>
<div><span style="color:#3366ff;">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span></div>
<div>FORM WRITE_MARBLES .</div>
<div>  FIELD-SYMBOLS: &lt;F1&gt; TYPE ANY.</div>
<div>  IF W_GAME_OVER IS INITIAL.</div>
<div>    LOOP AT IT_PRINT INTO WA_PRINT.</div>
<div>      SKIP 1.</div>
<div>      W_LINE = SY-TABIX.</div>
<div>      WRITE: (2) W_LINE.</div>
<div>      HIDE  W_LINE.</div>
<div>      DO P_NUM TIMES.</div>
<div>        CONV_I_C SY-INDEX L_NO_C.</div>
<div>        CLEAR L_NAME.</div>
<div>        CONCATENATE &#8216;WA_PRINT-C&#8217; L_NO_C INTO L_NAME.</div>
<div>        ASSIGN (L_NAME) TO &lt;F1&gt;.</div>
<div>        IF NOT &lt;F1&gt; IS INITIAL.</div>
<div>          WRITE: (2) &lt;F1&gt; AS ICON HOTSPOT ON, (2) &#8216; &#8216;.</div>
<div>        ELSE.</div>
<div>          WRITE: (2) &#8216; &#8216;, (2) &#8216; &#8216;.</div>
<div>        ENDIF.</div>
<div>      ENDDO.</div>
<div>    ENDLOOP.</div>
<div>  ENDIF.</div>
<div>  SKIP 4.</div>
<div>  WRITE: /(30) &#8216;Total Marbles:&#8217;,    W_TOTAL.</div>
<div>  WRITE: /(30) &#8216;Remaining Marbles&#8217;, W_REM.</div>
<div>  SKIP 4.</div>
<div>  PERFORM WRITE_5_HIGH_SCORE.</div>
<div>ENDFORM.                    &#8221; write_marbles</div>
<div><span style="color:#3366ff;">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span></div>
<div><span style="color:#3366ff;">*&amp;      Form  calculate_marbles</span></div>
<div><span style="color:#3366ff;">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span></div>
<div><span style="color:#3366ff;">*       Calculate the marbles after the user input in line selection</span></div>
<div><span style="color:#3366ff;">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span></div>
<div>FORM CALCULATE_MARBLES .</div>
<div><span style="color:#3366ff;">* No marble has been selected</span></div>
<div>  IF W_ON IS INITIAL.</div>
<div>    PERFORM VALIDATE_INPUT.</div>
<div>  ELSE.</div>
<div><span style="color:#3366ff;">* remove the seleced marble</span></div>
<div>    PERFORM DESELECT_MARBLE.</div>
<div>    IF W_ON = &#8216;X&#8217;.</div>
<div><span style="color:#3366ff;">*     Check destination cell, if the same marble has not been selected</span></div>
<div>      PERFORM CHECK_DESTINATION.</div>
<div>    ENDIF.</div>
<div>  ENDIF.</div>
<div><span style="color:#3366ff;">* Destination is ok ..? rearrange the marbles in ITAB</span></div>
<div>  IF W_DEST_OK = &#8216;X&#8217;.</div>
<div>    PERFORM REARRANGE_MARBLES.</div>
<div>  ENDIF.</div>
<div>ENDFORM.                    <span style="color:#3366ff;">&#8221; calculate_marbles</span></div>
<div><span style="color:#3366ff;">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span></div>
<div><span style="color:#3366ff;">*&amp;      Form  validate_input</span></div>
<div><span style="color:#3366ff;">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span></div>
<div><span style="color:#3366ff;">*       Validating the selected marble, is it movable or not</span></div>
<div><span style="color:#3366ff;">*       if marble is movable, highlight it</span></div>
<div><span style="color:#3366ff;">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span></div>
<div>FORM VALIDATE_INPUT .</div>
<div>  DATA: L_SEL_FIELD(20),</div>
<div>        L_TMP_FIELD(20),</div>
<div>        L_SEL_COL(1),</div>
<div>        L_TMP_COL(2),</div>
<div>        L_TMP_LINE TYPE I,</div>
<div>        L_OK TYPE FLAG.</div>
<div>  FIELD-SYMBOLS: &lt;F1&gt; TYPE ANY,</div>
<div>                 &lt;F2&gt; TYPE ANY.</div>
<div>  READ TABLE ITAB INTO WA_ITAB INDEX W_LINE.</div>
<div>  L_SEL_FIELD = W_FIELD.</div>
<div>  L_SEL_COL   = W_FIELD+10(1).</div>
<div>  REPLACE &#8216;PRINT&#8217; INTO L_SEL_FIELD WITH &#8216;ITAB&#8217;.</div>
<div>  CONDENSE L_SEL_FIELD.</div>
<div>  ASSIGN (L_SEL_FIELD) TO &lt;F1&gt;.</div>
<div><span style="color:#3366ff;">* value = 0 &gt;&gt; No marble</span></div>
<div>  IF &lt;F1&gt; = &#8217;0&#8242;.</div>
<div>    MESSAGE S398(00) WITH &#8216;No marble to select.!&#8217;.</div>
<div>    EXIT.</div>
<div>  ENDIF.</div>
<div><span style="color:#3366ff;">* Check right</span></div>
<div>  L_TMP_COL = L_SEL_COL + 2.</div>
<div>  IF L_TMP_COL &lt; 9.</div>
<div>    CONCATENATE &#8216;WA_ITAB-C&#8217; L_TMP_COL INTO L_TMP_FIELD.</div>
<div>    CONDENSE L_TMP_FIELD.</div>
<div>    ASSIGN (L_TMP_FIELD) TO &lt;F2&gt;.</div>
<div>    IF &lt;F2&gt; = &#8217;0&#8242;.</div>
<div>      L_OK = &#8216;X&#8217;.</div>
<div>    ENDIF.</div>
<div>  ENDIF.</div>
<div><span style="color:#3366ff;">* Check left</span></div>
<div>  IF L_OK IS INITIAL.</div>
<div>    L_TMP_COL = L_SEL_COL &#8211; 2.</div>
<div>    IF L_TMP_COL &gt; 0.</div>
<div>      CONCATENATE &#8216;WA_ITAB-C&#8217; L_TMP_COL INTO L_TMP_FIELD.</div>
<div>      CONDENSE L_TMP_FIELD.</div>
<div>      ASSIGN (L_TMP_FIELD) TO &lt;F2&gt;.</div>
<div>      IF &lt;F2&gt; = &#8217;0&#8242;.</div>
<div>        L_OK = &#8216;X&#8217;.</div>
<div>      ENDIF.</div>
<div>    ENDIF.</div>
<div>  ENDIF.</div>
<div><span style="color:#3366ff;">* check Above</span></div>
<div>  IF L_OK IS INITIAL.</div>
<div>    L_TMP_LINE = W_LINE &#8211; 2.</div>
<div>    IF L_TMP_LINE &gt; 0.</div>
<div>      READ TABLE ITAB INTO WA_ITAB INDEX L_TMP_LINE.</div>
<div>      IF &lt;F1&gt; = &#8217;0&#8242;.</div>
<div>        L_OK = &#8216;X&#8217;.</div>
<div>      ENDIF.</div>
<div>      READ TABLE ITAB INTO WA_ITAB INDEX W_LINE.</div>
<div>    ENDIF.</div>
<div>  ENDIF.</div>
<div><span style="color:#3366ff;">* Check underneath</span></div>
<div>  IF L_OK IS INITIAL.</div>
<div>    L_TMP_LINE = W_LINE + 2.</div>
<div>    IF L_TMP_LINE &lt; 9.</div>
<div>      READ TABLE ITAB INTO WA_ITAB INDEX L_TMP_LINE.</div>
<div>      IF &lt;F1&gt; = &#8217;0&#8242;.</div>
<div>        L_OK = &#8216;X&#8217;.</div>
<div>      ENDIF.</div>
<div>      READ TABLE ITAB INTO WA_ITAB INDEX W_LINE.</div>
<div>    ENDIF.</div>
<div>  ENDIF.</div>
<div><span style="color:#3366ff;">* Ok .. than ON</span></div>
<div>  IF L_OK = &#8216;X&#8217;.</div>
<div>    W_ON = &#8216;X&#8217;.</div>
<div>    &lt;F1&gt; = &#8217;2&#8242;.</div>
<div>    MODIFY ITAB FROM WA_ITAB INDEX W_LINE.</div>
<div>    W_SEL_LINE = W_LINE.</div>
<div>    W_SEL_COL  = L_SEL_COL .</div>
<div>  ELSE.</div>
<div>    MESSAGE S398(00) WITH &#8216;No marble to select.!&#8217; &#8216; &#8216; &#8216; &#8216; &#8216; &#8216;.</div>
<div>  ENDIF.</div>
<div>ENDFORM.                   <span style="color:#3366ff;"> &#8221; validate_input</span></div>
<div><span style="color:#3366ff;">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span></div>
<div><span style="color:#3366ff;">*&amp;      Form  deselect_marble</span></div>
<div><span style="color:#3366ff;">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span></div>
<div><span style="color:#3366ff;">*       Deselect the marble if the same marble is selected again</span></div>
<div><span style="color:#3366ff;">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span></div>
<div>FORM DESELECT_MARBLE .</div>
<div>  DATA: L_SEL_FIELD(20).</div>
<div>  FIELD-SYMBOLS: &lt;F1&gt; TYPE ANY.</div>
<div>  READ TABLE ITAB INTO WA_ITAB INDEX W_LINE.</div>
<div>  L_SEL_FIELD = W_FIELD.</div>
<div>  REPLACE &#8216;PRINT&#8217; INTO L_SEL_FIELD WITH &#8216;ITAB&#8217;.</div>
<div>  CONDENSE L_SEL_FIELD.</div>
<div>  ASSIGN (L_SEL_FIELD) TO &lt;F1&gt;.</div>
<div>  IF &lt;F1&gt; = &#8217;2&#8242;.</div>
<div>    &lt;F1&gt; = &#8217;1&#8242;.</div>
<div>    MODIFY ITAB FROM WA_ITAB INDEX W_LINE.</div>
<div>    MESSAGE S398(00) WITH &#8216;Marble was deselected..!!&#8217;.</div>
<div>    CLEAR: W_ON, W_SEL_LINE, W_SEL_COL.</div>
<div>  ENDIF.</div>
<div>ENDFORM.                    &#8221; deselect_marble</div>
<div><span style="color:#3366ff;">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span></div>
<div><span style="color:#3366ff;">*&amp;      Form  check_destination</span></div>
<div><span style="color:#3366ff;">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span></div>
<div><span style="color:#3366ff;">*       Check the destination cell, it should not be empty and distnce</span></div>
<div><span style="color:#3366ff;">*       between selected cell and destination cell must be 2</span></div>
<div><span style="color:#3366ff;">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span></div>
<div>FORM CHECK_DESTINATION .</div>
<div>  DATA: L_DEST_FIELD(20),</div>
<div>        L_DEST_COL(1),</div>
<div>        L_DEST_NOT_OK TYPE FLAG,</div>
<div>        L_TMP_LINE TYPE I,</div>
<div>        L_TMP_COL  TYPE C.</div>
<div>  DATA: L_ITAB_DEST LIKE ITAB.</div>
<div>  FIELD-SYMBOLS: &lt;F1&gt; TYPE ANY.</div>
<div>  READ TABLE ITAB INTO L_ITAB_DEST INDEX W_LINE.</div>
<div>  L_DEST_FIELD = W_FIELD.</div>
<div>  L_DEST_COL   = W_FIELD+10(1).</div>
<div>  REPLACE &#8216;WA_PRINT&#8217; INTO L_DEST_FIELD WITH &#8216;L_ITAB_DEST&#8217;.</div>
<div>  CONDENSE L_DEST_FIELD.</div>
<div>  ASSIGN (L_DEST_FIELD) TO &lt;F1&gt;.</div>
<div><span style="color:#3366ff;">* Destination should be empty</span></div>
<div>  IF &lt;F1&gt; &lt;&gt; &#8217;0&#8242;.</div>
<div>    L_DEST_NOT_OK = &#8216;X&#8217;.</div>
<div>  ENDIF.</div>
<div><span style="color:#3366ff;">* Calcualate the distance between selected marble and destination</span></div>
<div>  IF L_DEST_NOT_OK IS INITIAL.</div>
<div>    IF W_SEL_LINE &lt;&gt; W_LINE.</div>
<div>      L_TMP_LINE = ABS( W_SEL_LINE &#8211; W_LINE ).</div>
<div>      IF L_TMP_LINE &lt;&gt; &#8217;2&#8242;.</div>
<div>        L_DEST_NOT_OK = &#8216;X&#8217;.</div>
<div>      ENDIF.</div>
<div>    ENDIF.</div>
<div>  ENDIF.</div>
<div>  IF L_DEST_NOT_OK IS INITIAL.</div>
<div>    IF W_SEL_COL &lt;&gt; L_DEST_COL.</div>
<div>      L_TMP_COL = ABS( W_SEL_COL &#8211; L_DEST_COL ).</div>
<div>      IF L_TMP_COL &lt;&gt; &#8217;2&#8242;.</div>
<div>        L_DEST_NOT_OK = &#8216;X&#8217;.</div>
<div>      ENDIF.</div>
<div>    ENDIF.</div>
<div>  ENDIF.</div>
<div><span style="color:#3366ff;">* destination not ok</span></div>
<div>  IF L_DEST_NOT_OK = &#8216;X&#8217;.</div>
<div>    MESSAGE S398(00) WITH &#8216;Destination is not GOOD&#8217; &#8216; &#8216; &#8216; &#8216; &#8216; &#8216;.</div>
<div>  ELSE.</div>
<div>    W_DEST_OK = &#8216;X&#8217;.</div>
<div>    W_DEST_LINE = W_LINE.</div>
<div>    W_DEST_COL  = L_DEST_COL.</div>
<div>  ENDIF.</div>
<div>ENDFORM.                   <span style="color:#3366ff;"> &#8221; check_destination</span></div>
<div><span style="color:#3366ff;">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span></div>
<div><span style="color:#3366ff;">*&amp;      Form  rearrange_marbles</span></div>
<div><span style="color:#3366ff;">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span></div>
<div><span style="color:#3366ff;">*       Rearrange marbles</span></div>
<div><span style="color:#3366ff;">*     1 Remove the marble which is inbetween the selected &amp; destination</span></div>
<div><span style="color:#3366ff;">*     2 Remove the marble from the selected cell</span></div>
<div><span style="color:#3366ff;">*     3 Put marble on the destination cell</span></div>
<div><span style="color:#3366ff;">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span></div>
<div>FORM REARRANGE_MARBLES .</div>
<div>  DATA: L_FIELD(20),</div>
<div>        L_TMP_LINE TYPE I,</div>
<div>        L_TMP_COL  TYPE CHAR1,</div>
<div>        L_NO_MOVE  TYPE FLAG,</div>
<div>        L_ITAB LIKE ITAB.</div>
<div>*</div>
<div>  FIELD-SYMBOLS: &lt;F1&gt; TYPE ANY.</div>
<div><span style="color:#3366ff;">* Make the inbetween column as 0 if both lines are same</span></div>
<div>  IF W_SEL_LINE = W_DEST_LINE.</div>
<div>    IF W_SEL_COL &gt; W_DEST_COL.</div>
<div>      L_TMP_COL = W_DEST_COL + 1.</div>
<div>    ELSE.</div>
<div>      L_TMP_COL = W_SEL_COL + 1.</div>
<div>    ENDIF.</div>
<div>    READ TABLE ITAB INTO L_ITAB INDEX W_SEL_LINE.</div>
<div>    L_FIELD = W_FIELD.</div>
<div>    REPLACE &#8216;WA_PRINT&#8217; INTO L_FIELD WITH &#8216;L_ITAB&#8217;.</div>
<div>    CONDENSE L_FIELD.</div>
<div>    L_FIELD+8(1) = L_TMP_COL.</div>
<div>    ASSIGN (L_FIELD) TO &lt;F1&gt;.</div>
<div>    IF &lt;F1&gt; = 1.</div>
<div>      &lt;F1&gt; = &#8217;0&#8242;.</div>
<div>      W_GONE = W_GONE + 1.</div>
<div>      MODIFY ITAB FROM L_ITAB INDEX W_SEL_LINE.</div>
<div>    ELSE.</div>
<div>      L_NO_MOVE = &#8216;X&#8217;.</div>
<div>    ENDIF.</div>
<div>    CLEAR  L_ITAB.</div>
<div>  ENDIF.</div>
<div><span style="color:#3366ff;">* Make the inbetween line as 0 if both lines are same</span></div>
<div>  IF W_SEL_COL = W_DEST_COL.</div>
<div>    IF W_SEL_LINE &gt; W_DEST_LINE.</div>
<div>      L_TMP_LINE = W_DEST_LINE + 1.</div>
<div>    ELSE.</div>
<div>      L_TMP_LINE = W_SEL_LINE + 1.</div>
<div>    ENDIF.</div>
<div>    READ TABLE ITAB INTO L_ITAB INDEX L_TMP_LINE.</div>
<div>    L_FIELD = W_FIELD.</div>
<div>    REPLACE &#8216;WA_PRINT&#8217; INTO L_FIELD WITH &#8216;L_ITAB&#8217;.</div>
<div>    CONDENSE L_FIELD.</div>
<div>    L_FIELD+8(1) = W_SEL_COL.</div>
<div>    ASSIGN (L_FIELD) TO &lt;F1&gt;.</div>
<div>    IF &lt;F1&gt; = 1.</div>
<div>      &lt;F1&gt; = &#8217;0&#8242;.</div>
<div>      W_GONE = W_GONE + 1.</div>
<div>      MODIFY ITAB FROM L_ITAB INDEX L_TMP_LINE.</div>
<div>    ELSE.</div>
<div>      L_NO_MOVE = &#8216;X&#8217;.</div>
<div>    ENDIF.</div>
<div>    CLEAR  L_ITAB.</div>
<div>  ENDIF.</div>
<div>  IF L_NO_MOVE IS INITIAL.</div>
<div><span style="color:#3366ff;">*   Make Destination = 1</span></div>
<div>    READ TABLE ITAB INTO L_ITAB INDEX W_DEST_LINE.</div>
<div>    L_FIELD = W_FIELD.</div>
<div>    REPLACE &#8216;WA_PRINT&#8217; INTO L_FIELD WITH &#8216;L_ITAB&#8217;.</div>
<div>    CONDENSE L_FIELD.</div>
<div>    L_FIELD+8(1) = W_DEST_COL.</div>
<div>    ASSIGN (L_FIELD) TO &lt;F1&gt;.</div>
<div>    &lt;F1&gt; = &#8217;1&#8242;.</div>
<div>    MODIFY ITAB FROM L_ITAB INDEX W_DEST_LINE.</div>
<div>    CLEAR  L_ITAB.</div>
<div><span style="color:#3366ff;">*   Make Selected = 0.</span></div>
<div>    READ TABLE ITAB INTO L_ITAB INDEX W_SEL_LINE.</div>
<div>    L_FIELD = W_FIELD.</div>
<div>    REPLACE &#8216;WA_PRINT&#8217; INTO L_FIELD WITH &#8216;L_ITAB&#8217;.</div>
<div>    CONDENSE L_FIELD.</div>
<div>    L_FIELD+8(1) = W_SEL_COL.</div>
<div>    ASSIGN (L_FIELD) TO &lt;F1&gt;.</div>
<div>    &lt;F1&gt; = &#8217;0&#8242;.</div>
<div>    MODIFY ITAB FROM L_ITAB INDEX W_SEL_LINE.</div>
<div>    CLEAR  L_ITAB.</div>
<div>  ELSE.</div>
<div><span style="color:#3366ff;">*   Make Selected = 1 when no movement</span></div>
<div>    READ TABLE ITAB INTO L_ITAB INDEX W_SEL_LINE.</div>
<div>    L_FIELD = W_FIELD.</div>
<div>    REPLACE &#8216;WA_PRINT&#8217; INTO L_FIELD WITH &#8216;L_ITAB&#8217;.</div>
<div>    CONDENSE L_FIELD.</div>
<div>    L_FIELD+8(1) = W_SEL_COL.</div>
<div>    ASSIGN (L_FIELD) TO &lt;F1&gt;.</div>
<div>    &lt;F1&gt; = &#8217;1&#8242;.</div>
<div>    MODIFY ITAB FROM L_ITAB INDEX W_SEL_LINE.</div>
<div>    CLEAR  L_ITAB.</div>
<div>  ENDIF.</div>
<div>  W_REM = W_TOTAL &#8211; W_GONE.</div>
<div>  CLEAR: W_DEST_OK, W_DEST_LINE, W_DEST_COL,</div>
<div>         W_ON,      W_SEL_LINE,  W_SEL_COL.</div>
<div>*</div>
<div>ENDFORM.                    <span style="color:#3366ff;">&#8221; rearrange_marbles</span></div>
<div><span style="color:#3366ff;">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span></div>
<div><span style="color:#3366ff;">*&amp;      Form  check_game_over</span></div>
<div><span style="color:#3366ff;">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span></div>
<div><span style="color:#3366ff;">*       Check game over when the remaining marbles are half than</span></div>
<div><span style="color:#3366ff;">*         the original marbles. Check for all cells with the marbles and</span></div>
<div><span style="color:#3366ff;">*         check adjacent cells (right, left, above and underneath cells)</span></div>
<div><span style="color:#3366ff;">*         with the value. If the marble found in any adjacent cell than</span></div>
<div><span style="color:#3366ff;">*         GAME is NOT OVER</span></div>
<div><span style="color:#3366ff;">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span></div>
<div>FORM CHECK_GAME_OVER .</div>
<div>  STATICS: L_TOT_HALF TYPE I.</div>
<div>  DATA: L_ITAB     LIKE ITAB,</div>
<div>        L_ITAB_TMP LIKE ITAB.</div>
<div>  DATA: L_TMP_FIELD(20),</div>
<div>        L_SEL_COL(1),</div>
<div>        L_TMP_COL(2),</div>
<div>        L_OK       TYPE FLAG,</div>
<div>        L_LINE     TYPE I,</div>
<div>        L_TMP_LINE TYPE I.</div>
<div>  CLEAR: L_OK.</div>
<div>  FIELD-SYMBOLS: &lt;F1&gt; TYPE ANY,</div>
<div>                 &lt;F2&gt; TYPE ANY.</div>
<div>  CHECK W_ON IS INITIAL.</div>
<div>  L_TOT_HALF = ABS( W_TOTAL / 2 ).</div>
<div>  CHECK W_REM &lt; L_TOT_HALF.</div>
<div>  LOOP AT ITAB INTO L_ITAB.</div>
<div>    L_LINE = SY-TABIX.</div>
<div>    L_ITAB_TMP = L_ITAB.</div>
<div>    DO P_NUM TIMES.</div>
<div>      L_ITAB = L_ITAB_TMP.</div>
<div>      L_SEL_COL = SY-INDEX.</div>
<div>      CONV_I_C SY-INDEX L_NO_C.</div>
<div>      CLEAR L_NAME.</div>
<div>      CONCATENATE &#8216;L_ITAB-C&#8217; L_NO_C INTO L_NAME.</div>
<div>      ASSIGN (L_NAME) TO &lt;F1&gt;.</div>
<div>      IF &lt;F1&gt; IS INITIAL</div>
<div>      OR &lt;F1&gt; = &#8217;0&#8242;.</div>
<div>        CONTINUE.</div>
<div>      ENDIF.</div>
<div><span style="color:#3366ff;">*      IF &lt;F1&gt; = &#8217;1&#8242;.</span></div>
<div><span style="color:#3366ff;">*        l_ok = &#8216;X&#8217;.</span></div>
<div><span style="color:#3366ff;">*        exit.</span></div>
<div><span style="color:#3366ff;">*      ENDIF.</span></div>
<div><span style="color:#3366ff;">*     right neighbour</span></div>
<div>      L_TMP_COL = L_SEL_COL + 1.</div>
<div>      IF L_TMP_COL &lt; 9.</div>
<div>        CONCATENATE &#8216;L_ITAB-C&#8217; L_TMP_COL INTO L_TMP_FIELD.</div>
<div>        CONDENSE L_TMP_FIELD.</div>
<div>        ASSIGN (L_TMP_FIELD) TO &lt;F2&gt;.</div>
<div>        IF &lt;F2&gt; = &#8217;1&#8242;.</div>
<div>          L_TMP_COL = L_SEL_COL + 2.</div>
<div>          IF L_TMP_COL &lt; 9.</div>
<div>            CONCATENATE &#8216;L_ITAB-C&#8217; L_TMP_COL INTO L_TMP_FIELD.</div>
<div>            CONDENSE L_TMP_FIELD.</div>
<div>            ASSIGN (L_TMP_FIELD) TO &lt;F2&gt;.</div>
<div>            IF &lt;F2&gt; = &#8217;0&#8242;.</div>
<div>              L_OK = &#8216;X&#8217;.</div>
<div>              EXIT.</div>
<div>            ENDIF.</div>
<div>          ENDIF.</div>
<div>        ENDIF.</div>
<div>      ENDIF.</div>
<div><span style="color:#3366ff;">*     Check left</span></div>
<div>      L_TMP_COL = L_SEL_COL &#8211; 1.</div>
<div>      IF L_TMP_COL &gt; 0.</div>
<div>        CONCATENATE &#8216;L_ITAB-C&#8217; L_TMP_COL INTO L_TMP_FIELD.</div>
<div>        CONDENSE L_TMP_FIELD.</div>
<div>        ASSIGN (L_TMP_FIELD) TO &lt;F2&gt;.</div>
<div>        IF &lt;F2&gt; = &#8217;1&#8242;.</div>
<div>          L_TMP_COL = L_SEL_COL &#8211; 2.</div>
<div>          IF L_TMP_COL &gt; 0.</div>
<div>            CONCATENATE &#8216;L_ITAB-C&#8217; L_TMP_COL INTO L_TMP_FIELD.</div>
<div>            CONDENSE L_TMP_FIELD.</div>
<div>            ASSIGN (L_TMP_FIELD) TO &lt;F2&gt;.</div>
<div>            IF &lt;F2&gt; = &#8217;0&#8242;.</div>
<div>              L_OK = &#8216;X&#8217;.</div>
<div>              EXIT.</div>
<div>            ENDIF.</div>
<div>          ENDIF.</div>
<div>        ENDIF.</div>
<div>      ENDIF.</div>
<div>      CONCATENATE &#8216;L_ITAB-C&#8217; L_NO_C INTO L_TMP_FIELD.</div>
<div>      CONDENSE L_TMP_FIELD.</div>
<div>      ASSIGN (L_TMP_FIELD) TO &lt;F2&gt;.</div>
<div><span style="color:#3366ff;">*     check Above</span></div>
<div>      L_TMP_LINE = L_LINE &#8211; 1.</div>
<div>      IF L_TMP_LINE &gt; 0.</div>
<div>        CLEAR L_ITAB.</div>
<div>        READ TABLE ITAB INTO L_ITAB INDEX L_TMP_LINE.</div>
<div>        IF &lt;F2&gt; = &#8217;1&#8242;.</div>
<div>          L_TMP_LINE = L_LINE &#8211; 2.</div>
<div>          IF L_TMP_LINE &gt; 0.</div>
<div>            CLEAR L_ITAB.</div>
<div>            READ TABLE ITAB INTO L_ITAB INDEX L_TMP_LINE.</div>
<div>            IF &lt;F2&gt; = &#8217;0&#8242;.</div>
<div>              L_OK = &#8216;X&#8217;.</div>
<div>              EXIT.</div>
<div>            ENDIF.</div>
<div>          ENDIF.</div>
<div>        ENDIF.</div>
<div>      ENDIF.</div>
<div><span style="color:#3366ff;">*     Check underneath</span></div>
<div>      L_TMP_LINE = L_LINE + 1.</div>
<div>      IF L_TMP_LINE &lt; 9.</div>
<div>        CLEAR L_ITAB.</div>
<div>        READ TABLE ITAB INTO L_ITAB INDEX L_TMP_LINE.</div>
<div>        IF &lt;F2&gt; = &#8217;1&#8242;.</div>
<div>          L_TMP_LINE = L_LINE + 2.</div>
<div>          IF L_TMP_LINE &lt; 9.</div>
<div>            CLEAR L_ITAB.</div>
<div>            READ TABLE ITAB INTO L_ITAB INDEX L_TMP_LINE.</div>
<div>            IF &lt;F2&gt; = &#8217;0&#8242;.</div>
<div>              L_OK = &#8216;X&#8217;.</div>
<div>              EXIT.</div>
<div>            ENDIF.</div>
<div>          ENDIF.</div>
<div>        ENDIF.</div>
<div>      ENDIF.</div>
<div>    ENDDO.</div>
<div>    IF L_OK = &#8216;X&#8217;.</div>
<div>      EXIT.</div>
<div>    ENDIF.</div>
<div>  ENDLOOP.</div>
<div>  IF L_OK IS INITIAL.</div>
<div>    W_GAME_OVER = &#8216;X&#8217;.</div>
<div>    MESSAGE S398(00) WITH &#8216;Game Over. Socre:&#8217; W_REM.</div>
<div>    PERFORM EXPORT_HIGH_SCORE.</div>
<div><span style="color:#3366ff;">*    leave program.</span></div>
<div>  ENDIF.</div>
<div>ENDFORM.                   <span style="color:#3366ff;"> &#8221; check_game_over</span></div>
<div><span style="color:#3366ff;">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span></div>
<div><span style="color:#3366ff;">*&amp;      Form  export_high_score</span></div>
<div><span style="color:#3366ff;">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span></div>
<div><span style="color:#3366ff;">*       Export High Score to memory when the game is over</span></div>
<div><span style="color:#3366ff;">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span></div>
<div>FORM EXPORT_HIGH_SCORE .</div>
<div>  DATA: L_TIME TYPE I.</div>
<div>  CHECK W_EXPORTED IS INITIAL.</div>
<div>  GET TIME FIELD W_END_TIME.</div>
<div>  L_TIME = W_END_TIME &#8211; W_ST_TIME.</div>
<div>  W_SCORE-UNAME = SY-UNAME.</div>
<div>  W_SCORE-SCORE = W_REM.</div>
<div>  W_SCORE-TIME  = L_TIME.</div>
<div>  APPEND W_SCORE TO IT_SCORE.</div>
<div>  SORT IT_SCORE BY SCORE TIME.</div>
<div>  LOOP AT IT_SCORE INTO W_SCORE.</div>
<div>    W_SCORE-SRL = SY-TABIX.</div>
<div>    MODIFY IT_SCORE FROM W_SCORE.</div>
<div>    CLEAR  W_SCORE.</div>
<div>  ENDLOOP.</div>
<div>  DELETE IT_SCORE WHERE SRL &gt; 5.</div>
<div>  EXPORT IT_SCORE = IT_SCORE TO DATABASE INDX(ZZ)</div>
<div>         ID &#8216;ZGAME_MAR&#8217;.</div>
<div>  W_EXPORTED = &#8216;X&#8217;.</div>
<div>ENDFORM.                    <span style="color:#3366ff;">&#8221; export_high_score</span></div>
<div><span style="color:#3366ff;">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span></div>
<div><span style="color:#3366ff;">*&amp;      Form  write_5_high_score</span></div>
<div><span style="color:#3366ff;">*&amp;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;*</span></div>
<div><span style="color:#3366ff;">*       Write 5 high scores</span></div>
<div><span style="color:#3366ff;">*&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;-*</span></div>
<div>FORM WRITE_5_HIGH_SCORE .</div>
<div>  IMPORT IT_SCORE = IT_SCORE FROM DATABASE INDX(ZZ)</div>
<div>         ID &#8216;ZGAME_MAR&#8217;.</div>
<div>  WRITE: /(12) &#8216;User&#8217;,</div>
<div>          (10) &#8216;Score&#8217; RIGHT-JUSTIFIED ,</div>
<div>          (10) &#8216;Time&#8217;  RIGHT-JUSTIFIED.</div>
<div>  WRITE: /(34) SY-ULINE.</div>
<div>  LOOP AT IT_SCORE INTO W_SCORE.</div>
<div>    WRITE: /(12) W_SCORE-UNAME,</div>
<div>            (10) W_SCORE-SCORE,</div>
<div>            (10) W_SCORE-TIME.</div>
<div>  ENDLOOP.</div>
<div>ENDFORM.                  <span style="color:#3366ff;">  &#8221; write_5_high_score</span></div>
<div><span style="color:#000000;">*source= Naimesh Patel</span></div>


<p>You might also be interested in these posts:<ol><li><a href='http://www.abap-tutorials.com/2009/08/24/tic-tac-toe-game-in-sap/' rel='bookmark' title='Tic-Tac-Toe Game in SAP'>Tic-Tac-Toe Game in SAP</a></li>
<li><a href='http://www.abap-tutorials.com/2009/08/06/search-for-smartforms-in-your-language/' rel='bookmark' title='ABAP Program to Search For SMARTFORMS in your Language'>ABAP Program to Search For SMARTFORMS in your Language</a></li>
<li><a href='http://www.abap-tutorials.com/2009/09/17/abap-program-to-add-colors-in-alv-grid/' rel='bookmark' title='ABAP Program to add Colors in ALV Grid'>ABAP Program to add Colors in ALV Grid</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://www.abap-tutorials.com/2009/08/01/marble-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

