ホームページ >バックエンド開発 >PHPチュートリアル >php_PHP で書かれたデスクトップ アプリケーションのチュートリアル

php_PHP で書かれたデスクトップ アプリケーションのチュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:59:181297ブラウズ


PHP コンテンツを剪定板に複製 PHP 代コード:

$winmain=wb_create_window(null,AppWindow,'21点游戏',WBC_CENTER,WBC_CENTER,800,495,0,0);
wb_create_control($winmain,Label,'庄家',20,15,40,30,LB_1,0,0,0);
wb_create_control($winmain,Label,'玩家',20,200,40,30,LB_2,00,0,0);
wb_create_control($winmain,Frame,'',80,40,120,150,FR_PC_1,0,0,0);
wb_create_control($winmain,Frame,'',220,40,120,150,FR_PC_2,0,0,0);
wb_create_control($winmain,Frame,'',360,40,120,150,FR_PC_3,0,0,0);
wb_create_control($winmain,Frame,'',500,40,120,150,FR_PC_4,0,0,0);
wb_create_control($winmain,Frame,'',640,40,120,150,FR_PC_5,0,0,0);
wb_create_control($winmain,Frame,'',645,230,120,150,FR_U_5,0,0,0);
wb_create_control($winmain,Frame,'',500,230,120,150,FR_U_4,0,0,0);
wb_create_control($winmain,Frame,'',360,230,120,150,FR_U_3,0,0,0);
wb_create_control($winmain,Frame,'',220,230,120,150,FR_U_2,0,0,0);
wb_create_control($winmain,Frame,'',80,230,120,150,FR_U_1,0,0,0);
wb_create_control($winmain,Label,'',35,305,25,20,LB_U_T,0,0,0);
wb_create_control($winmain,Label,'',35,110,25,20,LB_P_T,0,0,0);
wb_create_control($winmain,PushButton,'発行牌',320,400,70,25,B_GO,0x00000002,0,0);
wb_create_control($winmain,PushButton,'停止',435,400,70,25,B_CHANGE,0x00000002,0,0);
wb_create_control($winmain,Label,'',110,95,60,60,LB_PC_1,0x00000800,0,0);
wb_create_control($winmain,Label,'',250,95,60,60,LB_PC_2,0x00000800,0,0);
wb_create_control($winmain,Label,'',390,95,60,60,LB_PC_3,0x00000800,0,0);
wb_create_control($winmain,Label,'',530,95,60,60,LB_PC_4,0x00000800,0,0);
wb_create_control($winmain,Label,'',670,95,60,60,LB_PC_5,0x00000800,0,0);
wb_create_control($winmain,Label,'',110,285,60,60,LB_U_1,0x00000800,0,0);
wb_create_control($winmain,Label,'',250,285,60,60,LB_U_2,0x00000800,0,0);
wb_create_control($winmain,Label,'',390,285,60,60,LB_U_3,0x00000800,0,0);
wb_create_control($winmain,Label,'',530,285,60,60,LB_U_4,0x00000800,0,0);
wb_create_control($winmain,Label,'',670,285,60,60,LB_U_5,0x00000800,0,0);
wb_create_control($winmain,Label,'',70,20,90,20,PC_MON,0,0,0);
wb_create_control($winmain,Label,'',70,205,90,20,U_MON,0,0,0);

point_include.php文件


for ($i=1;$i<=13;$i++){
スイッチ($i){
  case 1j=1;$key='A';break;
  case 11j=10;$key='J';break;
  case 12j=10;$key='Q';break;
  case 13j=10;$key='K';break;
  デフォルト:
   $key=$j=$i;
}
$card["黑n桃n$key"]=$j;
$card["红n桃n$key"]=$j;
$card["梅n花n$key"]=$j;
$card["方n片n$key"]=$j;
}
$contorl_id=array(
'B_GO'=>1001、'B_CHANGE'=>1002、
'ME_START'=>2001、'ME_REMON'=>2002、'ME_AUTHOR'=>2003、'ME_QUIT'=>IDCLOSE、
'LB_1'=>3001、'LB_2'=>3002、'LB_U_T'=>3003、'LB_P_T'=>3004、
'PC_MON'=>3005、'U_MON'=>3006、
'LB_PC_1'=>3101、'LB_PC_2'=>3102、'LB_PC_3'=>3103、'LB_PC_4'=>3104、'LB_PC_5'=>3105、
'LB_U_1'=>3201、'LB_U_2'=>3202、'LB_U_3'=>3203、'LB_U_4'=>3204、'LB_U_5'=>3205、
'FR_PC_1'=>4001、'FR_PC_2'=>4002、'FR_PC_3'=>4003、'FR_PC_4'=>4004、'FR_PC_5'=>4005、
'FR_U_1'=>5001、'FR_U_2'=>5002、'FR_U_3'=>5003、'FR_U_4'=>5004、'FR_U_5'=>5005、
);
foreach ($contorl_id as $key=>$value){
if(!define(strtoupper($key)))define(strtoupper($key),$value);
}
?>


