前言

就是无聊。


有用的解释

灵感来源:大写字母 Y

代码功能

你输入一段字符串,程序根据你的输入将其转化为 n×5n\times5 的由 * 和空格组成的图案。例如:

输入:

BCOI

输出:

****   ****  ***   ***
*   * *     *   *   *
****  *     *   *   *
*   * *     *   *   *
****   ****  ***   ***

工作原理

实际上是根据字模编码的原理,但是是字母 & 削弱版。将 26+2626+26 个字母转化为 5×55\times5 的点阵(原版是 16×1616\times16),再根据输入得到输出就好了。

但是这些点阵都是竖排的,要得到横板有多种方法,例如将字模存到一个数组里,最后再输出等等。

但是有点麻烦。这里使用一种方便的方法:对于输入的字符串:首先遍历行数 xx ,再遍历这个字符串,输出这些字符的第 xx 行,每个字符之间有一个空格。

由于大小的限制,所以小写字母可能不太完美。

为了看得震撼一点,我还在每个输出后加了等待(第 455455 行)。你可以修改这个值。这是这个函数的详细解释 DC・system & sleep ,@

额外地,你可以使用 "(cls)" 来清屏。


 ****                 *       *                 *
*                     *       *                 *
* ***  ***   ***   ****       *     *   *  ***  * *
*   * *   * *   * *   *       *     *   * *     **
 ****  ***   ***   ****       ****   ** *  ***  * *
  
#include <iostream>
#include <windows.h>
using namespace std;

