还行吧,毕竟没怎么学好c。
#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
void arrprint();
void arrprint_run();
void move(int x,int y);
void gotoxy(int x,int y);
int wherex() ;
int wherey() ;
void moveRight(int x);
void moveLeft(int x);
void moveUp(int x);
void moveDown(int x);
int main(){
system("color 2a");
moveRight(4);
moveUp(4);
int m=wherex();
int n=wherey();
system("cls");
system("color 2f");
char str[]="新年快乐,元旦快乐。";
char str2[]="2017年到了,再不管去年那些破事儿了。";
for(int i=0;i<80;i++){
gotoxy(m,n);
moveRight(1);
gotoxy(m+8,n);
puts(str);
if(i>4){
gotoxy(m+8,n+4);
puts(str2);
}
}
return 0;
}
int wherex() //获取光标x
{
CONSOLE_SCREEN_BUFFER_INFO pBuffer;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &pBuffer);
return (pBuffer.dwCursorPosition.X+1);
}
//获取光标的位置y
int wherey() //获取光标y
{
CONSOLE_SCREEN_BUFFER_INFO pBuffer;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &pBuffer);
return (pBuffer.dwCursorPosition.Y+1);
}
void gotoxy(int x,int y) //设置光标
{
COORD c;
c.X=x-1;
c.Y=y-1;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),c);
}
void moveRight(int x){
int m=wherex();
int n=wherey();
for(int i=0;i<x;i++){
move(m+i*2,n);
system("cls");
}
gotoxy(m+(x-1)*2,n);
}
void moveLeft(int x){
int m=wherex();
int n=wherey();
for(int i=0;i<x;i++){
move(m-i*2,n);
system("cls");
}
gotoxy(m-(x-1)*2,n);
}
void moveUp(int x){
int m=wherex();
int n=wherey();
for(int i=0;i<x;i++){
move(m,n+i*2);
system("cls");
}
gotoxy(m,n+(x-1)*2);
}
void moveDown(int x){
int m=wherex();
int n=wherey();
for(int i=0;i<x;i++){
move(m,n-i*2);
system("cls");
}
gotoxy(m,n-(x-1)*2);
}
void move(int x,int y){
gotoxy(x,y);
arrprint();
Sleep(150);
gotoxy(x,y);
arrprint_run();
Sleep(150);
gotoxy(x,y);
arrprint();
Sleep(150);
}
void arrprint(){
char str[5][5]={{' ',' ','o',' ',' '},{'o','o','o','o','o'},{' ',' ','o',' ',' '},{' ','o',' ','o',' '},{'o',' ',' ',' ','o'}};
for(int i=0;i<5;i++){
for(int j=0;j<5;j++)
printf("%c",str[i][j]);
gotoxy(wherex()-5,wherey()+1);
//printf("\n");
}
}
void arrprint_run(){
char str[5][5]={{' ',' ','o',' ',' '},{'o','o','o','o','o'},{' ',' ','o',' ',' '},{' ',' ','o',' ',' '},{' ',' ','o',' ',' '}};
for(int i=0;i<5;i++){
for(int j=0;j<5;j++)
printf("%c",str[i][j]);
gotoxy(wherex()-5,wherey()+1);
// printf("\n");
}
}