欢迎C高手 , 菜鸟也过来出出主意,我也是菜鸟!!!
大家伙,去看看这个还能不能优化,我想把它改成可以判断是否擦完了?这是用VC6.0编的。。。
http://www.
#include "stdafx.h"
#include <stdio.h>
#include <windows.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#define H 0
#define G 24
#define J 0
#define D 79
HANDLE hConsole;
struct move_point
{
int x, y;
int xv, yv;
}man;
void gotoxy(int x, int y)
{
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(hConsole, coord);
SetConsoleTextAttribute(hConsole, 0x000e);
}
void main()
{
void color();
hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
int i,j;
char e[2000];
printf("这是个小游戏,你可以用WSAD这四个控制小笑脸把屏幕上的字符擦掉,按Q退出");
getch();
system("cls");
gotoxy(0,4);
for (j=1;j<10;++j)
{
for(i=1;i<j+1;++i)
{
printf("%d*%d=%d\t",i,j,i*j);
}
printf("\n");
}
char key;
man.x=10;
man.y=10;
man.xv=1;
man.yv=1;
gotoxy(man.x,man.y);
printf("%c",2);
i=0;
while (key!='q'&&key!='Q')
{
key=getch();
switch(key)
{
case 'W' :
case 'w' :
{
if(man.y==H)
break;
printf(" ");
man.y-=man.yv;color();
gotoxy(man.x,man.y);
printf("%c",2);
gotoxy(D,man.y+1);
printf(" ");
i++;
break;
}
case 'S' :
case 's' :
{
if(man.y==G)
break;
printf(" ");
man.y+=man.yv;color();
gotoxy(man.x,man.y);
printf("%c",2);
gotoxy(D,man.y-1);
printf(" ");
i++;
break;
}
case 'A' :
case 'a' :
{
if(man.x==J)
break;
printf(" ");
man.x-=man.xv;color();
gotoxy(man.x,man.y);
printf("%c",2);
gotoxy(D,man.y);
printf(" ");
i++;
break;
}
case 'D' :
case 'd' :
{
if(man.x==D)
{
break;
}
printf(" ");
man.x+=man.xv;
color();
gotoxy(man.x,man.y);
printf("%c",2);
i++;
break;
}
default:
break;
}
gotoxy(50,2);
printf("已执行步骤%d",i);
gotoxy(20,0);printf("用这个笑脸把九九乘法表擦掉");
gotoxy(man.x,man.y);
}
}
void color()
{
int j;
srand((unsigned)time(NULL));
j=rand()%15;
switch(j)
{
case 0 :system("color 01");break;
case 1 :system("color 02");break;
case 2 :system("color 03");break;
case 3 :system("color 04");break;
case 4 :system("color 05");break;
case 5 :system("color 06");break;
case 6 :system("color 07");break;
case 7 :system("color 08");break;
case 8 :system("color 09");break;
case 9 :system("color 0A");break;
case 10 :system("color 0B");break;
case 11 :system("color 0C");break;
case 12 :system("color 0D");break;
case 13 :system("color 0E");break;
case 14 :system("color 0F");break;
}
}
就是想和大家讨论讨论下,大家有什么想法也说说看吧
[ 本帖最后由 huangapple 于 2011-1-4 13:24 编辑 ]