[C++] 纯文本查看 复制代码 void g_chen()//10进制高精度乘法
{
char a[1000],b[1000];
int a1[1000]={0},b1[1000]={0},c1[2001]={0};
cin>>a>>b;
int len_a=strlen(a);
int len_b=strlen(b);
//int len=max(len_a,len_b);
int jw=0;
for(int i=len_a-1;i>=0;i--)//反向+转换int
{
a1[len_a-1-i]=a[i]-'0';
}
for(int i=len_b-1;i>=0;i--)
{
b1[len_b-1-i]=b[i]-'0';
}
for(int i=0;i<len_a;i++)//乘法
for(int j=0;j<len_b;j++)
{
c1[i+j]+=a1[i]*b1[j];
c1[i+j+1]+=(c1[i+j]/10);
c1[i+j]=c1[i+j]%10;
}
int flag=1;
for(int i=len_a+len_b;i>=0;i--)
{
if((flag==1)&&c1[i]==0){}
else
{cout<<c1[i];
flag=0;
}
}
if(flag==1) cout<<0;
}
[C++] 纯文本查看 复制代码 #include <graphics.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
void loadImage();
void releaseImage();
void addRandomNum(int n);
bool move(int direction);
void draw();
#define DEVIDE 15
#define GRID_WIDTH 106
//图片
#define NUM_BLOCK 18
PIMAGE blockImgs[NUM_BLOCK], backgroundImg;
key_msg keyMsg;
int board[4][4]; //格子
//int emptyBlock = 16; //空格子数
char ch;
void upSlide()
{
for(int i=3;i>=1;i--)
{
for(int j=3;j>=0;j--)
{
if((board[i-1][j]==0)&&(board[i][j]!=0))
{
board[i-1][j]=board[i][j];
board[i][j]=0;
}
else if((board[i][j]==board[i-1][j]) && (board[i][j]!=0))
{
board[i-1][j]=board[i][j]+1;
board[i][j]=0;
}
}
}
}
void leftSlide()
{
for(int i=3;i>=0;i--)
{
for(int j=3;j>=1;j--)
{
if((board[i][j-1]==0)&&(board[i][j]!=0))
{
board[i][j-1]=board[i][j];
board[i][j]=0;
}
else if((board[i][j-1]==board[i][j] ) && (board[i][j]!=0))
{
board[i][j-1]=board[i][j]+1;
board[i][j]=0;
}
}
}
}
void rightSlide()
{
for(int i=3;i>=0;i--)
{
for(int j=0;j<=2;j++)
{
if((board[i][j+1]==0)&&(board[i][j]!=0))
{
board[i][j+1]=board[i][j];
board[i][j]=0;
}
else if((board[i][j+1]==board[i][j] ) && (board[i][j]!=0))
{
board[i][j+1]=board[i][j]+1;
board[i][j]=0;
}
}
}
}
void downSlide()
{
for(int i=0;i<=3;i++)
{
for(int j=3;j>=1;j--)
{
if((board[i+1][j]==0)&&(board[i][j]!=0))
{
board[i+1][j]=board[i][j];
board[i][j]=0;
}
else if((board[i][j]==board[i+1][j]) && (board[i][j]!=0))
{
board[i+1][j]=board[i][j]+1;
board[i][j]=0;
}
}
}
}
bool judgeUpSlide()
{
for(int i=3;i>=1;i--)
{
for(int j=3;j>=0;j--)
{
if(board[i][j]==0)return true;
else if(board[i][j]==board[i-1][j])return true;
}
}
return false;
}
bool judgeLeftSlide()
{
for(int i=3;i>=0;i--)
{
for(int j=3;j>=1;j--)
{
if(board[i][j]==0)return true;
else if(board[i][j]==board[i][j-1])return true;
}
}
return false;
}
bool judgeRightSlide()
{
for(int i=3;i>=0;i--)
{
for(int j=0;j<=2;j++)
{
if(board[i][j]==0)return true;
else if(board[i][j]==board[i][j+1])return true;
}
}
return false;
}
bool judgeDownSlide()
{
for(int i=0;i<=3;i++)
{
for(int j=3;j>=1;j--)
{
if(board[i][j+1]==0)return true;
else if(board[i][j]==board[i+1][j])return true;
}
}
return false;
}
void getRand()
{
int x,y;
do
{
x=rand()%4;
y=rand()%4;
if(board[x][y]!=0){}
else
{
board[x][y]=1;
break;
}
}while(1);
}
void loadImage()//图片载入
{
char imgName[40];
//数字图片 初始化
for (int i = 1, num = 2; i < NUM_BLOCK; i++, num *= 2)
{
blockImgs[i] = newimage();//声明
sprintf(imgName, "resource\\image\\block_%d.png", num);//字符串赋值
getimage(blockImgs[i], imgName);//图片对象赋值
}
//底图 初始化
backgroundImg = newimage();
getimage(backgroundImg, "resource\\image\\background.png");
}
void start()//初始化
{
initgraph(500, 500);//图形初始化
setbkcolor(WHITE);
srand(time(0));//随机数初始化
loadImage();//图片载入
setfont(25,0,"幼圆");//(字体高度,字体宽度(为0即为自适应),字形)设置字体为25,幼圆字体
setbkmode(TRANSPARENT); //设置文字背景色为透明(默认为有背景色)
}
void draw()//图形绘制
{
putimage_withalpha(NULL, backgroundImg, 0, 0);//绘制带透明通道的图像
for (int i = 0; i < 4; i++)
for (int j = 0; j < 4; j++)
{
int x = (j + 1) * DEVIDE + j * GRID_WIDTH;
int y = (i + 1) * DEVIDE + i * GRID_WIDTH;
if (board[i][j] != 0)
putimage_withalpha(NULL, blockImgs[board[i][j]], x, y);
}
}
void update()//数据更新
{
switch(keyMsg.key)
{
case 'W':
if(judgeUpSlide()) upSlide();
break;
case 'A':
if(judgeLeftSlide()) leftSlide();
break;
case 'S':
if(judgeDownSlide()) downSlide();
break;
case 'D':
if(judgeRightSlide()) rightSlide();
break;
default:break;
}
}
int main()
{
start();//初始化
getRand();//产生随机数字
draw();//图形绘制
while(1/*!judgeOver()*/)
{
while(kbmsg())
{
keyMsg = getkey();
if ((keyMsg.msg == key_msg_down)&&((keyMsg.key=='A')||(keyMsg.key=='S')||
(keyMsg.key=='W')||(keyMsg.key=='D')))
{
update();
getRand();
cleardevice();
draw();
}
}
delay_fps(60);
}
xyprintf(200,300,"GAME OVER");
getch();
return 0;
} |