『C # 开发』技能 Get√ ——制作CMD界面的简单GIF图片

    今天看到C#课本上个列子把星号(*)有规则打印在控制台中间位置

    程序不难,利用的是光标定位函数Console.SetCursorPosition(x, y)做到的

    心想是不是弄出一个动态的图案比较好玩啊,说Gan就Gan~

    可是问题来了:

    以我毫无艺术细胞且又愚笨无比的大脑,实在想不出什么优美的图案

    即使想出来我也未必做的出啊 0.0

    最终,还是觉得做出来一个弓箭射出的动态图比较Easy

    看到的小伙伴们且喷且珍惜 ...

0x 01 作品展示

    

0x 02 设计图案素材

    我大火影各种炫酷,基情的动画不也是从动漫图一张张拼起来的么

    现在先在TXT上把图案先点出来(好费劲我会乱说.......)

    Pic 1,2,3,4

    

    

    素材就用上面四张就 OK了,在C#中让他们延时(sleep)打印出来

    最后利用循环定位函数把箭(?)射出来

0x 03 代码展示

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Text;
 5 using System.Threading;
 6 /*=============================================================================
 7 1  * 功能描述:射箭GIF
 8 2  * 创 建 者:Anka9080
 9 3  * 创建日期:2014/10/2 19:35:05
10 ==============================================================================*/
11 namespace SheJian
12 {
13     class Program
14     {
15         static void Main(string[] args)
16         {
17             Console.Title = "猜猜我射的中不~~~";
18             while (true) {
19                 //清屏并设置前景色
20                 Console.Clear();
21                 Console.ForegroundColor = ConsoleColor.Red;
22                // Console.Beep();
23                 // 初始状态
24                Console.Write("                   *\n                 *  *\n"+
25 "               *      *\n             *          **\n           *              **\n"+
26 "         *                  *\n  ***  *                   *     *\n    **********************************\n"+
27 "  ***  *                   *     *\n         *                  *\n           *              **\n"+
28 "             *          **\n               *      *\n                 *  *\n"+
29 "                   *\n");
30                 Thread.Sleep(500);
31                 Console.Clear();
32                 Console.Write("                   *\n                  * *\n" +
33 "                 *    *\n                *       **\n               *          **\n" +
34 "              *             *\n         *** *             *         *\n " +
35 "          *******************************\n         *** *             *         *\n" +
36 "              *             *\n               *          **\n                *       **\n" +
37 "                 *    *\n                  * *\n                   *\n");
38                 Thread.Sleep(200);
39                 Console.Clear();
40                 Console.Write("                   *\n                   * *\n" +
41 "                   *   *\n                   *     **\n                   *       **\n"+
42 "                   *         *\n              ***  *        *          *\n"+
43 "               ***************************\n              ***  *        *          *\n"+
44 "                   *         *\n                   *       **\n                   *     **\n"+
45 "                   *   *\n                   * *\n                   *\n");
46                 Thread.Sleep(200);
47                 Console.Clear();
48                 Console.Write("                   *\n                   * *\n"+
49 "                   *   *\n                   *     **\n                   *       **\n"+
50 "                   *         *\n                   *        *    ***                     *\n"+
51 "                   *       *      ***************************\n                   *        *    *"+
52 "**                     *\n                   *         *\n                   *       **\n"+
53 "                   *     **\n                   *   *\n"+
54 "                   * *\n                   *\n");
55                 Thread.Sleep(200);
56                 Console.Clear();
57
58                 for (int i = 1; i < 20; i++)
59                 {
60
61                 // 定位输出箭头部分代码
62
63                     string pre = string.Format("{0,32}",‘ ‘);
64                     Console.SetCursorPosition(0+i, 6);
65                     Console.Write(pre+"***                     *\n");
66                     Console.SetCursorPosition(0+i, 7);
67                     Console.Write(pre+" ***************************\n");
68                     Console.SetCursorPosition(0+i, 8);
69                     Console.Write(pre+"***                     *\n");
70                     Console.SetCursorPosition(0, 0);
71                     Console.Write("                   *\n                   * *\n" +
72 "                   *   *\n                   *     **\n                   *       **\n" +
73 "                   *         *\n                   *        *\n" +
74 "                   *       *\n                   *        *\n                   *         *\n" +
75 "                   *       **\n                   *     **\n                   *   *\n" +
76 "                   * *\n                   *\n");
77                     Thread.Sleep(100);
78                     Console.Clear();
79                 }
80
81
82
83                     Thread.Sleep(500);
84
85             }
86         }
87     }
88 }

    基本实现思路在0x 02已经说了,这里就不叙述了~

时间: 2024-10-13 21:53:19

『C # 开发』技能 Get√ ——制作CMD界面的简单GIF图片的相关文章

『iOS开发』「OC」00 - 写在前面