char alphi[70][10][10] = 
{
	//空格
	{
		"     ",
		"     ",
		"     ",
		"     ",
		"     "
	},
	//A
	{
		"  *  ",
		" * * ",
		" *** ",
		"*   *",
		"*   *",
	},
	//B
	{
		"**** ",
		"*   *",
		"**** ",
		"*   *",
		"**** ",
	},
	//C
	{
		" ****",
		"*    ",
		"*    ",
		"*    ",
		" ****",
	},
	//D
	{
		"**** ",
		"*   *",
		"*   *",
		"*   *",
		"**** ",
	},
	//E
	{
		"*****",
		"*    ",
		"**** ",
		"*    ",
		"*****",
	},
	//F
	{
		"*****",
		"*    ",
		"**** ",
		"*    ",
		"*    ",
	},
	//G
	{
		" ****",
		"*    ",
		"* ***",
		"*   *",
		" ****",
	},
	//H
	{
		"*   *",
		"*   *",
		"*****",
		"*   *",
		"*   *",
	},
	//I
	{
		" *** ",
		"  *  ",
		"  *  ",
		"  *  ",
		" *** ",
	},
	//J
	{
		" *** ",
		"  *  ",
		"  *  ",
		"* *  ",
		" *   ",
	},
	//K
	{
		"*  * ",
		"* *  ",
		"**   ",
		"* *  ",
		"*  * ",
	},
	//L
	{
		"*    ",
		"*    ",
		"*    ",
		"*    ",
		"**** ",
	},
	//M
	{
		"*   *",
		"** **",
		"* * *",
		"*   *",
		"*   *",
	},
	//N
	{
		"*   *",
		"**  *",
		"* * *",
		"*  **",
		"*   *",
	},
	//O
	{
		" *** ",
		"*   *",
		"*   *",
		"*   *",
		" *** ",
	},
	//P
	{
		"**** ",
		"*   *",
		"**** ",
		"*    ",
		"*    ",
	},
	//Q
	{
		" *** ",
		"*   *",
		"* * *",
		"*  * ",
		" ** *",
	},
	//R
	{
		"**** ",
		"*   *",
		"**** ",
		"*  * ",
		"*   *",
	},
	//S
	{
		" ****",
		"*    ",
		" *** ",
		"    *",
		"**** ",
	},
	//T
	{
		"*****",
		"  *  ",
		"  *  ",
		"  *  ",
		"  *  ",
	},
	//U
	{
		"*   *",
		"*   *",
		"*   *",
		"*   *",
		" *** ",
	},
	//V
	{
		"*   *",
		"*   *",
		" * * ",
		" * * ",
		"  *  ",
	},
	//W
	{
		"*   *",
		"*   *",
		"* * *",
		"** **",
		"*   *",
	},
	//X
	{
		"*   *",
		" * * ",
		"  *  ",
		" * * ",
		"*   *",
	},
	//Y
	{
		"*   *",
		" * * ",
		"  *  ",
		"  *  ",
		"  *  ",
	},
	//Z
	{
		"*****",
		"   * ",
		"  *  ",
		" *   ",
		"*****",
	},
	
	//a
	{
		"     ",
		"     ",
		" *** ",
		"*  * ",
		" ** *",
	},
	//b
	{
		"*    ",
		"*    ",
		"**** ",
		"*   *",
		"**** ",
	},
	//c
	{
		"     ",
		"     ",
		" *** ",
		"*    ",
		" *** ",
	},
	//d
	{
		"    *",
		"    *",
		" ****",
		"*   *",
		" ****",
	},
	//e
	{
		"     ",
		"     ",
		" *** ",
		"* ***",
		" *** ",
	},
	//f
	{
		" *** ",
		" *   ",
		"**** ",
		" *   ",
		" *   ",
	},
	//g
	{
		"     ",
		" *** ",
		"*   *",
		"   **",
		" *** ",
	},
	//h
	{
		"*    ",
		"*    ",
		"**** ",
		"*   *",
		"*   *",
	},
	//i
	{
		"  *  ",
		"     ",
		"  *  ",
		"  *  ",
		"  *  ",
	},
	//j
	{
		"  *  ",
		"     ",
		"  *  ",
		"* *  ",
		" *   ",
	},
	//k
	{
		"*    ",
		"*    ",
		"* *  ",
		"**   ",
		"* *  ",
	},
	//l
	{
		"*    ",
		"*    ",
		"*    ",
		"*    ",
		"*    ",
	},
	//m
	{
		"     ",
		"     ",
		"** **",
		"** **",
		"* * *",
	},
	//n
	{
		"     ",
		"     ",
		"*  * ",
		"** * ",
		"* ** ",
	},
	//o
	{
		"     ",
		"     ",
		" *** ",
		"*   *",
		" *** ",
	},
	//p
	{
		"     ",
		"     ",
		"**** ",
		"*****",
		"*    ",
	},
	//q
	{
		"     ",
		"     ",
		" ****",
		"*****",
		"    *",
	},
	//r
	{
		"     ",
		"     ",
		"**** ",
		"*    ",
		"*    ",
	},
	//s 
	{
		"     ",
		"     ",
		" ****",
		"  *  ",
		"**** ",
	},
	//t
	{
		"     ",
		"  *  ",
		" *** ",
		"  *  ",
		"  ** ",
	},
	//u
	{
		"     ",
		"     ",
		"*   *",
		"*   *",
		" ** *",
	},
	//v
	{
		"     ",
		"     ",
		"*   *",
		" *  *",
		"  *  ",
	},
	//w
	{
		"     ",
		"     ",
		"* * *",
		"** **",
		"*   *",
	},
	//x
	{
		"     ",
		"     ",
		" * * ",
		"  *  ",
		" * * ",
	},
	//y
	{
		"     ",
		"     ",
		" * * ",
		"  *  ",
		" **   ",
	},
	//Z
	{
		"     ",
		"     ",
		"**** ",
		" *   ",
		"**** ",
	}
};

int main()
{
	string s;
	while (cin >> s)
	{
		if (s == "(cls)")
		{
			system("cls");
			continue;
		}
		for (int x = 0; x < 5; ++x)
		{
			for (auto c : s)
			{
				int i = -1;
				if (c >= 'A' && c <= 'Z') i = c - 'A';
				else if (c >= 'a' && c <= 'z') i = c - 'a' + 26;
				++i;
				for (int y = 0; y < 5; ++y)
				{
					cout << alphi[i][x][y];
					Sleep(15);
				}
				cout << " ";
			}
			cout << "\n";
		}
	}
	return 0;
}