
黑白棋游戏#include"graphicsh"/图形系统头文件/#defineLEFT0x4b00/光标左键值/#defineRIGHT0x4d00/光标右键值/#defineDOWN0x5000/光标下键值/#defineUP0x4800/光标上键值/#defineESC0x011b/ESC键值/#defineENTER0x1c0d/回车键值/inta[8][8]={0},key,score1,score2;/具体分数以及按键与存放棋子的变量/charplayone[3],playtwo[3];/两个人的得分转换成字符串输出/voidplaytoplay(void);/人人对战函数/voidDrawQp(void);/画棋盘函数/voidSetPlayColor(intx);/设置棋子第一次的颜色/voidMoveColor(intx,inty);/恢复原来棋盘状态/intQpChange(intx,inty,intz);/判断棋盘的变化/voidDoScore(void);/处理分数/voidPrintScore(intn);/输出成绩/voidplayWin(void);/输出胜利者信息//主函数/voidmain(void){intgd=DETECT,gr;initgraph(&gd,&gr,"c:\\tc");/初始化图形系统/DrawQp();/画棋盘/playtoplay();/人人对战/getch();closegraph();/关闭图形系统/}voidDrawQp()/画棋盘/{inti,j;score1=score2=0;/棋手一开始得分都为0/setbkcolor(BLUE);for(i=100;i=64-score1-score2)/如果尝试超过空格数则停步/{MoveColor(x,y);fillellipse(x,y,15,15);break;}elsecontinue;/如果按键无效/}DoScore();/分数的改变/break;/棋盘变化了,则轮对方走棋/}else/已经有棋子就继续按键/continue;}else/四个方向按键的判断/if(key==LEFT&&x>120)/左方向键/{MoveColor(x,y);fillellipse(x,y,15,15);SetPlayColor(t);x-=40;fillellipse(x,y,15,15);}elseif(key==RIGHT&&x80)/右方向键/{MoveColor(x,y);fillellipse(x,y,15,15);SetPlayColor(t);x+=40;fillellipse(x,y,15,15);}elseif(key==UP&&y>120)/上方向键/{MoveColor(x,y);fillellipse(x,y,15,15);SetPlayColor(t);y-=40;fillellipse(x,y,15,15);}elseif(key==DOWN&&y1)/判断左边/{for(k=j-1;k>=0;k--)if(a[i][k]==a[i][j]||!a[i][k])break;if(a[i][k]!=0&&k>=0){for(kk=j-1;kk>k&&k>=0;kk--){a[i][kk]=a[i][j];fillellipse(120+i40,120+kk40,15,15);}if(kk!=j-1)yes=1;}}if(i1)/判断上边/{for(k=i-1;k>=0;k--)if(a[k][j]==a[i][j]||!a[k][j])break;if(a[k][j]!=0&&k>=0){for(kk=i-1;kk>k&&k>=0;kk--){a[kk][j]=a[i][j];fillellipse(120+kk40,120+j40,15,15);}if(kk!=i-1)yes=1;}}if(i>1&&j=0&&kk=0&&kkk&&k>=0;ii--,jj++){a[ii][jj]=a[i][j];fillellipse(120+ii40,120+jj40,15,15);}if(ii!=i-1)yes=1;}}if(i1)/左下/{for(k=i+1,kk=j-1;k=0;k++,kk--)if(a[k][kk]==a[i][j]||!a[k][kk])break;if(a[k][kk]!=0&&k=0){for(ii=i+1,jj=j-1;ii1&&j>1)/左上/{for(k=i-1,kk=j-1;k>=0&&kk>=0;k--,kk--)if(a[k][kk]==a[i][j]||!a[k][kk])break;if(a[k][kk]!=0&&k>=0&&kk>=0){for(ii=i-1,jj=j-1;ii>k&&k>=0;ii--,jj--){a[ii][jj]=a[i][j];fillellipse(120+ii40,120+jj40,15,15);}if(ii!=i-1)yes=1;}}if(iscore1)/开始判断最后的结果/outtextxy(100,50,"blackwin!");elseif(score2#include#include#include#include#defineLEFT0x4b00#defineRIGHT0x4d00#defineDOWN0x5000#defineUP0x4800#defineESC0x011b#defineSPACE0x3920#defineBILI20#defineJZ4#defineJS3#defineN19intbox[N][N];intstep_x,step_y;intkey;intflag=1;voiddraw_box();voiddraw_cicle(intx,inty,intcolor);voidchange();voidjudgewho(intx,inty);voidjudgekey();intjudgeresult(intx,inty);voidattentoin();voidattention(){charch;window(1,1,80,25);textbackground(LIGHTBLUE);textcolor(YELLOW);clrscr();gotoxy(15,2);printf("游戏 *** 作规则:");gotoxy(15,4);printf("PlayRules:");gotoxy(15,6);printf("1、按左右上下方向键移动棋子");gotoxy(15,8);printf("1PressLeft,Right,Up,DownKeytomovePiece");gotoxy(15,10);printf("2、按空格确定落棋子");gotoxy(15,12);printf("2PressSpacetoplacethePiece");gotoxy(15,14);printf("3、禁止在棋盘外按空格");gotoxy(15,16);printf("3DONOTpressSpaceoutsideofthechessboard");gotoxy(15,18);printf("你是否接受上述的游戏规则(Y/N)");gotoxy(15,20);printf("DoyouaccepttheabovePlayingRules[Y/N]:");while(1){gotoxy(60,20);ch=getche();if(ch=='Y'||ch=='y')break;elseif(ch=='N'||ch=='n'){window(1,1,80,25);textbackground(BLACK);textcolor(LIGHTGRAY);clrscr();exit(0);}gotoxy(51,12);printf("");}}voiddraw_box(){intx1,x2,y1,y2;setbkcolor(LIGHTBLUE);setcolor(YELLOW);gotoxy(7,2);printf("Left,Right,Up,DownKEYtomove,Spacetoput,ESC-quit");for(x1=1,y1=1,y2=18;x1=1;i--)if(box[i][j]==0){draw_circle(step_x,step_y,LIGHTBLUE);break;}if(i18)break;else{for(i=step_x+1,j=step_y;i18)break;step_x=i;judgewho(step_x,step_y);break;}caseDOWN:if((step_y+1)>18)break;else{for(i=step_x,j=step_y+1;j18)break;step_y=j;judgewho(step_x,step_y);break;}caseUP:if((step_y-1)=1;j--)if(box[i][j]==0){draw_circle(step_x,step_y,LIGHTBLUE);break;}if(j=1&&step_x=1&&step_y=1;j--){if(box[j][k]==flag)n1++;elsebreak;}/水平向右数/for(j=x,k=y;j=5){return(1);break;}/垂直向上数/n1=0;n2=0;for(j=x,k=y;k>=1;k--){if(box[j][k]==flag)n1++;elsebreak;}/垂直向下数/for(j=x,k=y;k=5){return(1);break;}/向左上方数/n1=0;n2=0;for(j=x,k=y;j>=1,k>=1;j--,k--){if(box[j][k]==flag)n1++;elsebreak;}/向右下方数/for(j=x,k=y;j=5){return(1);break;}/向右上方数/n1=0;n2=0;for(j=x,k=y;j=1;j++,k--){if(box[j][k]==flag)n1++;elsebreak;}/向左下方数/for(j=x,k=y;j>=1,k=5){return(1);break;}return(0);break;}}voidmain(){intgdriver=VGA,gmode=VGAHI;clrscr();attention();initgraph(&gdriver,&gmode,"c:\\tc");/setwritemode(XOR_PUT);/flag=1;draw_box();do{step_x=0;step_y=0;/draw_circle(step_x,step_y,8);/judgewho(step_x-1,step_y-1);do{while(bioskey(1)==0);key=bioskey(0);judgekey();}while(key!=SPACE&&key!=ESC);}while(key!=ESC);closegraph();}
//3行4列数组中,查找行最大,列最小
#include <iostreamh>
int num[3][4];
//查找指定行中的最大数的索引
int FindMax(int x)
{
int max;
max = num[x][0] > num[x][1] 0 : 1;//判断行中前两个数哪个大,索引结果保存在max中
max = max > num[x][2] max : 2;
max = max > num[x][3] max : 3;
return max;
}
//查找指定列中的最小数的索引
int FindMin(int x)
{
int min;
min = num[0][x] < num[1][x] 0 : 1;//判断列中前两个数哪个小
min = min < num[2][x] min : 2;
return min;
}
void main()
{
//初始化数组,//中数组用于测试
//int count=0;
cout<<"请输入3行4列数组"<<endl;
for(int x =0; x<3; x++)
{
for(int y=0; y<4;y++)
{
//num[x][y] = count++;
cin>>num[x][y];
}
}
//先找出每行中最大的数的索引
for(int i=0; i<4;i++)
{
int max = FindMax(i);
//再判断i行,max列这个数在指定列中是否为最小
int min = FindMin(max);
if(i == min) //若最小数的索引和当前查找行的索引相同
{
//这个数是行最大,列最小
cout<<"最大行,最小列的数值为:"<<num[min][max]<<endl;
}
}
}
简单易 *** 作的程序如下:
输入几月几日,计算是2018年的第几天。
#include <stdioh>
int main(int argc ,char argv[]){
int month,day,days=0;
printf("输入月");
scanf("%d",&month);
printf("输入日");
scanf("%d",&day);
switch(month-1){
case 11:days+=30;
case 10:days+=31;
case 9:days+=30;
case 8:days+=31;
case 7:days+=31;
case 6:days+=30;
case 5:days+=31;
case 4:days+=30;
case 3:days+=31;
case 2:days+=29;
case 1:days+=31;
default:days+=day;break;
}
printf("这一天是2018年的第%d天\n",days);
return 0;
C的数据类型包括:整型、字符型、实型或浮点型(单精度和双精度)、枚举类型、数组类型、结构体类型、共用体类型、指针类型和空类型。
:C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。
当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。在学习中,对此合理进行分类,找出它们与数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。
以上就是关于c语言小程序全部的内容,包括:c语言小程序、c语言3行4列数组找出 行最大列最小程序、C语言最简单程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)