在DOS命令行窗口中显示出用各种字符拼凑出来的各种图案的实现方法,如本人头像

这篇博客分享了如何使用C++编程语言在DOS命令行中通过字符拼凑创作图案,包括思路分析和简单代码实现。作者指出关键在于符号定位,并提供了分步指南,包括设置行数、定位符号、计算字符位置等步骤。
摘要由CSDN通过智能技术生成

注:文中例子是本人刚学C++编程语言的时候制作的,实现方法很简单,主要使用for循环语句,无需什么复杂烧脑的算法。

由于经常看到各种符号拼成的图案,感觉很有意思,所以自己也弄了个,纯属好玩。

   (作品---->原图)  

思   路:

>>实现这个图案的关键之处在于构造图案中的各个符号的定位

第一步:首先需要注意一下,在DOS命令行窗口中,默认情况下,每行之间的字符间距大概是每一行行内字符间间距的2倍(视觉上)

如果你的图案是一个正方形,设图案每一行有X个字符(包含空格),则行数为X/2行。


第二步:按照这个视觉比例,用word文档创建如下内容(如下图,本文中每一行都是一个个星号组成的),并打印出来。

然后按照设计的图案的每行中的字符个数,在打印出来的纸中用铅笔画出一个边框(范围),然后可以在边框范围内尽情的连线,

最后拼成图案。(这一步解决图案中符号定位的问题,属于笨办法,但是十分有效,而且很直观,本例选择的行字符数为40。)


第三步:按行计算边框范围内连起来的线经过的点(每个点到该行行首的距离),经过则用自定义的符号显示,没有经过的点用空格显示。

可以在上图中标上刻度,方便计算每个符号的位置。


第四步:为了方便在命令行窗口中左右移动图案,给每一行行首都增加了一个int型变量,并根据该变量的值在每行行首添加空格,

使得图案的左边框离窗口的左边界之间的距离可以随意改变。该步骤可以省略。


第五步:本例实现代码如下(出现图案雏形后在根据视觉上的差异对部分字符位置进行微调)

#include<iostream>
using namespace std;
int main(){
    int a;
	cout<<"please input A:";  
	cin>>a;                  //图案左边框离窗口左边界的距离值,可替换成任意常量,也可以忽略。
	for(int x=0;x<30;x++){
	for(int y=0;y<60+a;y++){
		if(x==0||x==29){if(y<a)cout<<" ";else cout<<"*";}
		else if(x==1){if(y<a)cout<<" ";else if(y==a||y==59+a) cout<<"$";else cout<<" ";}
		else if(x==2){if(y<a)cout<<" ";else if(y==a||y==59+a) cout<<"$";else if(y==a+9||y==a+50)cout<<"*";
							else if
  • 6
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值