c语言代码表白会动的小人(c语言简单表白代码教程)

http://www.itjxue.com  2023-03-06 18:37  来源:未知  点击次数: 

C语言小题,这个图片里面的小人是输出,怎么用C语言让这个小人从右往左移动呢?

其实就是输出4行数据。

前面有若干个空格。所以要想让它移动的话,执行两步

清屏

重新输出4行数据,每行前面空格减少一位。

这样就向左移动了一位了。

循环执行 就是不停向左,类似的 还可以上下右移动。

如何用C语言编程一个移动的爱心

//一个非常简陋的实现,看看行不行

#includeiostream

#includewindows.h

using namespace std;

int main()

{

char heart[10][10]=

{

{' ',' ','*','*',' ','*','*',' ',' ',' '},

{' ','*',' ',' ','*',' ',' ','*',' ',' '},

{' ','*',' ',' ','*',' ',' ','*',' ',' '},

{' ','*',' ',' ',' ',' ',' ','*',' ',' '},

{' ',' ','*',' ',' ',' ','*',' ',' ',' '},

{' ',' ','*',' ',' ',' ','*',' ',' ',' '},

{' ',' ',' ','*',' ','*',' ',' ',' ',' '},

{' ',' ',' ','*',' ','*',' ',' ',' ',' '},

{' ',' ',' ',' ','*',' ',' ',' ',' ',' '},

{' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},

};

int index=0;

while(1){

for(int i=0;i10;++i){

for(int ii=0;iiindex;++ii)

cout' ';

for(int j=0;j10;++j)

coutheart[i][j]' ';

coutendl;

}

index=(index+1)%15;

Sleep(300);

system("cls");

}

return 1;

}

c语言表白程序代码

用C语言编写一个程序相信爱的人表白。

电脑:华为MateBook14

系统:Windows10

软件:VC++

1、正确打开VC++,设置适合自己的字体大小及你想说的话。

2、编写程序:

#include stdio.hvoid main(){printf("*********************\n");printf("我是发自内心的爱你\n");printf("*********************\n");}。

3、点击“编译”,“连接”,“运行”,检验程序是否正确。

求C语言编写的表白程序,要代码

#define IdYes 1002

#define IdNo 1003

#define IdStatic 1004

#define IdTimer 1005

#define Width 640

#define Height 480

#define Tick 2000

#includewindows.h

int x,y;

RECT rdesk;

HINSTANCE hinst;

HWND hyes,hno;

BOOL quit=FALSE;

LRESULT CALLBACK WndProc(HWND hwnd,UINT Message,WPARAM wParam,LPARAM lParam)

{

HDC hdc;

PAINTSTRUCT ps;

RECT rclient;

HBRUSH hbrbkgnd;

static COLORREF c;

static BYTE r,g,b;

switch(Message)

{

case WM_TIMER:

if(IdTimer==LOWORD(wParam))

{

r=(BYTE)(rand()%256);

g=(BYTE)(rand()%256);

b=(BYTE)(rand()%256);

c=RGB(r,g,b);

InvalidateRect(hwnd,NULL,TRUE);

UpdateWindow(hwnd);

}

break;

case WM_PAINT:

hdc=BeginPaint(hwnd,ps);

hbrbkgnd=CreateSolidBrush(c);

SelectObject(hdc,hbrbkgnd);

GetClientRect(hwnd,rclient);

FillRect(hdc,rclient,hbrbkgnd);

DeleteObject(hbrbkgnd);

EndPaint(hwnd,ps);

break;

case WM_COMMAND:

switch(LOWORD(wParam))

{

case IdYes:

quit=TRUE;

MessageBox(hwnd,TEXT("回答正确,太太太好了!"),TEXT("宝贝"),MB_ICONEXCLAMATION|MB_OK);

SendMessage(hwnd,WM_CLOSE,0,0);

break;

case IdNo:

MessageBox(hwnd,TEXT("回答错误哦,我很生气呢!"),TEXT("宝贝"),MB_ICONEXCLAMATION|MB_OK);

break;

}

break;

case WM_SIZE:

case WM_MOVE:

SetWindowPos(hwnd,HWND_TOPMOST,x,y,Width,Height,SWP_SHOWWINDOW);

break;

case WM_DESTROY:

PostQuitMessage(0);

break;

case WM_CLOSE:

if(quit)

{

KillTimer(hwnd,IdTimer);

DestroyWindow(hwnd);

}

break;

case WM_CREATE:

CreateWindow(TEXT("Static"),

TEXT("请回答:做我女朋友好吗?"),

WS_CHILD|WS_VISIBLE|SS_CENTER,

200,

200,

240,

20,

hwnd,

(HMENU)IdStatic,

hinst,

NULL

);

hyes=CreateWindow(TEXT("Button"),

TEXT("好"),

WS_CHILD|WS_VISIBLE|BS_CENTER,

270,

230,

45,

20,

hwnd,

(HMENU)IdYes,

hinst,

NULL

);

hno=CreateWindow(TEXT("Button"),

TEXT("不好"),

WS_CHILD|WS_VISIBLE|BS_CENTER,

325,

230,

45,

20,

hwnd,

(HMENU)IdNo,

hinst,

NULL

);

SetTimer(hwnd,IdTimer,Tick,NULL);

break;

default:

return DefWindowProc(hwnd,Message,wParam,lParam);

}

return 0;

}

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)

