Heim >Backend-Entwicklung >PHP-Tutorial >用php写的桌面应用程序_PHP教程

用php写的桌面应用程序_PHP教程

WBOY
WBOYOriginal
2016-07-13 10:59:181296Durchsuche


复制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 switch($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;
  default:
   $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(!defined(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');

class Ponit {
public $key_id;
private $user_point=10000;
private $pc_point=10000;
private $card;
private $player='user';
private $new_term=false;
private $remon=false;
public function __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();
}
private function prepare(){
  wb_set_image($this->window,'form/hyper.ico'); 
  wb_create_control($this->window,Menu,array(
  '游戏(&G)'  , null,
  array(ME_START , "开局\tCrtl+N",'','','Ctrl+N'),
  array(ME_REMON , "重计分"),
  array(ME_AUTHOR , "作者"),
  null   ,
  array(ME_QUIT , "退出\tCrtl+Q",'','','Ctrl+Q'),
  null
  ));
  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);
  }
}
private function start(){
  $this->player='user';
  $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);
}
private function stop(){
  wb_set_enabled(wb_get_control($this->window,B_GO),false);
  wb_set_enabled(wb_get_control($this->window,B_CHANGE),false);
}
private function change_player(){
  $this->stop();
  $this->player='pc';
  $this->play();
}
private function total($num=0,$win){
  static $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;
  }else{
   $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);
}
private function 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);
}
private function 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)),'');
  }
}
private function play(){
  static $card_tem=array(),$i=0,$j=0,$user_total=0,$pc_total=0;
  if($this->new_term==true){
   $card_tem=$this->card;
   $this->new_term=false;
   $user_total=0;
   $pc_total=0;
   $i=0;$j=0;
  }
  if($this->player=='user'){
   $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.'点');
   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     $this->total(20,'U');
    $sel=wb_message_box($this->window,"恭喜你,5张全小,玩家获胜!\n您还想继续玩吗?",'胜利',WBC_YESNO);
    $sel==1?$this->start():$this->stop();
   }elseif($user_total>21){
    $this->total(20,'P');
    $sel=wb_message_box($this->window,"真不幸,超过21点,庄家获胜!\n您还想继续玩吗?",'失败',WBC_YESNO);
    $sel==1?$this->start():$this->stop();
   }
  }else{
   $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.'点');
   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     $this->total(20,'P');
    $sel=wb_message_box($this->window,"庄家5张全小,庄家获胜!\n您还想继续玩吗?",'失败',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点,玩家获胜!\n您还想继续玩吗?",'胜利',WBC_YESNO);
     $sel==1?$this->start():$this->stop();
    }else{
     $pc_total=$pc_total-$card_value;
     wb_set_text(wb_get_control($this->window,LB_P_T),$pc_total.'点');
     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();
     }else{
      $this->total(20,'U');
      $sel=wb_message_box($this->window,"恭喜你,庄家点数比你小,玩家获胜!\n您还想继续玩吗?",'胜利',WBC_YESNO);
      $sel==1?$this->start():$this->stop();
     }
    }
   }else{
    usleep(800000);
    $this->play();
   }
  }
  unset($card_tem[$card_key]);
}

private function author(){
  $inf="大家好,偶是machine_马,\n\n这是我人生中的第一个桌面应用程序,\n\n做得很烂,大家见笑了,哈哈哈^_^。\n\n\n\n\t\t作者: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);
}
public function main(){
  switch ($this->key_id){
   case IDCLOSE:
    wb_destroy_window($this->window);    break;
   case ME_START:
    $this->start();         break;
   case ME_AUTHOR:
    $this->author();        break;
   case B_GO:
    $this->play();         break;
   case B_CHANGE:
    $this->change_player();       break;
   case ME_REMON:
    $this->remon();         break;
  }
}
}
$wbd=new Ponit($winmain,$card);
wb_set_handler($winmain,'go_to');
wb_main_loop();
function go_to($window,$id){
global $wbd;
$wbd->key_id=$id;
return $wbd->main();
}
function author_handler($this_window,$id){
switch($id){
  case IDCLOSE:
   wb_destroy_window($this_window);
}
}
?>

 

 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/631916.htmlTechArticle复制PHP内容到剪贴板PHP代码: ?php $winmain=wb_create_window(null,AppWindow,'21点游戏',WBC_CENTER,WBC_CENTER,800,495,0,0); wb_create_control($winmain,Label,'庄家',20,1...
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn