【www.gdgbn.com--php应用】
复制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++){
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<=5;$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<=5;$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<=21){
$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<=21){
$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<$user_total){
$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);
}
}
?>