{

WNDCLASSEX wc;

HWND hwnd;

MSG msg;

hinst=hInstance;

srand(time(NULL));

memset(wc,0,sizeof(wc));

wc.cbSize=sizeof(WNDCLASSEX);

wc.lpfnWndProc=WndProc;

wc.hInstance=hInstance;

wc.hCursor=LoadCursor(NULL,IDC_ARROW);

wc.hbrBackground=(HBRUSH)(COLOR_WINDOW+1);

wc.lpszClassName=TEXT("WindowClass");

wc.hIcon=LoadIcon(NULL,IDI_APPLICATION);

wc.hIconSm=LoadIcon(NULL,IDI_APPLICATION);

if(!RegisterClassEx(wc))

{

MessageBox(NULL,TEXT("窗口注册失败!"),TEXT("错误"),MB_ICONEXCLAMATION|MB_OK);

return 0;

}

GetWindowRect(GetDesktopWindow(),rdesk);

x=(rdesk.right-Width)/2;

y=(rdesk.bottom-Height)/2,

hwnd = CreateWindowEx(WS_EX_TOPMOST,

TEXT("WindowClass"),

TEXT("I Love You"),

WS_THICKFRAME|WS_VISIBLE,

x,

y,

Width,

Height,

NULL,NULL,hInstance,NULL);

if(NULL==hwnd)

{

MessageBox(NULL,TEXT("窗口创建失败!"),TEXT("错误!"),MB_ICONEXCLAMATION|MB_OK);

return 0;

}

while(GetMessage(msg,NULL,0,0)0)

{

TranslateMessage(msg);

DispatchMessage(msg);

}

return msg.wParam;

}

截图

用C语言画简单的小人

TC2.0里有一个bgidemo.c的图形编程示例程序。

其中有一个演示屏幕贴图的子程序,一个外星人的飞船在屏幕上飞来飞去。

这个程序可以简单地修改一下就可以用于你的需求了。

程序不难看懂。

这个代码我找到了。大概说一下。LZ需要自己去找一下完整的代码研究,这里我只贴出相关的一段。

void PutImageDemo(void)

{

static int r = 20;

static int StartX = 100;

static int StartY = 50;

struct viewporttype vp;

int PauseTime, x, y, ulx, uly, lrx, lry, size, i, width, height, step;

void *Saucer;

MainWindow("GetImage / PutImage Demonstration");

getviewsettings( vp );

/* Draw Saucer */ 下面是用绘画的方式画了一个简单的飞碟。这个飞碟图用于之前复制到内存里备用。

setfillstyle( SOLID_FILL, getmaxcolor() );

fillellipse(StartX, StartY, r, (r/3)+2);

ellipse(StartX, StartY-4, 190, 357, r, r/3);

line(StartX+7, StartY-6, StartX+10, StartY-12);

circle(StartX+10, StartY-12, 2);

line(StartX-7, StartY-6, StartX-10, StartY-12);

circle(StartX-10, StartY-12, 2);

/* Read saucer image */ 这里开始把那个飞碟的小图图复制到一个内存缓冲区里。先计算大小,需要的内存大小。

ulx = StartX-(r+1);

uly = StartY-14;

lrx = StartX+(r+1);

lry = StartY+(r/3)+3;

width = lrx - ulx + 1;

height = lry - uly + 1;

size = imagesize(ulx, uly, lrx, lry);

Saucer = malloc( size ); // 分配内存

getimage(ulx, uly, lrx, lry, Saucer); // 搞到了。

putimage(ulx, uly, Saucer, XOR_PUT); // 这就在原位置上,以异或的方式画一下。用异或的方式绘图,两次绘制后,图像正好就会消失为原来的背景。

但是,LZ的可能这样不行,那就需要复杂一些的绘制了,用人物的黑轮廓图或上背景,得到镂空,然后再把黑背景的角色用or方式绘上。

下面就是随机地绘制了。

/* Plot some "stars" */

for ( i=0 ; i1000; ++i )

putpixel(random(MaxX), random(MaxY), random( MaxColors-1 )+1);

x = MaxX / 2;

y = MaxY / 2;

PauseTime = 70;

/* until a key is hit */

while ( !kbhit() ) {

/* Draw the Saucer */

putimage(x, y, Saucer, XOR_PUT); /* draw image */

delay(PauseTime);

putimage(x, y, Saucer, XOR_PUT); /* erase image */

上面的还是两次 xor,显示图片,消除图片。

/* Move Saucer */

step = random( 2*r );

if ((step/2) % 2 != 0 )

step = -1 * step;

x = x + step;

step = random( r );

if ((step/2) % 2 != 0 )

step = -1 * step;

y = y + step;

if (vp.left + x + width - 1 vp.right)

x = vp.right-vp.left-width + 1;

else

if (x 0)

x = 0;

if (vp.top + y + height - 1 vp.bottom)

y = vp.bottom-vp.top-height + 1;

else

if (y 0)

y = 0;

}

free( Saucer );

Pause();

}

另外,团IDC网上有许多产品团购,便宜有口碑

(责任编辑:IT教学网)

更多

推荐word文章