查看單個文章
舊 2005-07-09, 11:03 PM   #3 (permalink)
不知道
長老會員
榮譽勳章
UID - 548
在線等級: 級別:59 | 在線時長:3787小時 | 升級還需:53小時級別:59 | 在線時長:3787小時 | 升級還需:53小時級別:59 | 在線時長:3787小時 | 升級還需:53小時級別:59 | 在線時長:3787小時 | 升級還需:53小時級別:59 | 在線時長:3787小時 | 升級還需:53小時級別:59 | 在線時長:3787小時 | 升級還需:53小時級別:59 | 在線時長:3787小時 | 升級還需:53小時級別:59 | 在線時長:3787小時 | 升級還需:53小時級別:59 | 在線時長:3787小時 | 升級還需:53小時
註冊日期: 2002-12-06
住址: 桃園
文章: 8606
現金: 1491 金幣
資產: 1183995 金幣
預設

語法:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
String num;
int n=0;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::N1Click(TObject *Sender)
{
  ServerSocket1->Active=true;  
}
//---------------------------------------------------------------------------

void __fastcall TForm1::N2Click(TObject *Sender)
{
  String sh;
  if(InputQuery("連線","輸入 電腦名稱: ",sh));
    if(sh.Length()>0)
    {
      ClientSocket1->Host=sh;
      ClientSocket1->Active=true;
    }
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ServerSocket1ClientConnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
  Memo1->Lines->Add(Socket->RemoteHost+"上來了");
  ToolButton1->Enabled=false;
  while(1){
    InputQuery("輸入","輸入 您的數字(4位數): ",num);
    for(int i=1;i<=num.Length()-1;i++)
      for(int j=i+1;j<=num.Length();j++)
        if(num.SubString(i,1)==num.SubString(j,1)) {
          ShowMessage("數字不合,請重新輸入");
          num="";
        }
    if(num.Length()==4) break;
  }
  Memo1->Lines->Add("您的數字是"+num);
  Memo1->Lines->Add("您先猜");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Connect(TObject *Sender,
      TCustomWinSocket *Socket)
{
  Memo1->Lines->Add("已連到"+Socket->RemoteHost);
  ToolButton1->Enabled=false;
  while(1){
    InputQuery("輸入","輸入 您的數字(4位數): ",num);
    for(int i=1;i<=num.Length()-1;i++)
      for(int j=i+1;j<=num.Length();j++)
        if(num.SubString(i,1)==num.SubString(j,1)) {
          ShowMessage("數字不合,請重新輸入");
          num="";
        }
    if(num.Length()==4) break;
  }
  Memo1->Lines->Add("您的數字是"+num);
  SpeedButton1->Enabled=false;
  Edit1->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton1Click(TObject *Sender)
{
  if(ServerSocket1->Active)
    ServerSocket1->Socket->Connections[0]->SendText(Edit1->Text);
  else
    ClientSocket1->Socket->SendText(Edit1->Text);
  SpeedButton1->Enabled=false;
  Edit1->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
      TCustomWinSocket *Socket)
{
  int an=0,bn=0;
  String s=Socket->ReceiveText();
  if(n==1){
    Memo1->Lines->Add(Socket->RemoteHost+" 猜: "+s);
    for(int i=1;i<=4;i++){
      if(s.SubString(i,1)==num.SubString(i,1)) an++;
      for(int j=1;j<=4;j++)
        if(s.SubString(i,1)==num.SubString(j,1)) if(i!=j)bn++;
    }
    if(an==4) {
      ServerSocket1->Socket->Connections[0]->SendText("4A");
      Memo1->Lines->Add(Socket->RemoteHost+" 猜對了...");
      SpeedButton1->Enabled=false;
      Edit1->Enabled=false;
    }else{
      ServerSocket1->Socket->Connections[0]->SendText(s+" => "+IntToStr(an)+"A"+IntToStr(bn)+"B");
      Edit1->Text="";
      Memo1->Lines->Add("換您猜... ");
      SpeedButton1->Enabled=true;
      Edit1->Enabled=true;
      n=0;
    }
  }else{
    Memo1->Lines->Add(s);
    n=1;
    if(s=="4A"){
      Memo1->Lines->Add("您猜對了");
      SpeedButton1->Enabled=false;
      Edit1->Enabled=false;
    }
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Read(TObject *Sender,
      TCustomWinSocket *Socket)
{
  int an=0,bn=0;
  String s=Socket->ReceiveText();
  if(n==0){
    for(int i=1;i<=4;i++){
      if(s.SubString(i,1)==num.SubString(i,1)) an++;
      for(int j=1;j<=4;j++)
        if(s.SubString(i,1)==num.SubString(j,1)) if(i!=j)bn++;
    }
    Memo1->Lines->Add(Socket->RemoteHost+" 猜: "+s);
    if(an==4) {
      ClientSocket1->Socket->SendText("4A");
      Memo1->Lines->Add(Socket->RemoteHost+" 猜對了...");
      SpeedButton1->Enabled=false;
      Edit1->Enabled=false;
    }else{
      ClientSocket1->Socket->SendText(s+" => "+IntToStr(an)+"A"+IntToStr(bn)+"B");
      Edit1->Text="";
      Memo1->Lines->Add("換您猜... ");
      SpeedButton1->Enabled=true;
      Edit1->Enabled=true;
      n=1;
    }
  }else{
    Memo1->Lines->Add(s);
    n=0;
    if(s=="4A"){
      Memo1->Lines->Add("您猜對了");
      SpeedButton1->Enabled=false;
      Edit1->Enabled=false;
    }
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton2Click(TObject *Sender)
{
  if(ServerSocket1->Active)
    ServerSocket1->Active=false;
  else
    ClientSocket1->Active=false;
  ToolButton1->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ServerSocket1ClientDisconnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
  Memo1->Lines->Add(Socket->RemoteHost+"離線");
  ToolButton1->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Disconnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
  Memo1->Lines->Add(Socket->RemoteHost+"離線");
  ToolButton1->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::SpeedButton3Click(TObject *Sender)
{
  ServerSocket1->Close();
  ClientSocket1->Close();
  Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1Change(TObject *Sender)
{
    for(int i=1;i<Edit1->Text.Length();i++)
        if(Edit1->Text.SubString(Edit1->Text.Length(),1)==Edit1->Text.SubString(i,1)){
            Edit1->Text=Edit1->Text.Delete(Edit1->Text.Length(),1);
            Edit1->SelStart=Edit1->Text.Length();
        }
}
//---------------------------------------------------------------------------
__________________
地獄變現記
[人身得來不易,願大家能尊重生命--勿傷胎命][好淫者請好自為之吧--割鳥]
南泉禪師道:
道不屬知,不屬不知。知是妄覺,不知是無記。若真達不疑之道,猶如太虛,廓然蕩豁,豈可強是非邪?」
德山宣鑒禪師:
「如果明白無事,則勿妄求,妄求而得,亦非得也。汝但無事於心,無心於事,則虛而靈,空而妙。若毛端許,言之本末者,皆為自欺。何故?毫氂繫念,三塗業因。瞥爾情生,萬劫羈鎖。聖名凡號,盡是虛聲。殊相劣形,皆是幻色。汝欲求之,得無累乎?」
不知道 目前離線  
送花文章: 5469, 收花文章: 5341 篇, 收花: 24549 次
回覆時引用此帖