Rumah pembangunan bahagian belakang tutorial php 一个简单的猜单词的小游戏_PHP教程

一个简单的猜单词的小游戏_PHP教程

Jul 20, 2016 am 11:12 AM
individu perkataan di mana permainan mini permainan daripada tidur Mudah

忘了从哪看到的这游戏,睡觉前想起来就立马写了个,
没什么好的思路,样式什么的也就没追求了,
用的SESSION配合AJAX弄的,
小码农,求建议指导,
PS:没怎么优化,勿喷哈,
直接复制本地就能运行了,

一个简单的猜单词的小游戏_PHP教程

<?php
session_start();
header("Content-type:text/html;charset=utf-8");
$url=&#39;http://&#39;.$_SERVER[&#39;HTTP_HOST&#39;].$_SERVER[&#39;PHP_SELF&#39;];
function get_word(){
	$wordtext="Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met:Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of Yii Software LLC nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS AS IS AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.";
	$words=preg_split("/[\s,]+/",$wordtext);
	do{
		$i=rand(0,count($words)-1);
		$word=strtoupper($words[$i]);
	}while(strlen($word)<5 || !ctype_alpha($word));
	return $word;
}
function guess($word){
	return str_repeat(&#39;_&#39;,strlen($word));
}
function output($word){
	$str=&#39;&#39;;
	for($i=0;$i<strlen($word);$i++){
		$str.=$word[$i]." ";
	}
	return rtrim($str);
}
if(isset($_GET[&#39;op&#39;]) && $_GET[&#39;op&#39;]==&#39;start&#39;){
	$k=$_GET[&#39;k&#39;];
	$_SESSION[&#39;num&#39;]=$k;
	exit;
}
if(isset($_GET[&#39;restart&#39;]) && $_GET[&#39;restart&#39;]==1){
	session_unset();
	header("location:$url");
	exit;
}
if(!isset($_SESSION[&#39;word&#39;])){
	$word=get_word();
	$_SESSION[&#39;word&#39;]=$word;
}else{
	$word=$_SESSION[&#39;word&#39;];
}
$guess_word=guess($word);
if(isset($_GET[&#39;op&#39;]) && $_GET[&#39;op&#39;]==&#39;ajax&#39;){
	$k=$_GET[&#39;k&#39;];
	$re=&#39;&#39;;
	if(!isset($_SESSION[&#39;already&#39;])){
		$_SESSION[&#39;already&#39;]=guess($_SESSION[&#39;word&#39;]);
	}
	if(!isset($_SESSION[&#39;count&#39;])){
		$_SESSION[&#39;count&#39;]=0;
	}
	if(strpos($_SESSION[&#39;word&#39;],$k)!==false){
		for($i=0;$i<strlen($_SESSION[&#39;word&#39;]);$i++){
			if($_SESSION[&#39;word&#39;][$i]!=$k){
				$re.=&#39;_&#39;;
			}else{
				$re.=$_SESSION[&#39;word&#39;][$i];
			}
		}
		for($i=0;$i<strlen($_SESSION[&#39;word&#39;]);$i++){
			if($_SESSION[&#39;already&#39;][$i]==&#39;_&#39;){
				$_SESSION[&#39;already&#39;][$i]=$re[$i];
			}
		}
	}else{
		$_SESSION[&#39;count&#39;]+=1;
	}
	$return=output($_SESSION[&#39;already&#39;]);
	if($_SESSION[&#39;count&#39;] <= $_SESSION[&#39;num&#39;]){
		if($_SESSION[&#39;already&#39;]==$_SESSION[&#39;word&#39;]){
			$return.="|1";
		}else{
			$return.="|0";
		}
	}else{
		$return.="|2";
	}
	echo $return;
	exit;
}
?>
<script>
function Ajax(recvType){
    var aj=new Object();
    aj.recvType=recvType ? recvType.toUpperCase() : &#39;HTML&#39;;
    aj.targetUrl=&#39;&#39;;
    aj.sendString=&#39;&#39;;
    aj.resultHandle=null;
    aj.createXMLHttpRequest=function(){
        var xmlHttp = false;
        if(window.XMLHttpRequest){
            xmlHttp = new XMLHttpRequest();
        }else if(window.ActiveXObject){
            try{
                xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
            }catch(error1){
                try{
                    xmlHttp = new ActiveXobject("Microsoft.XMLHttp");
                }catch(error2){
                    xmlHttp = false;
                }
            }
        }
        return xmlHttp;
    }
    aj.XMLHttpRequest=aj.createXMLHttpRequest();
    aj.processHandle=function(){
        if(aj.XMLHttpRequest.readyState == 4){
            if(aj.XMLHttpRequest.status == 200){
                if(aj.recvType=="HTML"){
                    aj.resultHandle(aj.XMLHttpRequest.responseText);
                }else if(aj.recvType=="XML"){
                    aj.resultHandle(aj.XMLHttpRequest.responseXML);
				}
            }
        }
    }
    aj.get=function(targetUrl, resultHandle){
        aj.targetUrl=targetUrl;
        if(resultHandle!=null){
            aj.XMLHttpRequest.onreadystatechange=aj.processHandle;
            aj.resultHandle=resultHandle;
        }
        if(window.XMLHttpRequest){
            aj.XMLHttpRequest.open("get", aj.targetUrl);
            aj.XMLHttpRequest.send(null);
        }else{
            aj.XMLHttpRequest.open("get", aj.targetUrl, true);
            aj.XMLHttpRequest.send();
        }
    }
    return aj;
}
</script>
<script>
var ajax=Ajax();
function select(v){
	document.getElementById(v).style.display=&#39;none&#39;;
	ajax.get("guess.php?op=ajax&k="+v, function(r){
		var t=r.split("|");
		document.getElementById(&#39;word&#39;).innerHTML=t[0];
		if(t[1] == 1){
			document.getElementById(&#39;select&#39;).style.display=&#39;none&#39;;
			document.getElementById(&#39;result&#39;).innerHTML=&#39;成功&#39;;
		}else if(t[1] == 2){
			document.getElementById(&#39;select&#39;).style.display=&#39;none&#39;;
			document.getElementById(&#39;result&#39;).innerHTML=&#39;失败&#39;;
		}
	});
}
function check(v){
	ajax.get("guess.php?op=start&k="+v, function(r){
		window.location.href="<?php echo $url;?>";
	});
}
</script>
<?php
if(!isset($_SESSION[&#39;num&#39;])){
	echo &#39;<input type="radio" onclick="check(10);" /> easy: wrong 10<br />&#39;;
	echo &#39;<input type="radio" onclick="check(5);" /> normal: wrong 5<br />&#39;;
	echo &#39;<input type="radio" onclick="check(3);" /> hard: wrong 3<br />&#39;;
}else{
	//echo $word;
	echo "最多可以猜错 ".$_SESSION[&#39;num&#39;]." 次";
	echo "<br />";
	echo "<div id=&#39;word&#39;>";
	echo output($guess_word);
	echo "</div>";
	echo &#39;<br />&#39;;
	echo &#39;<div id="select">&#39;;
	for($i=ord(&#39;A&#39;);$i<=ord(&#39;Z&#39;);++$i){
		echo "\n";
		$letter=chr($i);
		echo &#39;<span id="&#39;.$letter.&#39;" style="display:"><a href="javascript:void(0);" onclick="select(\&#39;&#39;.$letter.&#39;\&#39;);">&#39;.$letter.&#39;</a></span>&#39;;
	}
	echo &#39;</div>&#39;;
	echo &#39;<br />&#39;;
	echo &#39;<br />&#39;;
	echo &#39;<div id="result"></div>&#39;;
	echo &#39;<br />&#39;;
	echo &#39;<br />&#39;;
	echo &#39;<a href="&#39;.$url.&#39;?restart=1">重新开始</a>&#39;;
}
?>
Salin selepas log masuk

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/444579.htmlTechArticle忘了从哪看到的这游戏,睡觉前想起来就立马写了个, 没什么好的思路,样式什么的也就没追求了, 用的SESSION配合AJAX弄的, 小码农,求建议指导...
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Apakah penggunaan CPU yang sepatutnya semasa bermain permainan? Apakah penggunaan CPU yang sepatutnya semasa bermain permainan? Feb 19, 2024 am 11:21 AM

Adalah perkara biasa bagi permainan untuk memperlahankan komputer anda kerana ia menggunakan banyak sumber. Adalah penting untuk memahami penggunaan CPU anda semasa bermain permainan supaya anda boleh mengelak daripada membebankannya. Oleh itu, menjejaki penggunaan CPU yang sesuai adalah kunci untuk memastikan pengalaman permainan anda lancar. Dalam artikel ini, kami akan melihat penggunaan CPU yang sesuai yang perlu anda capai semasa permainan anda sedang berjalan. Penggunaan CPU semasa penggunaan CPU permainan ialah penunjuk penting beban kerja pemproses dan bergantung pada spesifikasi prestasi CPU. CPU yang lebih berkuasa biasanya mempunyai penggunaan yang lebih tinggi. CPU dengan lebih banyak teras dan benang boleh meningkatkan prestasi keseluruhan sistem anda. Sokongan berbilang benang membantu melepaskan potensi penuh CPU anda. Dalam permainan, penggunaan CPU bergantung pada penggunaan pemproses, yang boleh menjejaskan permainan

Nvgpucomp64.dll menyebabkan permainan Windows PC ranap; Nvgpucomp64.dll menyebabkan permainan Windows PC ranap; Mar 26, 2024 am 08:20 AM

Jika Nvgpucomp64.dll menyebabkan permainan anda kerap ranap, penyelesaian yang disediakan di sini boleh membantu anda. Masalah ini biasanya disebabkan oleh pemacu kad grafik yang lapuk atau rosak, fail permainan yang rosak, dsb. Membetulkan isu ini boleh membantu anda menangani ranap permainan. Fail Nvgpucomp64.dll dikaitkan dengan kad grafik NVIDIA. Apabila fail ini ranap, permainan anda juga akan ranap. Ini biasanya berlaku dalam permainan seperti LordsoftheFallen, LiesofP, RocketLeague dan ApexLegends. Nvgpucomp64.dll ranap permainan pada Windows PC jika N

Cara paling mudah untuk menanyakan nombor siri cakera keras Cara paling mudah untuk menanyakan nombor siri cakera keras Feb 26, 2024 pm 02:24 PM

Nombor siri cakera keras ialah pengecam penting cakera keras dan biasanya digunakan untuk mengenal pasti cakera keras secara unik dan mengenal pasti perkakasan. Dalam sesetengah kes, kami mungkin perlu menanyakan nombor siri cakera keras, seperti semasa memasang sistem pengendalian, mencari pemacu peranti yang betul atau melakukan pembaikan cakera keras. Artikel ini akan memperkenalkan beberapa kaedah mudah untuk membantu anda menyemak nombor siri cakera keras. Kaedah 1: Gunakan Windows Command Prompt untuk membuka command prompt. Dalam sistem Windows, tekan kekunci Win+R, masukkan "cmd" dan tekan kekunci Enter untuk membuka arahan

NAT Boost vs. Qos untuk permainan; NAT Boost vs. Qos untuk permainan; Feb 19, 2024 pm 07:00 PM

Dalam keadaan hari ini di mana hampir semua permainan adalah dalam talian, adalah tidak digalakkan untuk mengabaikan pengoptimuman rangkaian rumah. Hampir semua penghala dilengkapi dengan ciri NATBoost dan QoS yang direka untuk meningkatkan pengalaman permainan pengguna. Artikel ini akan meneroka definisi, kelebihan dan keburukan NATBoost dan QoS. NATBoost vs. Qos untuk permainan; NATBoost, juga dikenali sebagai Rangsangan Penterjemahan Alamat Rangkaian, ialah ciri terbina dalam penghala yang meningkatkan prestasinya. Ia amat penting untuk permainan kerana ia membantu mengurangkan kependaman rangkaian, iaitu masa yang diperlukan untuk data dipindahkan antara peranti permainan dan pelayan. Dengan mengoptimumkan kaedah pemprosesan data dalam penghala, NATBoost mencapai kelajuan pemprosesan data yang lebih pantas dan kependaman yang lebih rendah, sekali gus mengubah

Pengenalan kepada cara memuat turun dan memasang permainan superpeople Pengenalan kepada cara memuat turun dan memasang permainan superpeople Mar 30, 2024 pm 04:01 PM

Permainan superpeople boleh dimuat turun melalui klien wap Saiz permainan ini ialah kira-kira 28G Ia biasanya mengambil masa satu setengah jam untuk memuat turun dan memasang Berikut ialah tutorial muat turun dan pemasangan khusus untuk anda. Kaedah baharu untuk memohon ujian tertutup global 1) Cari "SUPERPEOPLE" dalam kedai Steam (muat turun klien stim) 2) Klik "Minta akses kepada ujian tertutup SUPERPEOPLE" di bahagian bawah halaman kedai "SUPERPEOPLE" 3) Selepas mengklik butang minta butang akses, Permainan "SUPERPEOPLECBT" boleh disahkan dalam perpustakaan Steam 4) Klik butang pasang dalam "SUPERPEOPLECBT" dan muat turun

NVIDIA melancarkan fungsi RTX HDR: permainan yang tidak disokong menggunakan penapis AI untuk mencapai kesan visual HDR yang cantik NVIDIA melancarkan fungsi RTX HDR: permainan yang tidak disokong menggunakan penapis AI untuk mencapai kesan visual HDR yang cantik Feb 24, 2024 pm 06:37 PM

Menurut berita dari laman web ini pada 23 Februari, NVIDIA mengemas kini dan melancarkan aplikasi NVIDIA malam tadi, menyediakan pemain dengan pusat kawalan GPU bersatu baharu, membolehkan pemain merakam detik indah melalui alat rakaman berkuasa yang disediakan oleh terapung dalam permainan. tingkap. Dalam kemas kini ini, NVIDIA turut memperkenalkan fungsi RTXHDR Pengenalan rasmi dilampirkan seperti berikut: RTXHDR ialah penapis Freestyle baharu yang diperkasakan AI yang boleh memperkenalkan kesan visual cantik julat dinamik tinggi (HDR) ke dalam permainan yang tidak pada asalnya. menyokong HDR. Apa yang anda perlukan ialah monitor serasi HDR untuk menggunakan ciri ini dengan pelbagai jenis permainan berasaskan DirectX dan Vulkan. Selepas pemain mendayakan fungsi RTXHDR, permainan akan berjalan walaupun ia tidak menyokong HD

Di manakah Spider Solitaire dalam win11 Bagaimana untuk bermain permainan Spider Solitaire dalam win11 Di manakah Spider Solitaire dalam win11 Bagaimana untuk bermain permainan Spider Solitaire dalam win11 Mar 01, 2024 am 11:37 AM

Rakan-rakan yang telah cukup bermain karya AAA dan permainan mudah alih, adakah anda ingin menghidupkan semula permainan komputer zaman kanak-kanak anda? Kemudian mari kita cari Spider Solitaire dalam Windows 11 bersama-sama! Klik menu Mula pada antara muka, klik butang "Semua Apl"; Cari dan pilih "MicrosoftSolitaireCollection", iaitu aplikasi permainan siri Solitaire Microsoft; Selepas pemuatan selesai, masukkan antara muka pemilihan dan cari "Spider Solitaire"; Walaupun antara muka telah berubah sedikit, ia masih sama seperti dahulu

Panel kawalan Thrustmaster tidak berfungsi atau dipaparkan dengan betul [Tetap] Panel kawalan Thrustmaster tidak berfungsi atau dipaparkan dengan betul [Tetap] Feb 19, 2024 am 10:45 AM

Thrustmaster ialah syarikat yang mengkhusus dalam pengeluaran roda permainan dan aksesori permainan lain Produk rodanya sangat popular dalam komuniti permainan. Tetapan roda Thrustmaster boleh dipasang dan dilaraskan menggunakan panel kawalan Thrustmaster. Jika anda menghadapi masalah dengan panel kawalan tidak berfungsi atau dipaparkan, ia mungkin menjejaskan pengalaman permainan anda. Oleh itu, apabila ini berlaku, anda perlu menyemak sama ada sambungan adalah normal dan memastikan pemacu perisian dipasang dengan betul dan dikemas kini kepada versi terkini. Selain itu, anda juga boleh cuba memulakan semula peranti atau menyambung semula peranti untuk menyelesaikan kemungkinan kegagalan. Apabila anda menghadapi masalah, anda boleh merujuk kepada tapak web rasmi Thrustmaster atau menghubungi perkhidmatan pelanggan untuk mendapatkan bantuan lanjut. Bagaimana untuk mengakses Thrustma

See all articles