啊哈磊_编程从这里起步
标题:
想给女朋友送个exe做礼物,求思路!
[打印本页]
作者:
thinkpaopao
时间:
2013-2-16 22:35
标题:
想给女朋友送个exe做礼物,求思路!
就是想做个简单的exe做礼物,求思路,求灵感,大概要怎么写。
作者:
c习生
时间:
2013-2-17 09:12
玫瑰 5201314 交替、同时出现
作者:
纨绔☆子弟
时间:
2013-2-17 12:42
http ://tieba.baidu.com/p/2164216198自己看
作者:
lianke008
时间:
2013-8-16 09:57
LZ必须用C么?复杂不讨好 控制台界面苦逼 坐窗口又太复杂
建议LZ尝试VB来做 实现简单 效果更好
作者:
uir1393513835
时间:
2013-12-15 22:22
如果可以,用VC或flash也可以
作者:
xjzb
时间:
2018-12-31 15:36
本帖最后由 xjzb 于 2018-12-31 15:37 编辑
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <windows.h>
//3维数组,存放LOVE字符
char LETTER[][5][5] = {
{
0, 1, 0, 0, 0,
0, 1, 0, 0, 0,
0, 1, 0, 0, 0,
0, 1, 0, 0, 0,
0, 1, 1, 1, 0
},
{
0, 1, 1, 1, 0,
0, 1, 0, 1, 0,
0, 1, 0, 1, 0,
0, 1, 0, 1, 0,
0, 1, 1, 1, 0
},
{
0, 1, 0, 1, 0,
0, 1, 0, 1, 0,
0, 1, 0, 1, 0,
0, 1, 0, 1, 0,
0, 0, 1, 0, 0
},
{
0, 1, 1, 1, 0,
0, 1, 0, 0, 0,
0, 1, 1, 1, 0,
0, 1, 0, 0, 0,
0, 1, 1, 1, 0
}
};
int status = 1;//控制线程函数的运行状态
int speed = 500;//字符变换的速度
HANDLE hout;//控制台标准输出句柄
CONSOLE_SCREEN_BUFFER_INFO csbi;//控制台屏幕缓冲区信息结构体
char *symbol[] = {"☆", "★", "△", "※", "▲", "■"};//□ ◆用这些特殊字符组成LOVE中的各个字母
WORD attr[] = {
FOREGROUND_RED | FOREGROUND_INTENSITY, //红色
FOREGROUND_GREEN | FOREGROUND_INTENSITY,//绿色
FOREGROUND_BLUE | FOREGROUND_INTENSITY, //蓝色
FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY//白色
};
//在屏幕上画出LOVE
void DrawLove()
{
int i, j, c;
COORD pos; //光标的坐标
DWORD dwLen;
for(c = 0; c < sizeof LETTER / sizeof LETTER[0]; ++c)
{
for(i = 0; i < 5; ++i)
{
pos.X = c * 5 * 2;
pos.Y = i;
SetConsoleCursorPosition(hout, pos);
for(j = 0; j < 5; ++j)
{
if(LETTER[c]
[j])
{
//获取当前屏幕缓冲区信息
GetConsoleScreenBufferInfo(hout, &csbi);
printf("%s", symbol[rand() %
(sizeof symbol / sizeof symbol[0])]);
//用指定的颜色填充字符
FillConsoleOutputAttribute(hout, attr[rand() %
(sizeof attr / sizeof attr[0])], 2,
csbi.dwCursorPosition, &dwLen);
}
else
{
printf(" ");//打印两个空格
}
}
}
}
}
//线程的处理函数
DWORD WINAPI ThreadProc(LPVOID lpParam)
{
while(1)
{
if(status)
{
DrawLove();
Sleep(speed);
}
}
return 0;
}
int main()
{
HANDLE hThread;
int inChar;
hout = GetStdHandle(STD_OUTPUT_HANDLE);
srand((unsigned)time(0));
hThread = CreateThread(NULL, 0, ThreadProc, NULL, 0, NULL);
CloseHandle(hThread);
while(1)
{
inChar = getch();
if('q' == inChar)
{
break;
}
else if('w' == inChar && speed > 50)
speed -= 50;
else if('s' == inChar && speed < 500)
speed += 50;
else if('p' == inChar)
status = 0;
else if('c' == inChar)
status = 1;
}
return 0;
}
欢迎光临 啊哈磊_编程从这里起步 (https://bbs.codeaha.com/)
Powered by Discuz! X3.2