int main() { int i=5,j=7,t=65,k; memset(olde,0,sizeof(olde)); HideCursor(); srand(time(NULL)); while(1) { k=rand()%4+1; switch(k) { case 1:i-=1;panduan(&i,&j,k);gotoxy(cur[i][j],i+1);break; case 2:i+=1;panduan(&i,&j,k);gotoxy(cur[i][j],i+1);break; case 3:j+=1;panduan(&i,&j,k);gotoxy(cur[i][j],i+1);break; case 4:j-=1;panduan(&i,&j,k);gotoxy(cur[i][j],i+1);break; } printf("%c",t++); Sleep(1000); } getch(); }
int panduan(struct phb a[] ) /*判断一次输赢的函数 */ { int b,c,d; zs++; /*玩家玩的总次数计数 */ printf("请选择你所出的并按Enter确定\n"); printf("1:石头\n2:剪刀\n3:布\n"); printf("请选择:"); scanf("%d",&b); srand((unsigned int)time(NULL)); /*随机数产生函数初始化*/ c=rand()%3+1; /*产生介于1到3之间的随机数,模拟出拳的随机性 */ switch(b) /*switch语句用于多选择的的流程中 */ { case 1:printf(" 石头--");break; case 2:printf(" 剪刀--");break; case 3:printf(" 布--");break; } switch(c) { case 1:printf(" 石头\n");break; case 2:printf(" 剪刀\n");break; case 3:printf(" 布\n");break; } if((b==1&&c==2)||(b==2&&c==3)||(b==3&&c==1)) /*玩家赢的三种情况 */ { a[0].df++; /*玩家赢的次数加一*/ ys++; /*也用于记录玩家赢的次数 不过用于计算胜率 */ printf("\n\t\t恭喜你!赢了哦!\n\n"); } else if(b==c) printf("\n\t\t平局了!加油哦!\n\n"); else { a[0].df--; /*玩家的赢的次数减一 */ printf("\n\t\t非常抱歉!你输了,继续来战呀!\n\n"); } a[0].sl=ys/zs; /*计算胜率 */ a[0].mal=ys; /*记录下玩家赢的次数 ,准备录入文件中 */ a[0].num=zs; /*记录玩的次数,准备录入文件中 */ printf("是否还进行游戏\n\n1:退出游戏\n2:接着进行游戏\n3:退出游戏并查看排行榜\n"); printf("请选择:"); scanf("%d",&d); /*玩一次后,可在此选择是否继续 */ if(d==2) d=panduan(a); return d; }
int main() { int n,i,j,a[11]; scanf("%d",&n); for(i=1;i<=n;i++) { total=0; scanf("%d%d",&m,&w); for(j=0;j<=m-1;j++) scanf("%d",&a[j]); for(j=0;j<=m-1;j++) { panduan(a,j,0,1); } printf("%d\n",total); } return 0; }
int main() { int a; struct phb tz[6]={{"a",0,0},{"b",0,0},{"c",0,0},{"d",0,0},{"e",0,0},{"f",0,0}};/*结构体的初始化*/ a=init(); if(a==1) exit(0); /*玩家选择1,退出程序 */ if(a==3) a=show(tz); /*玩家选择三 显示排行榜 */ while(a==2) /*进入一个死循环 */ { baocunxingming(tz[0].nm,tz); /*保存玩家名字 */ a=panduan(tz); /*判断一次输赢 */ baocunshenglv(tz); /*计算该玩家的胜率 */ xierucuowu(tz); /*数据写入错误时提示 否则关闭所有数据流 */ if(a==3) a=show(tz); } return 0; }
void panduan(int a[],int i,int s,int jl) { int j,t; if (total==w) return; s+=a[i]; if (s>w) {if (s-a[i]>total) total=s-a[i];return;} t=a[i]; a[i]=0; if (jl==m) {total=s;a[i]=t;return;} for(j=0;j<=m-1;j++) { if (a[j]!=0) { panduan(a,j,s,jl+1); } } a[i]=t; }
void dfs(int x,int y,int k) { if(x==n+1) { if(k>count) count=k; return; } if(g[x][y]=='.'&&panduan(x,y)) { g[x][y]='W'; if(y==n) dfs(x+1,1,k+1); else dfs(x,y+1,k+1); g[x][y]='.'; } if(y==n) dfs(x+1,1,k); else dfs(x,y+1,k); return ; }