当前位置:主页 > 云存储 > 云计算基础 >

域名解析_微软公有云_新用户

不久前,我在AppStore中发现了一个非常简单但非常上瘾的益智游戏:Numberama2(iOS版)。有一次我知道如何在ABAP中编程。遗憾的是,这个想法不够好,所以我不得不花更多的时间在游戏上,而不是我想要的……

游戏使用了9列宽度的无限的游戏场地。经典模式的起始顺序是:

123456789

111213141

516171819

您必须找到

a)相等(1和1,2和2,以此类推)

b)和是10(1+9,2+8,依此类推)

成对必须是

a)在一行

b)在一列

c)在一行的末尾和下一行的开头

在随机模式下,你将得到一组随机的27个数字。

每消除一对,你的开始分数将减少1000分。

每消除一行,你的分数将增加10分。

目标是消除所有数字。

如果没有更多的对存在,你将不得不点击下一步按钮,所有现有的数字将被放在游戏场的末尾。

首先,我想命名游戏NUMBERABAP的风格,原来的游戏NumberRama,服务器云平台,但在编写程序时,我认为TENTACTICS听起来更好

编程的第一个想法游戏是使用一个带有字段

的内部表,深度学习数据集,使用onw主键"column–row"和次键"row–column"。空字段不在此表中。

使用此配置很容易检查对是否正确。匹配的对必须是主键或副键中相邻的表行。

这个想法可能是好的,但不适合编程游戏,因为我也需要游戏场地,世界人工智能,必须同时维护:游戏场地和数字表。

我使用"相邻对检查"检查所有可能的解决方案,但每一个检查我在PlaingField中运行,检查"指向第二个点击号码的路径"是否自由,以及第一个和第二个点击号码是否符合规则。

代码没有可靠地找到所有配对,但给出了巴黎可能在哪里的提示。

游戏场是一个简单的ALV网格,有一点增强:方法集\u RESIZE \u COLS(0)将是在新方法中调用SET\u NO\u RESIZE来防止用户更改列大小。

我决定用按钮简单的点击一个来选择一个数字。我试图使用热点,nba大数据,但热点是下划线,这使它更难识别数字。这些按钮还可以更好地概述现有的数字。它们以更好的方式显示所用的数字。

专注于明显的成对。如果有三个数字,试着消除周围的数字,这样你就可以摆脱所有的三个数字。

如果有一个明显的对检查,如果可能有更好的组合。

点击"检查"按钮显示解决方案和已知对的数量。

-没有结束的决定

-显示的解决方案并不总是正确的。我认为每个号码都应该检查成对的。我试图找到的解决方案首先是水平的,然后是垂直的。

-如果没有更多的移动可能,您将不会得到通知(点击"检查按钮"代替)

-您将得到提示,可能的配对是

复制TENTACTICS的代码到SE38编辑器并激活。运行程序,选择"经典"或"随机"游戏。按ENTER。好好享受!

REPORT zz\u tentactics NO STANDARD PAGE HEADING.

CLASS lcx\u hit DEFINITION继承自cx\u static\u check.

ENDCLASS.

CLASS lcx\u NO\u hit DEFINITION继承自cx\u static\u check.

ENDCLASS.

CLASS lcl\u my\u grid DEFINITION继承自cl\u gui\u alv\u grid.

PUBLIC SECTION.

METHODS set\u NO\u resize.

ENDCLASS.

CLASSlcl\U my\U grid IMPLEMENTATION.

METHOD set\U no\U resize.

CALL METHOD me->set\U resize\U cols

EXPORTING

enable=0

EXCEPTIONS

error=1

OTHERS=2.

ENDMETHOD.

ENDCLASS.

CLASS lcl\U main DEFINITION.

PUBLIC SECTION.

TYPE:ty\U number TYPE c LENGTH 4,

ty\u字段开头,

s01 TYPE ty\u number,

s02 TYPE ty\u number,

s03类型TYU编号,

s04类型TYU编号,

s05类型TYU编号,

s06类型TYU编号,

s07类型TYU编号,

s08类型TYU编号,

s09类型TYU编号,

样式lvc类型TYU styl,淘客助手下载,

TYU字段结束,

TYU字段所有类型标准表,

TYU编号开始,

num类型n长度1,

col类型i,

行类型i,

结束tyu编号,

tyu undo开始,

字段类型默认键tyu字段标准表,

得分类型i,

结束tyu undo

方法开始导入type char01 sequence type any。

方法构造函数。

受保护部分。

DATA mt\u field type tyu field标准表。

DATA mt\u undo type tyu undo标准表。

DATA mv\u type type c LENGTH 1。

DATA mv\u sequence type n LENGTH 80。

DATA mv\u score typei、

数据mv\u行类型i.

数据mv\u列类型i.

数据c\u行最大类型i值9.

数据mv\u上次单击的行类型i.

数据mv\u上次单击的列类型i.

数据mv\u第一次单击类型布尔值。

数据mv\u第二次单击类型布尔值。

数据mr\u网格类型REF TO lcl\u my\u网格。

数据mr\u docker\u游戏类型REF TOcl\u gui\u docking\u container.

DATA mr\u docker\u text TYPE REF TO cl\u gui\u docking\u container.

DATA mr\u text TYPE REF TO cl\u gui\u text edit.

METHODS display.

METHODS init.