21point.phpw文件


set_time_limit(0);
include_once('include/winbinder.php');
include_once('form/point_include.php');
include_once('form/21point.form.php');

クラスポニット{
パブリック $key_id;
プライベート $user_point=10000;
プライベート $pc_point=10000;
プライベート $card;
プライベート $player='ユーザー';
プライベート $new_term=false;
プライベート $remon=false;
パブリック関数 __construct($winmain,$card){
  $f=file_get_contents('form/db.db');
  list($this->user_point,$this->pc_point)=explode('|',$f);
  $this->window=$winmain;
  $this->card=$card;
  $this->prepare();
}
プライベート関数 prepare(){
  wb_set_image($this->window,'form/hyper.ico'); 
  wb_create_control($this->ウィンドウ,メニュー,配列(
)   '游戏(&G)' 、null、
  array(ME_START , "开局tCrtl+N",'','','Ctrl+N'),
  array(ME_REMON , "重计分"),
  array(ME_AUTHOR , "作者"),
  null ,
  array(ME_QUIT , "退出tCrtl+Q",'','','Ctrl+Q'),
  ヌル
  ));
  wb_set_text(wb_get_control($this->window,U_MON),$this->user_point.'分');
  wb_set_text(wb_get_control($this->window,PC_MON),$this->pc_point.'分');
  $font=wb_create_font("Arial", 13, null, FTA_BOLD);
  wb_set_font(wb_get_control($this->window,LB_1),$font);
  wb_set_font(wb_get_control($this->window,LB_2),$font);
  $font=wb_create_font("Arial", 34, null, FTA_BOLD);
  for($i=1;$i    wb_set_font(wb_get_control($this->window,(3100+$i)),$font);
   wb_set_font(wb_get_control($this->window,(3200+$i)),$font);
  }
}
プライベート関数 start(){
  $this->player='ユーザー';
  $this->new_term=true;
  $this->clear();
  $this->play();
  wb_set_enabled(wb_get_control($this->window,B_GO),true);
  wb_set_enabled(wb_get_control($this->window,B_CHANGE),true);
}
プライベート関数 stop(){
  wb_set_enabled(wb_get_control($this->window,B_GO),false);
  wb_set_enabled(wb_get_control($this->ウィンドウ,B_CHANGE),false);
}
プライベート関数change_player(){
  $this->stop();
  $this->player='pc';
  $this->play();
}
プライベート関数 total($num=0,$win){
  静的 $u_tem,$p_tem;
  if(empty($u_tem)||empty($p_tem)||$this->remon==true){
   $u_tem=$this->user_point;
   $p_tem=$this->pc_point;
   $this->remon=false;
  }
  if(strtoupper($win)=='U'){
   $u_tem+=$num;
   $p_tem-=$num;
  }その他{
   $u_tem-=$num;
   $p_tem+=$num;
  }
  $this->user_point=$u_tem;
  $this->pc_point=$p_tem;
  wb_set_text(wb_get_control($this->window,U_MON),$this->user_point.'分');
  wb_set_text(wb_get_control($this->window,PC_MON),$this->pc_point.'分');
  $f=fopen('form/db.db','wb');
  fwrite($f,$this->user_point."|".$this->pc_point);
  fclose($f);
}
プライベート関数 remon(){
  $this->remon=true;
  $this->user_point=10000;
  $this->pc_point=10000;
  wb_set_text(wb_get_control($this->window,U_MON),$this->user_point.'分');
  wb_set_text(wb_get_control($this->window,PC_MON),$this->pc_point.'分');
  $f=fopen('form/db.db','wb');
  fwrite($f,$this->user_point."|".$this->pc_point);
  fclose($f);
}
プライベート関数clear(){
  wb_set_text(wb_get_control($this->window,LB_U_T),'');
  wb_set_text(wb_get_control($this->window,LB_P_T),'');
  for($i=1;$i    wb_set_text(wb_get_control($this->window,(4000+$i)),'');
   wb_set_text(wb_get_control($this->window,(5000+$i)),'');
   wb_set_text(wb_get_control($this->window,(3100+$i)),'');
   wb_set_text(wb_get_control($this->window,(3200+$i)),'');
  }
}
プライベート関数 play(){
  static $card_tem=array(),$i=0,$j=0,$user_total=0,$pc_total=0;
  if($this->new_term==true){
   $card_tem=$this->カード;
   $this->new_term=false;
   $user_total=0;
   $pc_total=0;
   $i=0;$j=0;
  }
  if($this->player=='ユーザー'){
$i++;
$card_key=array_rand($card_tem);
$card_value=$card_tem[$card_key];
$user_total+=$card_value;
wb_set_text(wb_get_control($this->window,LB_U_T),$user_total.'point');
wb_set_text(wb_get_control($this->window,(5000+$i)),$card_key);
wb_set_text(wb_get_control($this->window,(3200+$i)),$card_value);
if($i>=5 && $user_total<=21){
$this->total(20,'U');
$sel=wb_message_box($this->window,"おめでとうございます。5 枚のカードはすべて小さいので、プレーヤーの勝ちです。まだプレイを続けますか?",'勝利',WBC_YESNO);
$sel==1?$this->start():$this->stop();
}elseif($user_total>21){
$this->total(20,'P');
$sel=wb_message_box($this->window,"残念です。21 ポイントを獲得した後、ディーラーが勝ちました。まだプレイを続けますか?",'失敗',WBC_YESNO);
$sel==1?$this->start():$this->stop();
}
}その他{
$j++;
$card_key=array_rand($card_tem);
$card_value=$card_tem[$card_key];
$pc_total+=$card_value;
wb_set_text(wb_get_control($this->window,LB_P_T),$pc_total.'point');
wb_set_text(wb_get_control($this->window,(4000+$j)),$card_key);
wb_set_text(wb_get_control($this->window,(3100+$j)),$card_value);
if($j>=5 && $pc_total<=21){
$this->total(20,'P');
$sel=wb_message_box($this->window,"ディーラーは 5 枚のカードをすべて持っており、ディーラーの勝ちです。まだプレイを続けますか?",'失敗',WBC_YESNO);
$sel==1?$this->start():$this->stop();
}elseif($pc_total>21){
If( $pc_total-$card_value $this->total(20,'U');
$sel=wb_message_box($this->window,"おめでとうございます。ディーラーのポイントが 21 を超え、プレーヤーの勝ちです。まだプレイを続けますか?",'勝利',WBC_YESNO);
$sel==1?$this->start():$this->stop();
}その他{
$pc_total=$pc_total-$card_value;
wb_set_text(wb_get_control($this->window,LB_P_T),$pc_total.'point');
wb_set_text(wb_get_control($this->window,(4000+$j)),'');
wb_set_text(wb_get_control($this->window,(3100+$j)),'');
If($pc_total>=$user_total){
$this->total(20,'P');
$msg=($pc_total==$user_total)?"双方のポイントが同じなので、バンカーの勝ちです!nまだプレイを続けますか?":"バンカーのポイントがあなたのポイントより大きいので、作物が勝ちます!nどうしますか?まだプレイを続けたいですか?";
$sel=wb_message_box($this->window,$msg,'失敗',WBC_YESNO);
$sel==1?$this->start():$this->stop();
}その他{
$this->total(20,'U');
$sel=wb_message_box($this->window,"おめでとうございます。ディーラーのポイントがあなたのポイントより少ないため、プレーヤーの勝ちです。まだプレイを続けますか?",'勝利',WBC_YESNO);
$sel==1?$this->start():$this->stop();
}
}
}その他{
usleep(800000);
$this->play();
}
}
unset($card_tem[$card_key]);
}

