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

📄 form1.cs

📁 VS2008上做的欢乐五子棋。一个简单的小游戏。
💻 CS
📖 第 1 页 / 共 2 页
字号:
          for(j=0;j<192;j++)
          {
            if(win[i,j] == 5)
              if(i==0)      
              {
                pwin = true;
                over = true;
                break;
              }
              else           
              {
                cwin = true;
                over = true;
                break;
              }
            if(over)
              break;
          }
        g.DrawString("该您下了",new Font("宋体",9),new SolidBrush(Color.Red),85,400);
      }
      for(i=0;i<=9;i++)
        for(j=0;j<=9;j++)
        {
          if(board[i,j] == 0)  
          {
            g.DrawImage(green,i*40+2,j*40+2,36,36);
          }
          if(board[i,j] == 1)  
          {
            g.DrawImage(purple,i*40+2,j*40+2,36,36);
          }
        }

      if(pwin)
        g.DrawString("您赢了!按下 F1 可重新进行游戏..",new Font("宋体",9),new SolidBrush(Color.Red),85,400);
      if(cwin)
        g.DrawString("电脑赢了!按下 F1 可重新进行游戏..",new Font("宋体",9),new SolidBrush(Color.Red),85,400);
      if(tie)
        g.DrawString("不分胜负!按下 F1 可重新进行游戏..",new Font("宋体",9),new SolidBrush(Color.Red),85,400);
      g.Dispose();
    }

    private void ComTurn()
    {
      for(i=0;i<=9;i++)      
        for(j=0;j<=9;j++)
        {
          pgrades[i,j]=0;
          if(board[i,j] == 2)
            for(k=0;k<192;k++)
              if(ptable[i,j,k])
              {
                switch(win[0,k])
                {
                  case 1:
                    pgrades[i,j]+=5;
                    break;
                  case 2:
                    pgrades[i,j]+=50;
                    break;
                  case 3:
                    pgrades[i,j]+=100;
                    break;
                  case 4:
                    pgrades[i,j]+=400;
                    break;
                }
              }
        }
      for(i=0;i<=9;i++)    
        for(j=0;j<=9;j++)
        {
          cgrades[i,j]=0;
          if(board[i,j] == 2)
            for(k=0;k<192;k++)
              if(ctable[i,j,k])
              {
                switch(win[1,k])
                {
                  case 1:
                    cgrades[i,j]+=5;
                    break;
                  case 2:
                    cgrades[i,j]+=50;
                    break;
                  case 3:
                    cgrades[i,j]+=100;
                    break;
                  case 4:
                    cgrades[i,j]+=400;
                    break;
                }
              }
        }
      if(start)           
      {
        if(board[4,4]==2)
        {
          m = 4;
          n = 4;
        }
        else
        {
          m = 5;
          n = 5;
        }
        start = false;
      }
      else
      {
        for(i=0;i<10;i++)
          for(j=0;j<10;j++)
            if(board[i,j] == 2)
            {
              if(cgrades[i,j]>=cgrade)
              {
                cgrade = cgrades[i,j];   
                mat = i;
                nat = j;
              }
              if(pgrades[i,j]>=pgrade)
              {
                pgrade = pgrades[i,j];   
                mde = i;
                nde = j;
              }
            }
        if(cgrade>=pgrade)  
        {
          m = mat;
          n = nat;
        }
        else               
        {
          m = mde;
          n = nde;
        }
      }
      cgrade = 0;		
      pgrade = 0;
      board[m,n] = 1;    
      ccount++;
      if((ccount == 50) && (pcount == 50))
      {
        tie = true;
        over = true;
      }
      for(i=0;i<192;i++)
      {
        if(ctable[m,n,i] && win[1,i] != 7)
          win[1,i]++;
        if(ptable[m,n,i])
        {
          ptable[m,n,i] = false;
          win[0,i]=7;
        }
      }
      player = true;    
      computer = false;
    }

    private void Form1_Load(object sender, System.EventArgs e)
    {
      start = true;
      this.Width = 410;
      this.Height = 470;
      
      for(i=0;i<10;i++)         
        for(j=0;j<10;j++)
          board[i,j] = 2;
      for(i=0;i<10;i++)        
        for(j=0;j<6;j++)
        {
          for(k=0;k<5;k++)
          {
            ptable[j+k,i,icount] = true;
            ctable[j+k,i,icount] = true;
          }
          icount++;
        }
      for(i=0;i<10;i++)       
        for(j=0;j<6;j++)
        {
          for(k=0;k<5;k++)
          {
            ptable[i,j+k,icount] = true;
            ctable[i,j+k,icount] = true;
          }
          icount++;
        }
      for(i=0;i<6;i++)        
        for(j=0;j<6;j++)
        {
          for(k=0;k<5;k++)
          {
            ptable[j+k,i+k,icount] = true;
            ctable[j+k,i+k,icount] = true;
          }
          icount++;
        }
      for(i=0;i<6;i++)          
        for(j=9;j>=4;j--)
        {
          for(k=0;k<5;k++)
          {
            ptable[j-k,i+k,icount] = true;
            ctable[j-k,i+k,icount] = true;
          }
          icount++;
        }

      Random rdm1 = new Random(unchecked((int)DateTime.Now.Ticks));
      
      if(rdm1.Next()%2==0)
        computer = true;
      else 
        player = true;
      icount = 0;
    }

    private void Form1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e)
    {
      if(!over)
        if(player)
        {
          if(oldx<400 && oldy<400)
          {           
            m = (int)Math.Floor(oldx/40);
            n = (int)Math.Floor(oldy/40);
            if(board[m,n] == 2)    
            {
              board[m,n] = 0;	
              pcount++;
              if((ccount == 50) && (pcount == 50))
              {
                tie = true;
                over = true;
              }
              for(i=0;i<192;i++)
              {
                if(ptable[m,n,i] && win[0,i] != 7)
                  win[0,i]++;
                if(ctable[m,n,i])
                {
                  ctable[m,n,i] = false;
                  win[1,i]=7;
                }
              }
              player = false;      
              computer = true;
            }
          }
        }
      updatePaint();
    }

    private void Form1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
    {
      if(e.KeyCode==Keys.Escape)
        this.Close();
      if(e.KeyCode==Keys.F1)
        startGame();
      updatePaint();
    }

    private void Form1_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e)
    {
      oldx = e.X;
      oldy = e.Y;
    }

    private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
    {      
      updatePaint();
    }

    private void menuItem2_Click(object sender, System.EventArgs e)
    {
      startGame();
    }

    private void menuItem4_Click(object sender, System.EventArgs e)
    {
      this.Close();
    }

    private void menuItem6_Click(object sender, System.EventArgs e)
    {
      MessageBox.Show(this,"[五子棋 C#] version 1.0\r\n作者:萧寒(QQ:410000)\r\nEMAIL:Chinasf@hotmail.com","关于五子棋",MessageBoxButtons.OK ,System.Windows.Forms.MessageBoxIcon.Information);
    }

    private void menuItem7_Click(object sender, System.EventArgs e)
    {      
      MessageBox.Show(this,"下载地址:http://www.bssoft.com.cn/WZQ.rar\r\n按[确定]后下载地址将保存在剪贴板内!","获取delphi 版本五子棋源码",MessageBoxButtons.OK ,System.Windows.Forms.MessageBoxIcon.Information);
      Clipboard.SetDataObject("http://www.bssoft.com.cn/WZQ.rar", true);
    }
  }
}

⌨️ 快捷键说明

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