Я участвую в творческом конкурсе «Праздник середины осени».Творческий конкурс «Праздник середины осени»
идеи
- вывести луну
- чистый экран
- Измените цвет, чтобы вывести луну
- чистый экран
- Измените цвет, чтобы вывести луну
- Добейтесь желаемого эффекта
трудность
Как java очищает консоль? ? ? ?
код
1. Очистить консоль
-
идеи
- в С++
window:system("cls");mac/linux:system("clear");можно очистить напрямую - Java может вызывать C++/C dll через JNI
- объявить уроженцем
- Скомпилируйте класс в xx.h через javah
- написать проект на с++
- генерировать dll
- Скопируйте dll в свой собственный каталог jdk\jre\lib
- вызов java-кода
- в С++
-
объявить уроженцем
public class Cls { /** * 声明本地方法 */ public native void clear(); static { //加载动态链接库DLL //必须保证加载的 xxxx.dll 或者 xxx.dylib 在你jdk\jre\lib下目录 System.loadLibrary("cls"); } } -
Скомпилируйте класс в xx.h через javah
-
написать проект на с++
-
генерировать dll
ctrl/command + F9
-
Скопируйте dll в свой собственный каталог jdk\jre\lib
-
Java-вызов
-
Эффект
2. Рисование Луны
public class zhongqiu {
public static void main(String[] args) throws Exception {
for (int i = 31; i <= 36; i++) {
//清空控制台
new Cls().clear();
//输出月亮
yueLiang(i);
//慢一点,不然会闪
Thread.sleep(300);
//循环换颜色
if (i == 36) {
i = 31;
}
}
}
//输出月亮
public static void yueLiang(int c) {
int r = 15;
double R = 2 * r;
for (int i = 0; i <= R; i += 2) {
double y = Math.round(Math.sqrt(r * r - Math.pow(r - i, 2)));
double x = r - y;
int b = i == 0 || R - i == 0 ? 4 : 0;
for (int j = 0; j < x + 2 * y + b; j++) {
System.out.print(" ");
}
int yl = 6;
if (i == 0 || R - i == 0) {
yl = 2;
} else if (i == 1 || R - i == 1) {
yl = 4;
} else if (i == 2 || R - i == 2) {
yl = 5;
}
for (int j = 0; j < yl; j++) {
System.out.print("\033[" + c + "m*\033[m");
}
System.out.println("");
}
}
}
Эффект
Примечание. Его нельзя запустить в идее, вам нужно перейти в терминал, чтобы запустить его, чтобы он был эффективным.