用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
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);
}
}
?>

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

PHP 8.4 帶來了多項新功能、安全性改進和效能改進,同時棄用和刪除了大量功能。 本指南介紹如何在 Ubuntu、Debian 或其衍生版本上安裝 PHP 8.4 或升級到 PHP 8.4

Visual Studio Code,也稱為 VS Code,是一個免費的原始碼編輯器 - 或整合開發環境 (IDE) - 可用於所有主要作業系統。 VS Code 擁有大量針對多種程式語言的擴展,可以輕鬆編寫

JWT是一種基於JSON的開放標準,用於在各方之間安全地傳輸信息,主要用於身份驗證和信息交換。 1.JWT由Header、Payload和Signature三部分組成。 2.JWT的工作原理包括生成JWT、驗證JWT和解析Payload三個步驟。 3.在PHP中使用JWT進行身份驗證時,可以生成和驗證JWT,並在高級用法中包含用戶角色和權限信息。 4.常見錯誤包括簽名驗證失敗、令牌過期和Payload過大,調試技巧包括使用調試工具和日誌記錄。 5.性能優化和最佳實踐包括使用合適的簽名算法、合理設置有效期、

字符串是由字符組成的序列,包括字母、數字和符號。本教程將學習如何使用不同的方法在PHP中計算給定字符串中元音的數量。英語中的元音是a、e、i、o、u,它們可以是大寫或小寫。 什麼是元音? 元音是代表特定語音的字母字符。英語中共有五個元音,包括大寫和小寫: a, e, i, o, u 示例 1 輸入:字符串 = "Tutorialspoint" 輸出:6 解釋 字符串 "Tutorialspoint" 中的元音是 u、o、i、a、o、i。總共有 6 個元

本教程演示瞭如何使用PHP有效地處理XML文檔。 XML(可擴展的標記語言)是一種用於人類可讀性和機器解析的多功能文本標記語言。它通常用於數據存儲

靜態綁定(static::)在PHP中實現晚期靜態綁定(LSB),允許在靜態上下文中引用調用類而非定義類。 1)解析過程在運行時進行,2)在繼承關係中向上查找調用類,3)可能帶來性能開銷。

PHP的魔法方法有哪些? PHP的魔法方法包括:1.\_\_construct,用於初始化對象;2.\_\_destruct,用於清理資源;3.\_\_call,處理不存在的方法調用;4.\_\_get,實現動態屬性訪問;5.\_\_set,實現動態屬性設置。這些方法在特定情況下自動調用,提升代碼的靈活性和效率。
