c++小游戏代码

/*===========================Program Description==========================*/
/*程序名称:game.c */
/*程序目的:打砖块游戏演示 */
/*written by :董大钿 */
/*========================================================================*/

#include "graphics.h"
#include "stdio.h"
#include "conio.h" /*所需的头文件*/

int on; /*声明具有开关作用的全局变量*/
static int score; /*声明静态的记分器变量*/

/* 定义开始界面函数*/

int open()
{
setviewport(100,100,500,380,1); /*设置图形窗口区域*/
setcolor(4); /*设置作图色*/
rectangle(0,0,399,279); /*以矩形填充所设的图形窗口区域*/
setfillstyle(SOLID_FILL,7); /*设置填充方式*/
floodfill(50,50,4); /*设置填充范围*/
setcolor(8);
settextstyle(0,0,9); /*文本字体设置*/
outtextxy(90,80,"BALL"); /*输出文本内容*/
settextstyle(0,0,1);
outtextxy(110,180,"version 1.0");
outtextxy(110,190,"made by ddt");
setcolor(128);
settextstyle(0,0,1);
outtextxy(120,240,"Press any key to continue......");
}

/*定义退出界面函数*/
int quitwindow()
{
char s[100]; /*声明用于存放字符串的数组*/
setviewport(100,150,540,420,1);
setcolor(YELLOW);
rectangle(0,0,439,279);
setfillstyle(SOLID_FILL,7);
floodfill(50,50,14);
setcolor(12);
settextstyle(0,0,8);
outtextxy(120,80,"End");
settextstyle(0,0,2);
outtextxy(120,200,"quit? Y/N");
sprintf(s,"Your score is:%d",score);/*格式化输出记分器的值*/
outtextxy(120,180,s);
on=1; /*初始化开关变量*/
}