プライベート関数 author(){
$inf="みなさん、こんにちは、machine_马です。nn これは私の人生で初めてのデスクトップ アプリケーションです。nn は非常に悪いです、みんな笑っています、ハハハ ^_^。nnnntt 作者: machine_马" ;
$author_window=wb_create_window($this->window,ModalDialog,'著者について',WBC_CENTER, WBC_CENTER, 360, 180, 0x00000000, 0);
wb_set_handler($author_window,'author_handler');
$image=wb_create_control($author_window,Frame,'123',0,0,128,144,110,WBC_IMAGE);
wb_create_control($author_window,Label,$inf,140,​​20,200,150,120,WBC_IMAGE);
wb_set_image($image, 'form/author.bmp', NOCOLOR);
}
パブリック関数 main(){
スイッチ ($this->key_id){
ケース IDCLOSE:
wb_destroy_window($this->window); ブレーク;
ケース ME_START:
$this->start();
ケース ME_AUTHOR:
$this->author();
ケースB_GO:
$this->play();
ケース B_CHANGE:
$this->change_player() ブレーク;
ME_REMONの場合:
$this->remon();
}
}
}
$wbd=new Ponit($winmain,$card);
wb_set_handler($winmain,'go_to');
wb_main_loop();
関数 go_to($window,$id){
グローバル $wbd;
$wbd->key_id=$id;
return $wbd->main();
}
関数 author_handler($this_window,$id){
スイッチ($id){
ケースIDクローズ:
wb_destroy_window($this_window);
}
}
?>

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/631916.html技術記事 PHP コンテンツをクリップボードにコピーします。 PHP コード: ?php $winmain=wb_create_window(null,AppWindow,'Blackjack Game',WBC_CENTER,WBC_CENTER,800,495,0,0); wb_create_control($winmain,Label,'Banker',20, 1); ...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。