METHODS refresh.

METHODS delete\u number IMPORTING row1 TYPE i

col1 TYPE i

row2 TYPE i

col2 TYPE i.

METHODS delete\u number IMPORTING row TYPE i

col1 TYPE i.

METHODS选中导入行1类型i

列1类型i

行2类型i

列2类型i

返回值(结果)类型布尔值。

方法选中右

导入行1类型i

列1类型i

行2类型i

列2类型i

提升lcx\U命中

lcx\U不命中。

方法选中下

导入行1类型i

col1类型i

row2类型i

col2类型i

提升lcx\U命中

lcx\U不命中

方法获取\U号

导入行类型i

col类型i

字段类型ty\U字段所有可选

返回值(数字)类型ty\U号

方法检查\U命中

导入num1类型ty\U号

num2类型tyu number

提升lcx\u hit

lcx\u no\u hit.

方法check\u solutions IMPORTING show TYPE boolean.

方法add\u number IMPORTING number TYPE clike.

方法add\u hotspot CHANGING field TYPE any.

方法click IMPORTING i\u row TYPE any

i\u fieldname TYPE clike.

方法get\u random\u number RETURNING VALUE(number)TYPEnumc1.

方法添加结束按钮。

方法添加数字导入行类型i列类型i。

方法收缩行。

方法添加撤消。

方法撤消。

*==按钮点击事件

方法按钮点击事件按钮点击lcl我的网格

导入列id

行编号

*==热点点击事件

方法热点点击事件热点lcl\U my\u grid

导入e\u row\u id

e\u column\u id

es\u row\u no.

*==用户命令

方法句柄用户命令

事件用户命令

cl\u gui\u alv\u grid

导入e\u ucomm sender.

*==工具栏事件

方法句柄工具栏

cl\u gui\u alv\u grid的事件工具栏

导入e\u object e\u interactive sender.

*==构建工具栏

方法构建工具栏

导入对象类型REF到cl\u alv\u事件工具栏集

ENDCLASS.

CLASS lcl\u主实现

方法构造函数

ENDMETHOD.

方法开始

mv\u TYPE=TYPE.

mv\u sequence=sequence.

左移mv\u sequence删除前导"0"。

mv\u col=1.

mv\u row=1.

init().

显示().

ENDMETHOD.

方法显示。

如果mr\u网格是初始的。

创建对象mr\u docker\u游戏

导出

side=cl\u gui\u docking\u container=>dock\u at\u bottom

ratio=80。

创建对象mr\u docker\u text

导出

side=cl\u gui\u docking\u container=>dock\u at\u right

扩展=2000。"完全隐藏选择屏幕

创建对象mr\u文本

导出

parent=mr\u docker\u文本。

mr\u文本->设置状态栏\u模式(0)。

mr\u文本->设置工具栏\u模式(0)。

mr\u文本->设置只读\u模式(1)。

创建对象mr\u网格

导出

i\u parent=mr\u docker\u游戏。

数据ls\u布局类型lvc\u布局。

数据lt\u fieldcatalog TYPE lvc\u t\fcat.

字段符号与lt\u fieldcatalog的行类似。

执行9次。

将初始行附加到lt\u fieldcatalog赋值

–fieldname=| S{sy index WIDTH=2 ALIGN=RIGHT PAD='0'}|。

–datatype='NUMC'。

–outputlen='3.

–just='C.

–f4available=abap\u false.

ENDDO.

ls\u layout–grid\u title='tenactics.

ls\u layout–smalltitle=abap\u true.

ls\u layout–no\u rowmove=abap\u true.

ls\u layout–no\u headers=abap\u true.

ls\u layout–stylefname='STYLE.

ls\u layout–no\u f4=abap\u true.

数据ls\u exclude TYPE ui\u func.

DATA lt\u exclude TYPE ui\u functions.

ls\u exclude=cl\u gui\u alv\u grid=>mc\u fc\u exclude all.

APPEND ls\u exclude TO lt\u exclude.

mr\u grid->set\u table\u for \u first\u display(

EXPORTING

is\u layout=ls\u layout

it\u excluding=lt\u exclude

CHANGING

it\u outtab=mt\u field

it\u fieldcatalog=lt\u fieldcatalog

EXCEPTIONS

OTHERS=4.

mr\u grid->set\u no\u resize().

set HANDLER button\u点击mr\u grid.

set HANDLER热点点击mr网格。

为mr网格设置处理程序句柄工具栏。

为mr网格设置处理程序句柄用户命令。

mr网格->设置工具栏交互()。

ENDIF.

ENDMETHOD.

METHOD删除编号。

删除编号(row=row1 col=col1)。

删除编号(row=row2 col=col2)。

从中减去5mv|score.

refresh().

ENDMETHOD.

METHOD delete|number.

DATA fieldname TYPE string.

fieldname=| S{col WIDTH=2 ALIGN=RIGHT PAD='0'}|。

READ TABLE mt|u field ASSIGNING field–SYMBOL()INDEX row.

ASSIGN COMPONENT fieldname OF STRUCTURETO field–SYMBOL().

IF sy–subrc=0.

CLEAR

ENDIF.

DATA ls\u style TYPE lvc\u s\u styl.

FIELD-SYMBOLSTYPE lvc\u t\u styl.

指定结构的组件"样式"

猜你喜欢

微信公众号