/*主函数*/
main()
{
int gdriver,gmode;
gdriver=DETECT; /*设置图形适配器*/
gmode=VGA; /*设置图形模式*/
registerbgidriver(EGAVGA_driver); /*建立独立图形运行程序*/
initgraph(&gdriver,&gmode,""); /*图形系统初试化*/
setbkcolor(14);
open(); /*调用开始界面函数*/
getch(); /*暂停*/

while(1) /*此大循环体控制游戏的反复重新进行*/
{
int driver,mode,l=320,t=400,r,a,b,dl=5,n,x=200,y=400,r1=10,dx=-2,dy=-2;/*初始化小球相关参数*/
int left[100],top[100],right[100],bottom[100],i,j,k,off=1,m,num[100][100];/*方砖阵列相关参数*/
static int pp;
static int phrase; /*一系列起开关作用的变量*/
int oop=15;
pp=1;
score=0;
driver=DETECT;
mode=VGA;
registerbgidriver(EGAVGA_driver);
initgraph(&driver,&mode,"");
setbkcolor(10);
cleardevice(); /*图形状态下清屏*/
clearviewport(); /*清除现行图形窗口内容*/
b=t+6;
r=l+60;
setcolor(1);
rectangle(0,0,639,479);
setcolor(4);
rectangle(l,t,r,b);
setfillstyle(SOLID_FILL,1);
floodfill(l+2,t+2,4);

for(i=0,k=0;i<=6;i++) /*此循环绘制方砖阵列*/
{
top[i]=k;
bottom[i]=top[i]+20;
k=k+21;
oop--;
for(j=0,m=0;j<=7;j++)
{
left[j]=m;
right[j]=left[j]+80;
m=m+81;
setcolor(4);
rectangle(left[j],top[i],right[j],bottom[i]);
setfillstyle(SOLID_FILL,j+oop);
floodfill(left[j]+1,top[i]+1,4);
num[i][j]=pp++;
}
}

while(1) /*此循环控制整个动画*/
{
while(!kbhit())
{
x=x+dx; /*小球运动的圆心变量控制*/
y=y+dy;
if(x+r1>r||x+r1<r)
{ phrase=0;}
if((x-r1<=r||x+r1<=r)&&x+r1>=l)
{
if(y<t)
phrase=1;
if(y+r1>=t&&phrase==1)
{dy=-dy;y=t-1-r1;}
}

if(off==0)
continue;

for(i=0;i<=6;i++) /*此循环用于判断、控制方砖阵列的撞击、擦除*/

for(j=0;j<=7;j++)
{
if((x+r1<=right[j]&&x+r1>=left[j])||(x-r1<=right[j]&&x-r1>=left[j]))
{
if(( y-r1>top[i]&&y-r1<=bottom[i])||(y+r1>=top[i]&&y+r1<=bottom[i] ))
{
if(num[i][j]==0)
{continue; }
setcolor(10);
rectangle(left[j],top[i],right[j],bottom[i]);
setfillstyle(SOLID_FILL,10);
floodfill(left[j]+1,top[i]+1,10);
dy=-dy;
num[i][j]=0;
score=score+10;
printf("%d\b\b\b",score);
}
}
if((y+r1>=top[i]&&y+r1<=bottom[i])||(y-r1>=top[i]&&y-r1<=bottom[i]))
{
if((x+r1>=left[j]&&x+r1<right[j])||(x-r1<=right[j]&&x-r1>left[j]))
{
if(num[i][j]==0)
{ continue;}
setcolor(10);
rectangle(left[j],top[i],right[j],bottom[i]);
setfillstyle(SOLID_FILL,10);
floodfill(left[j]+1,top[i]+1,10);
dx=-dx;
num[i][j]=0;
score=score+10;
printf("%d\b\b\b",score);
}
}
}

if(x+r1>639) /*控制小球的弹射范围*/
{dx=-dx;x=638-r1;}
if(x<=r1)
{dx=-dx;x=r1+1;}
if(y+r1>=479)
{off=0;quitwindow();break;}
if(y<=r1)
{dy=-dy;y=r1+1;}
if(score==560)
{off=0;quitwindow();break;}
setcolor(6);
circle(x,y,r1);
setfillstyle(SOLID_FILL,14);
floodfill(x,y,6);
delay(1000);
setcolor(10);
circle(x,y,r1);
setfillstyle(SOLID_FILL,10);
floodfill(x,y,10);
}

a=getch();
setcolor(10);
rectangle(l,t,r,b);
setfillstyle(SOLID_FILL,10);
floodfill(l+2,t+2,10);
if(a==77&&l<=565) /*键盘控制设定*/
{dl=20;l=l+dl;}
if(a==75&&l>=15)
{dl=-20;l=l+dl;}
if(a=='y'&&on==1)
break;
if(a=='n'&&on==1)
break;
if(a==27)
{quitwindow();off=0;}
r=l+60;
setcolor(4);
rectangle(l,t,r,b);
setfillstyle(SOLID_FILL,1);
floodfill(l+5,t+5,4);
delay(100);
}
if(a=='y'&&on==1) /*是否退出游戏*/
{break;}
if(a=='n'&&on==1)
{ continue;}
}
closegraph();

}
### 回答1: SAP标准成本差异处理逻辑是指在SAP系统中,对于标准成本与实际成本之间的差异如何进行处理。标准成本是根据企业预先设定的生产成本标准计算出来的,而实际成本则是实际发生的成本。一般来说,企业希望实际成本与标准成本之间差异能够最小化,以确保生产过程的效率。 在SAP系统中,处理标准成本差异通常包括以下几个步骤: 1. 标准成本创建:首先,需要在系统中设置和维护产品或者工作中心的标准成本,包括直接材料成本、直接人工成本、制造费用等。 2. 实际成本计算:当生产过程完成后,系统会自动计算出实际发生的成本,包括实际材料消耗、实际人工工时和实际制造费用等。 3. 标准与实际成本比较:系统会将标准成本与实际成本进行比较,计算出差异。这些差异可以分为材料差异、人工差异和制造费用差异等。 4. 差异分析和解释:管理者需要对这些差异进行分析,并解释其成因。例如,材料差异可能是由于实际材料价格上涨或者使用了不同成本的原材料而产生的。 5. 差异处理决策:根据差异的分析和解释,管理者需要决定是否对标准成本进行调整或者采取其他措施来减少差异。 6. 差异调整和报告:如果需要对标准成本进行调整,系统会自动计算出差异调整的金额。调整后的标准成本将用于后续的成本计算和分析。 总的来说,SAP标准成本差异处理逻辑包括了标准成本定义、实际成本计算、差异比较、差异分析和决策、调整和报告等步骤,通过这些处理,企业能够更好地控制成本并提高生产效率。 ### 回答2: SAP中标准成本差异处理的逻辑是指根据企业设定的标准成本和实际成本之间的差异进行分析和处理的一套流程。其处理逻辑如下: 1. 差异分析:通过比较实际成本和标准成本,计算出成本差异。成本差异可以分为直接材料差异、直接人工差异和制造费用差异等。差异可以是有利差异(低于标准成本)或不利差异(高于标准成本)。 2. 原因分析:对于成本差异,需要进一步分析其原因。原因分析可以通过多种手段,如对生产过程进行详细审查、与相关部门进行讨论等,找出成本差异背后的具体原因。原因分析的目的是为了识别并解决问题,以便在将来的生产过程中避免类似的差异。 3. 处理差异:根据成本差异的性质和原因分析的结果,制定相应的处理措施。处理差异的方式可以有多种,如调整标准成本、调整实际成本、纠正错误等。根据不同的差异情况,企业可以采取不同的策略来处理。 4. 数据更新:在处理差异后,需要及时更新相应数据,确保成本信息的准确性和及时性。数据更新是SAP标准成本差异处理的最后一步,也是为了确保后续决策的基础。 总的来说,SAP标准成本差异处理逻辑是一个不断循环的过程,通过不断的分析、原因查找、处理以及数据更新,不断优化企业的成本控制和管理,达到提高生产效率和质量的目标。 ### 回答3: SAP标准成本差异处理逻辑是指在SAP系统中,为了衡量实际成本与标准成本之间的差异,系统自动进行的处理流程。 首先,SAP系统会根据企业提供的标准成本数据,计算出每个成本对象(如产品、成本中心等)的标准成本。这些标准成本根据不同的指标进行计算,包括物料成本、人工成本、制造费用等。 然后,在实际生产过程中,SAP系统会根据实际发生的成本数据,与标准成本进行对比。如果实际成本低于标准成本,系统会产生一个“标准成本差异”项,表示实际成本与标准成本之间的差额。这个差异可以是正数,表示实际成本低于标准成本;也可以是负数,表示实际成本超过标准成本。 接下来,SAP系统会对这些标准成本差异进行处理。一般来说,有两种处理方式:一种是将标准成本差异计入成本对象的成本中,以调整实际成本;另一种是将标准成本差异计入管理会计模块的差异分析报告中,用于分析成本差异的原因。 对于第一种处理方式,SAP系统会根据成本对象的设定,将标准成本差异分摊到实际成本中,以便计算实际成本。这样做的目的是为了更准确地反映实际成本与标准成本之间的差异。 对于第二种处理方式,SAP系统会将标准成本差异记录在差异分析报告中,并提供详细的差异分析功能。通过分析差异报告,企业可以了解实际成本与标准成本之间的差异原因,从而采取相应的措施进行成本控制与改进。 总之,SAP标准成本差异处理逻辑是通过计算实际成本与标准成本之间的差异,并根据企业设定的处理方式进行差异的调整与分析。这个处理过程可以帮助企业更好地管理成本,提高生产效率。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值