小编mmg*_*o27的帖子

使用确定的约束使3个数字连续

这是我的SWI-Prolog计划的概述:

:- use_module(library(clpfd)).

consec1(L) :-
   L=[L1,L2,L3,L4,L5,L6,L7,L8,L9],
   L ins 1..9,
   ...,
   abs(L5-L4)#=1,
   all_different(L),
   labeling([],L)
Run Code Online (Sandbox Code Playgroud)

abs(L5-L4)#=1让L5和L4彼此相邻.如果我想让三个数字彼此相邻,例如L3,L4并且L5,我怎么能使用具体约束来做到这一点?

例如L3=4,L5=5,L4=6或L4=7,L5=8,L3=9

constraints prolog clpfd

5
推荐指数
1
解决办法
99
查看次数

如何使用Java Scanner读取命题逻辑符号作为输入?

 Scanner in = new Scanner(System.in,"UTF-8");
 System.out.println(in.next());
Run Code Online (Sandbox Code Playgroud)

如果我粘贴?,我收到?控制台的输出.有人可以解释我能做些什么来正确读取这样的逻辑符号?我正在使用NetBeans 8.0.1.

谢谢.

java input java.util.scanner

4
推荐指数
1
解决办法
188
查看次数

Java:方法的重复

这感觉就像这样一个基本问题,但这对我来说都是新的:

我有一个Person和Room类,它们都有Item对象列表.

public class Person{
  private ArrayList<Item> items;

  public Person() {
    items = new ArrayList<>();
  }

  public void addItem(){
  ...
  }

  public void removeItem(){
  ...
  }

}    

public class Room {

  private ArrayList<Item> items;

  public Room () {
    items = new ArrayList<>();
  }

  public void addItem(){
  ...
  }

  public void removeItem(){
  ...
  }

}
Run Code Online (Sandbox Code Playgroud)

项目方法,例如addItem()在Room类和Person类中都是重复的,这不是很好.我想要制作一个单独的库存类,其中包含项目和项目方法的列表,然后每个房间和人员都有一个库存.

但是如果我使用私人库存字段,那么我将无法从人员或房间调用Item方法.

什么是停止复制的最佳方法?提前致谢!

java oop class

2
推荐指数
1
解决办法
81
查看次数

游戏的OO设计:在房间之间移动玩家

我对OO设计很陌生,我在设计游戏时遇到了一些问题:

游戏中有一系列房间.每个房间都有一系列玩家和库存.每个库存都有一个项目集合.

所以目前,会议室控制着玩家.但是通过这种设计,我不确定是否可以在房间之间移动播放器,这就是我想做的事情.

然后我想Room currentRoom在Player课程中有一个,但我觉得我也有这个问题.此外,玩家没有房间,所以这似乎不是很好.

关于如何设计我的游戏的任何提示?谢谢!

java oop

2
推荐指数
1
解决办法
617
查看次数

为难题求解器序言程序生成矩阵

我写了一个序言程序来解决和显示数独之类的难题的解决方案。首先,如果网格为例如4x4,我会使用类似的方法:

main:-
     Matrix = [[_,_,_,_],[_,_,_,_],[_,_,_,_],[_,_,_,_]],
     solve_puzzle(Matrix),
     display_matrix(Matrix).
Run Code Online (Sandbox Code Playgroud)

但是我希望能够设置矩阵的大小,所以我写了这样的代码:

generate_list(N, [ ]) :-
    N =< 0, !.
generate_list(N, [_ | T]) :-
    N > 0,
    N2 is N - 1,
    generate_list(N2, T).

generate_matrix(_, N, []) :-
    N =< 0, !.
generate_matrix(M, N, [R|T]) :-
    generate_list(M,R),
    N2 is N - 1,
    generate_matrix(M, N2, T).
Run Code Online (Sandbox Code Playgroud)

然后我可以做:

main:-
    Rows = 4, Columns = 4,
    generate_matrix(Columns,Rows,Matrix),
    solve_puzzle(Matrix),
    display_matrix(Matrix).
Run Code Online (Sandbox Code Playgroud)

但这似乎减慢了我的程序。有没有更好的方法来生成N x M矩阵?

matrix prolog

2
推荐指数
1
解决办法
764
查看次数

在替换JTextField中的文本选择后更正插入符号位置

我想要下面的方法来替换a中的文本选择,JTextField并用一些输入替换它String.我的问题是,如果我选择了多个单个字符JTextField,则插入位置会向前跳过.

如何确保插入位置保持在正确的位置?

private void addStringAtCaretPos(String c) {
        final int caretPosition = inputTextField.getCaretPosition();
        inputTextField.replaceSelection(c);

        inputTextField.requestFocus();
        SwingUtilities.invokeLater(new Runnable() {
            @Override
            public void run() {
                inputTextField.setCaretPosition(caretPosition + 1);
            }
        });

    }
Run Code Online (Sandbox Code Playgroud)

java swing caret jtextfield

1
推荐指数
1
解决办法
176
查看次数

Java中a + = b和a = a + b之间的差异

我被告知a + = b之间存在差异; 和a = a + b; 这可能导致其中只有一个是合法的,具体取决于类型的变化.

有没有人有这样的例子?

java types operators

0
推荐指数
1
解决办法
4272
查看次数

从内部表中查找,删除和提取重复项

我有一个内部表,其中有200万行是从文件中上传的。我想删除所有重复的行,并提取重复的行号并将其添加到另一个表中。用ABAP 7.40做到这一点的最佳/最有效方法是什么?经典ABAP也可以。

所以这是我原始表的一个例子,我想通过比较列A和列B查找重复项

A  | B  | C
-----------
a1 | b1 | c1
a1 | b2 | c1
a2 | b1 | C2
a1 | b1 | c2
a2 | b2 | c2
Run Code Online (Sandbox Code Playgroud)

第1和第4行是重复的,因此我想将两者都删除以

A  | B  | C
-----------
a1 | b2 | c1
a2 | b1 | C2
a2 | b2 | c2
Run Code Online (Sandbox Code Playgroud)

并且还有另一个存储重复项的表:

Row number  | Error 
-------------------
1           | Duplicate
4           | Duplicate      
Run Code Online (Sandbox Code Playgroud)

我在该网站上看到过类似的请求,但是它们的工作方式与我需要的有所不同。谢谢。

sap abap

0
推荐指数
1
解决办法
146
查看次数