Skip to content

Commit

Permalink
Merge pull request Comamoca#25 from jiro4989/feature/java
Browse files Browse the repository at this point in the history
Add Java version
  • Loading branch information
Comamoca authored Aug 6, 2022
2 parents a5173ae + 9c300b1 commit a97ef85
Show file tree
Hide file tree
Showing 4 changed files with 71 additions and 0 deletions.
50 changes: 50 additions & 0 deletions Java/Ddsk.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;

public class Ddsk {
public static void main(String... args) {
// ドドスコ要素のセットアップ
List<String> ddskItems = new ArrayList<>();
ddskItems.add("ドド");
ddskItems.add("スコ");

List<String> ddskHistory = new ArrayList<>();

// ドドスコスコスコ * 3 で終了しない限り無限に処理し続ける
while (!endsWith3Ddsk(ddskHistory)) {
// ドド か スコ のどちらかを選択するのを4回繰り返す
StringBuilder ddskStringBuilder = new StringBuilder();
for (int i=0; i<4; i++) {
Collections.shuffle(ddskItems);
String ddskItem = ddskItems.get(0);
ddskStringBuilder.append(ddskItem);
}

String ddsk = ddskStringBuilder.toString();
System.out.println(ddsk);

ddskHistory.add(ddsk);
}

System.out.println("ラブ注入❤");
}

/**
* リストの末尾3つを取り出して、それらがすべて "ドドスコスコスコ" であった場合に true を返す。
*
* @param items リスト要素
* @return リストの末尾要素3つがすべて "ドドスコスコスコ" であるか否か
*/
private static boolean endsWith3Ddsk(List<String> items) {
int itemSize = items.size();
if (itemSize < 3) {
return false;
}

List<String> tailItems = items.subList(itemSize - 3, itemSize);
List<String> filteredItems = tailItems.stream().filter(i -> "ドドスコスコスコ".equals(i)).collect(Collectors.toList());
return filteredItems.size() == 3;
}
}
8 changes: 8 additions & 0 deletions Java/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM openjdk:20-jdk

WORKDIR /work

COPY ./Ddsk.java .
RUN javac Ddsk.java

ENTRYPOINT ["java", "Ddsk"]
12 changes: 12 additions & 0 deletions Java/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# DDSK-Java

## 実行方法

```bash
docker build -t ddsk:java .
docker run --rm -t ddsk:java
```

## License

MIT
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
- [D](./D) by [@PenguinCabinet](https://github.com/PenguinCabinet)
- [Dart](./Dart) by @[Fus1onDev](https://github.com/Fus1onDev)
- [Go](./Go) by @[gamma-410](https://github.com/gamma-410)
- [Java](./Java) by @[jiro4989](https://github.com/jiro4989)
- [Nadesiko3](./Nadesiko3) by @[arrow2nd](https://github.com/arrow2nd)
- [Nim](./Nim) by @[Comamoca](https://github.com/Comamoca)
- [Python](./Python) by @[Chatyusha](https://github.com/Chatyusha)
Expand Down

0 comments on commit a97ef85

Please sign in to comment.