⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wuziqi.bak

📁 vb做的银行家算法 
💻 BAK
字号:
//       This is our Lesson
  #define What 1
	 //  if 1  then man and man if 2 then man and computer
  #define GRAPH "d:\\tc3\\bgi"
       // graphics
      #include<stdio.h>
      #include<iostream.h>
      #include <graphics.h>
      #include <conio.h>
      #include <dos.h>
   int xx[21],yy[21];
   int xy[21][21];
   int sex=1;
       int    isitwin(int with)
	      {
		 int i,j,n,isa,isb,isc,isd,ise,isf,isg,ish;
		    for(i=0;i<=20;i++)
		       for(j=0;j<=20;j++)
			  {
			   if(xy[i][j]==with)
			      {
			       isa=0;isb=0;isc=0;isd=0;ise=0;isf=0;isg=0;ish=0;
				  for(n=0;n<5;n++)
				   {
				     if(xy[i-n][j-n]==with) {isa++; if(isa==5) return(1);} else isa=0;
				     if(xy[i][j-n]==with) {isc++; if(isc==5) return(1);} else isc=0;
				     if(xy[i+n][j-n]==with) {isb++; if(isb==5) return(1);} else isb=0;
				     if(xy[i-n][j]==with) {isd++; if(isd==5) return(1);} else isd=0;
				     if(xy[i+n][j]==with) {ise++; if(ise==5) return(1);} else ise=0;
				     if(xy[i-n][j+n]==with) {isf++; if(isf==5) return(1);} else isf=0;
				     if(xy[i][j+n]==with) {isg++; if(isg==5) return(1);} else isg=0;
				     if(xy[i+n][j+n]==with) {ish++; if(ish==5) return(1);} else ish=0;
				   }
			      }
			  }
		return(0);
	      }

  class  Line
    {
      public:
	void Lt(int x,int y,int x1,int y1,int co,int co1)
	   {
	   setcolor(co);
	   line(x,y,x1,y);
	   line(x,y,x,y1);
	   setcolor(co1);
	   line(x1,y,x1,y1);
	   line(x,y1,x1,y1);
	   }
	void Wg(int x,int y,int co)
	      {
		int n;
		setcolor(co);
		for(n=0;n<=20;n++)
		   {
		    line(x,y+n*20,x+400,y+n*20);
		    line(x+n*20,y,x+n*20,y+400);
		   }
	      }
       protected:
	     int ndd;
       };
    class QiZi     //    This is QiZi
       {
	 public:

	    red(int x,int y)
	      {
		int nn;
		  setcolor(4);
		for(nn=0;nn<=8;nn++)
		  circle(x,y,nn);
		  setcolor(0);
		  circle(x,y,nn);
	      }
	    blue(int x,int y)
	      {
		 int nn;
		    setcolor(1);
		 for(nn=0;nn<=8;nn++)
		    circle(x,y,nn);
		    setcolor(0);
		    circle(x,y,nn);
	      }
	    protected:
	      int dsd;
       };
	      putqizi(int x,int y,int with)
	       {
		  int lx=200,ly=40;
		      QiZi lqi;
		  if(with==1)
		     lqi.red(lx+x*20,40+y*20);
		  if(with==2)
		     lqi.blue(lx+x*20,40+y*20);
	       }
    class Mouse
	 {
	   public:
	     void Hide()
		 {
		  union REGS in,ou;
			in.x.ax=2;
			int86(0x33,&in,&ou);
		 }
	     void Show()
		 {
		  union REGS in,ou;
			in.x.ax=1;
			int86(0x33,&in,&ou);
		 }
	      Mousexy(int *tmx,int *tmy,int *wi)
		 {
		     union REGS in,ou;
			   in.x.ax=3;
			   int86(0x33,&in,&ou);
			   *tmx=ou.x.cx;
			   *tmy=ou.x.dx;
			   *wi=ou.x.bx;
		 }
	 Mouqizixy( int *qx,int *qy)
		 {
		   int lx=200,ly=40;
		   int mx,my,bx;
		   Mousexy(&mx,&my,&bx);
		    if(bx==1)
		     {
		       *qx=(mx-lx-5)/20+1;
			  *qy=(my-ly-5)/20+1;
		       if(xy[*qx][*qy]==1||xy[*qx][*qy]==2);
			    else
			    {
				if (sex%2==0)
				     {	xy[*qx][*qy]=1; Hide();  putqizi(*qx,*qy,1); Show();  }
				    else
				    {
				      if (What==1) { xy[*qx][*qy]=2; Hide(); putqizi(*qx,*qy,2); Show(); }
					 else

      //    Man And Computer.........
       {






       }
				    }
			     //	delay(70);
				sex++;
			    }
		     }

		 }
	    protected:
	       int lsd;
	 };
  void main()
  {
       int gd,gm,mx=0,my=0,wi;
       int i,j,key;
       char *xx,*yy;
	    gd=DETECT;
	    initgraph(&gd,&gm,GRAPH);
	    setbkcolor(7);
	    Line lin;
	    Mouse Mou;
	    QiZi qi;
      //           xy[21][21]
	      for(i=1;i<=20;i++)
		 for(j=1;j<=20;j++)
		    xy[i][j]=0;
		lin.Lt(10,10,getmaxx()-10,getmaxy()-10,8,15);
		lin.Wg(200,40,4);
	     Mou.Show();

    for(;;)
      {
	  Mou.Mousexy(&mx,&my,&wi);
       if(wi==1)
	       {
		Mou.Mouqizixy(&mx,&my);
		 setcolor(1);
		if (isitwin(1))
		      {
			outtextxy(30,getmaxy()-50,"red Win");
			 outtextxy(40,200,"Game Over....");
			  delay(8003);
			 break;
		      }
		if (isitwin(2))
		      {
			outtextxy(30,getmaxy()-50,"Blue Win");
			  outtextxy(40,200,"Game Over....");
			delay(8002); break;
		       }
		  Mou.Mouqizixy(&mx,&my);

	 //	setcolor(2);
	   //	sprintf(xx,"%d",isitwin(1));
	    //	outtextxy(10,40+sex*10,xx);
	     //  }
	    }

	if(kbhit())
	   {
	    if (key=getch()==13)
	      {
		closegraph();
		 for(i=0;i<=20;i++)
		  { printf("\n");
		     for(j=0;j<=20;j++)
		     printf("%d ",xy[j][i]);
		  }
	      getch();
	      }
	   break;
	   }
      }           //  for
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -