2

在序言中,我必须这样做:

    ************************
    *                      *
    *      ##########      *
    *      # button #      *
    *      ##########      *
    *                      *
    ************************

用户给出窗口的宽度和高度(用*创建),以及按钮的坐标、宽度、高度和文本(用#创建)。这个“窗口”是在 prolog 控制台中编写的。我在编写窗口本身时没有问题,但我不知道如何处理其中的某些内容。任何人都可以帮助我,我的意思不是为我写它,但即使是小的指南也会有所帮助。

4

2 回答 2

1

在 DCG 的帮助下将其编写为干净的语法。

这是一个开始。更多细节,在这里

:- use_module(library(double_quotes)).
:- set_prolog_flag(double_quotes,chars).

newline --> "\n".

pre --> "# ".

post --> " #".

button -->
   pre,
   "button",
   post.

现在您可以在顶层查询它:

?- phrase(button, Xs).
Xs = "# button #".

你可以直接打印出来:

?- phrase(button, Xs), atom_chars(A, Xs), write(A).
于 2013-01-15T18:20:51.693 回答
0

查看 format/2,它的工作方式类似于 C++ 中的 printf

于 2013-01-16T01:11:07.293 回答