摸鱼时,我用几百张字符画做了个动画......

简介: 事情是这样的… …学校马上就要开展第20届程序设计大赛了,半年没有练习算法的我,此刻内心可谓战战兢兢。简单复习了些Java数据结构与算法的知识后,就开始了牛客网的刷题之路,这不,遇到个熟悉的N皇后问题:

事情是这样的… …


学校马上就要开展第20届程序设计大赛了,半年没有练习算法的我,此刻内心可谓战战兢兢。简单复习了些Java数据结构与算法的知识后,就开始了牛客网的刷题之路,这不,遇到个熟悉的N皇后问题:


记得之前遇到这个问题,我是使用数组对是否在同一斜线有皇后进行标记的,当时的思路是,将棋盘格子的行数和列数序号相减或者相加,并+一个常数,使得到的结果均>0,因此,所得结果的序号就可以利用数组索引(从0开始)唯一标识一个对角线,图示如下:


类似这样,之前已经写过解决方法,就不再赘述了,附上链接:【递归与回溯算法】汉诺塔与八皇后问题详解


这次遇到N皇后的问题,还是用了个回溯算法,就解决了,牛客上也成功通过了所有的样例:


这时,我就在想,既然10以内的皇后可以很快计算出结果,那15个呢?

说干就干,qwq可是控制台停不下来啦!!!

2e09d09f64de49b098f78d7128a77ac8.gif


这个场景,怎么有那么一丝丝似曾相识?


对啊!何同学曾经就用一万行的备忘录制作成了一段动画,向何同学致敬!

【何同学】我用一万行备忘录做了个动画…

de693c861f6a48a29b3cdff007a1379e.gif


一个奇怪的想法产生了… … 虽然我没有那么多精力,将动画的每一帧都打成字符的形式,但是 我可以利用软件和Java的IO流实现类似的效果吖! 果然,懒才是社会的第一生产力!(手动狗头保命)



正片开始!


Step 1. 首先,你需要准备一段视频!(当然,如果你有精力手动打字符的话,也是阔以滴),但是,CV工程师从不妥协~


Step 2. 将视频的每一帧图像保存(也可以不是每一帧,帧数越大最后效果越流畅)



Step 3. 将图片批量使用Ascgen 软件转换成字符画,如图所示:



Step 4. 查看生成的字符画,并规律命名(方便Java程序读取文件)


Step 5. 检查字符画内容



Step 6. 编写简单的JavaIO流程序,循环读取字符画文件,打印到控制台。注意调用sleep方法,适当休眠线程。String中的文件路径记得改成自己存储的字符画文件路径!

import java.io.FileInputStream;
import java.io.IOException;
public class IKun{
    public static void main(String[] args) throws IOException{
        String s1 = "C:\\Users\\26510\\Desktop\\cai\\ASCII-cai (";
        String s3 = ").txt";
        FileInputStream fis = new FileInputStream(s1 + 1 + s3);;
        for(int i = 1 ; i < 590; i++){
            try {
                Thread.sleep(80);
                fis = new FileInputStream(s1 + i + s3);
                int data;
                while((data = fis.read()) != -1){
                    System.out.print((char)data);
                }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }finally {
                fis.close();
            }
        }
    }
}

Step 7. 适当设置控制台字体的行间距和字号大小等参数,大功告成。

相关文章
|
6月前
|
Java 程序员 图形学
程序员教你用代码制作飞翔的小鸟--Java小游戏,正好拿去和给女神一起玩
《飞扬的小鸟》Java实现摘要:使用IntelliJ IDEA和JDK 16开发,包含小鸟类`Bird`,处理小鸟的位置、速度和碰撞检测。代码示例展示小鸟图像的加载、绘制与旋转。同时有`Music`类用于循环播放背景音乐。游戏运行时检查小鸟是否撞到地面、柱子或星星,并实现翅膀煽动效果。简单易懂,可直接复制使用。
135 0
|
4月前
|
前端开发
React官网 - 井字棋 - 游戏改进参考答案(含汉化和完整范例代码)
React官网 - 井字棋 - 游戏改进参考答案(含汉化和完整范例代码)
47 1
|
存储 编译器 C语言
还在为每次打开程序的输入烦恼吗,这篇文章让你不在迷茫
在之前我们编写的程序中,我们总要录入一些数据给予程序用于计算,但是当我们退出程序后录入的数据会销毁,因为此时数据都是存放在内存中。等到下次再运行程序时,数据又得从新录入,这样就非常的难受。
69 0
还在为每次打开程序的输入烦恼吗,这篇文章让你不在迷茫
|
6月前
win32编程 -- 泡泡跳动
win32编程 -- 泡泡跳动
33 0
|
存储 Java
无聊小知识.04 以下代码会输出什么?
今天同事给我看了一段代码,然后这段简单的代码,我却陷入了沉思。
无聊小知识.04 以下代码会输出什么?
|
小程序 数据安全/隐私保护 Python
Python print 函数 \r 转义字符的玩法及解析——转圈效果、动态表情、小数点加载、进度条
Python print 函数 \r 转义字符的玩法及解析——转圈效果、动态表情、小数点加载、进度条
476 0
|
Python
自制操作系统日记(7):字符串显示
上篇中我们在屏幕上画出了界面的大致轮廓,系统有了点模样,本篇继续跟着书籍,让程序中的字符串显示在屏幕上
|
编译器
为何代码没错,却出不来结果,你可能...
为何代码没错,却出不来结果,你可能...
133 0
为何代码没错,却出不来结果,你可能...
|
C# 图形学
边学边做的第一个Unity小游戏
学Unity开发,肯定先要了解小Unity这个开发工具长什么样。 第一次看到Unity界面的时候,我第一反应是,我靠,这不是犀牛么。学工业设计的人应该接触过犀牛这款3D建模软件,主界面也是一个3D透视界面。
1536 0