一.OC简介 在C语言的基础上,增加了一层最小的面向对象语法:完全兼容C语言:可以在OC代码中混入C语言代码,甚至是C++代码:可以使用OC开发Mac OS X平台和iOS平台的应用程序. 二.OC语法预览 (一)关键字 基本上所有的关键字都是以@开头的,如@interface  @implementation  @public等,少部分没有以@开头,如id,_cmd等 (二)字符串以@开头 C语言字符串:“hello” OC语言字符串:@“hello” (三)其他语法 基本类型:5种,增加了布

『iOS开发』「OC」03 - 封装

一.面向对象和封装 面向对象的三大特性:封装(成员变量).继承和多态 在OC语言中,使用@interface和@implementation来处理类.   @interface就好像暴露在外面的时钟表面,像外界提供展示以及接口.@implementation就好像隐藏在时钟内部的构造实现,把具体的实现封装了起来. 二.set方法 在开发过程中,考虑到安全性要求,我们一般不在成员变量名前面使用@public.@protected等关键字修饰,而是使用Set方法来为对象提供成员变量的值.在set方法

『iOS开发』「OC」02 - 类和对象

一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能的类. 术语:OO面向对象.OOP面向对象编程 二.类和对象 (一)关于类 类的设计只关注三个东西:类名.属性和方法 注意:一般名词都是类,拥有相同属性和行为的对象都可以抽象为一个类,类名是标识符的一种,需要符合规范,通常类名的第一个字母大写,且不能有下划线,如果有多个单词则使用驼峰标识.在对方法进行类的划分中,一般

『C # 开发』VS 2008 修改默认生成代码模版

作为Coder,或许会因为每次写代码前要把版权信息Ctrl+C/V上去而蛋疼   ╮(╯▽╰)╭ 可作为Code Copyer,又何尝不蛋疼呢,怎么会容忍作业上署上别人的姓名,学号,XXX 还是要先Select 完了Delete掉,或是改成自己的信息... 不过,我觉得还是自己乖乖敲代码比较好,这样才会有进步  ! 因此,有了本文..... 0x01 修改缓存模版文件 这个方法通过直接修改缓存文件,达到预期效果 此次演示修改添加类时对应模版文件(class.cs),该文件在安装目录 Micros

『python』OpenCV3计算机视觉库第二弹_简单的图片处理

注意,本库基于python2.7,所以语法细节和之前有所不同 cv2和numpy深度契合,其图片读入后就是numpy.array,只不过dtype比较不常用而已,支持全部数组方法(废话... cv2.cvtColor(img,cv2.COLOR_BAYER_BG2BGR) img.item(0,0) img.itemset((0,0),0) cv2.imshow('my image',img) cv2.waitKey() cv2.destroyAllWindows() 1 # coding=ut

『Python进阶』专题汇总

基础知识 『流畅的Python』第1~4章_数据结构.编码 『Python』基础数据结构常见使用方法 『Python CoolBook』数据结构和算法_多变量赋值&“*”的两种用法 『Python CoolBook:Collections』数据结构和算法_collections.deque队列&yield应用 『Python CoolBook:heapq』数据结构和算法_heapq堆队列算法&容器排序 『Python CoolBook:Collections』数据结构和算法_容器型

『安全工具』注入神器SQLMAP

原文:『安全工具』注入神器SQLMAP Pic by Baidu 0x 00 前言 正是SQLMAP这种神器的存在,SQL注入简直Easy到根本停不下来.... PS:国内类似软件也有阿D,明小子,挖掘机,当你用过他们之后你才会发现SQLMap才是绝对的注入神器 0x 01 注入原理 *****************************************开始分割线***************************************** 时间原因,这段内容就先不写了 就是因为

零元学Expression Blend 4 - Chapter 35 讨厌!!我不想一直重复设定!!『Template Binding』使用前後的差异

原文:零元学Expression Blend 4 - Chapter 35 讨厌!!我不想一直重复设定!!『Template Binding』使用前後的差异 因为先前写到自制Button时需特别注意Template Binding步骤的部分,有不少网友常常问我差异到底在哪? 所以在这边就特别为了Template Binding做单独的介绍 ? 因为先前写到自制Button时需特别注意Template Binding步骤的部分,有不少网友常常问我差异到底在哪? 所以在这边就特别为了Template

20172311『Java程序设计』课程 结对编程练习_四则运算第一周阶段总结

20172311『Java程序设计』课程 结对编程练习_四则运算第一周阶段总结 结对伙伴 学号 :20172307 姓名 :黄宇瑭 伙伴第一周博客地址: 需求分析 功能要求 1.自动生成题目 可独立使用(能实现自己编写测试类单独生成题目的功能) 可生成不同等级题目,类似于: 1级题目:2 + 5 =: 10 - 5 = 之类的两个数,一个运算符的题目 2.题目运算(判题) 可独立使用 实现中缀表达式转为后缀表达式并计算 判断用户答题正误,并输出正确结果 3.支持真分数 可独立使用 实现分数算式的