Heim Backend-Entwicklung PHP-Tutorial 一个简单的猜单词的小游戏_PHP教程

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

Jul 20, 2016 am 11:12 AM
individuell 单词 Wo 小游戏 游戏 von schlafen 简单

忘了从哪看到的这游戏,睡觉前想起来就立马写了个,
没什么好的思路,样式什么的也就没追求了,
用的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;;
}
?>
Nach dem Login kopieren

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/444579.htmlTechArticle忘了从哪看到的这游戏,睡觉前想起来就立马写了个, 没什么好的思路,样式什么的也就没追求了, 用的SESSION配合AJAX弄的, 小码农,求建议指导...
Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie hoch sollte die CPU-Auslastung beim Spielen sein? Wie hoch sollte die CPU-Auslastung beim Spielen sein? Feb 19, 2024 am 11:21 AM

Es kommt häufig vor, dass Spiele Ihren Computer verlangsamen, weil sie viele Ressourcen verbrauchen. Es ist wichtig, die CPU-Auslastung beim Spielen zu kennen, um eine Überlastung zu vermeiden. Daher ist es wichtig, die angemessene CPU-Auslastung im Auge zu behalten, um ein reibungsloses Spielerlebnis zu gewährleisten. In diesem Artikel schauen wir uns die angemessene CPU-Auslastung an, die Sie erreichen sollten, während Ihr Spiel läuft. CPU-Auslastung beim Gaming Die CPU-Auslastung ist ein wichtiger Indikator für die Prozessorauslastung und hängt von den Leistungsspezifikationen der CPU ab. Leistungsstärkere CPUs haben im Allgemeinen eine höhere Auslastung. Eine CPU mit mehr Kernen und Threads kann die Gesamtleistung Ihres Systems verbessern. Die Multi-Threading-Unterstützung hilft dabei, das volle Potenzial Ihrer CPU auszuschöpfen. In Spielen hängt die CPU-Auslastung von der Prozessorauslastung ab, was sich auf das Spiel auswirken kann

Nvgpucomp64.dll führt zum Absturz von Windows-PC-Spielen; Nvgpucomp64.dll führt zum Absturz von Windows-PC-Spielen; Mar 26, 2024 am 08:20 AM

Wenn Nvgpucomp64.dll dazu führt, dass Ihr Spiel häufig abstürzt, können Ihnen die hier bereitgestellten Lösungen helfen. Dieses Problem wird normalerweise durch veraltete oder beschädigte Grafikkartentreiber, beschädigte Spieledateien usw. verursacht. Das Beheben dieser Probleme kann Ihnen dabei helfen, Spielabstürze zu beheben. Die Datei Nvgpucomp64.dll ist mit NVIDIA-Grafikkarten verknüpft. Wenn diese Datei abstürzt, stürzt auch Ihr Spiel ab. Dies geschieht normalerweise in Spielen wie LordsoftheFallen, LiesofP, RocketLeague und ApexLegends. Nvgpucomp64.dll stürzt Spiele auf Windows-PCs ab, wenn N

Der einfachste Weg, die Seriennummer der Festplatte abzufragen Der einfachste Weg, die Seriennummer der Festplatte abzufragen Feb 26, 2024 pm 02:24 PM

Die Seriennummer der Festplatte ist eine wichtige Kennung der Festplatte und dient in der Regel zur eindeutigen Identifizierung der Festplatte und zur Identifizierung der Hardware. In einigen Fällen müssen wir möglicherweise die Seriennummer der Festplatte abfragen, beispielsweise bei der Installation eines Betriebssystems, der Suche nach dem richtigen Gerätetreiber oder der Durchführung von Festplattenreparaturen. In diesem Artikel werden einige einfache Methoden vorgestellt, mit denen Sie die Seriennummer der Festplatte überprüfen können. Methode 1: Verwenden Sie die Windows-Eingabeaufforderung, um die Eingabeaufforderung zu öffnen. Drücken Sie im Windows-System die Tasten Win+R, geben Sie „cmd“ ein und drücken Sie die Eingabetaste, um den Befehl zu öffnen

NAT Boost vs. Qos für Spiele; was ist besser? NAT Boost vs. Qos für Spiele; was ist besser? Feb 19, 2024 pm 07:00 PM

In der heutigen Situation, in der fast alle Spiele online stattfinden, ist es nicht ratsam, die Optimierung des Heimnetzwerks außer Acht zu lassen. Fast alle Router sind mit NATBoost- und QoS-Funktionen ausgestattet, die das Spielerlebnis der Benutzer verbessern sollen. In diesem Artikel werden die Definition, Vor- und Nachteile von NATBoost und QoS untersucht. NATBoost vs. Qos für Spiele; welches ist besser? NATBoost, auch bekannt als Network Address Translation Boost, ist eine in Router integrierte Funktion, die deren Leistung verbessert. Dies ist besonders wichtig für Spiele, da es dazu beiträgt, die Netzwerklatenz zu reduzieren, also die Zeit, die für die Datenübertragung zwischen dem Spielgerät und dem Server benötigt wird. Durch die Optimierung der Datenverarbeitungsmethode innerhalb des Routers erreicht NATBoost eine schnellere Datenverarbeitungsgeschwindigkeit und eine geringere Latenz und verändert so die

NVIDIA führt RTX HDR-Funktion ein: Nicht unterstützte Spiele nutzen KI-Filter, um wunderschöne visuelle HDR-Effekte zu erzielen NVIDIA führt RTX HDR-Funktion ein: Nicht unterstützte Spiele nutzen KI-Filter, um wunderschöne visuelle HDR-Effekte zu erzielen Feb 24, 2024 pm 06:37 PM

Laut Nachrichten dieser Website vom 23. Februar hat NVIDIA gestern Abend die NVIDIA‏‏-Anwendung aktualisiert und gestartet und bietet Spielern ein neues einheitliches GPU-Kontrollzentrum, das es Spielern ermöglicht, wunderbare Momente durch das leistungsstarke Aufzeichnungstool des In-Game-Floating festzuhalten Fenster. In diesem Update hat NVIDIA auch die RTXHDR-Funktion eingeführt. Die offizielle Einführung ist wie folgt beigefügt: RTXHDR ist ein neuer KI-gestützter Freestyle-Filter, der die großartigen visuellen Effekte von High Dynamic Range (HDR) nahtlos in Spiele einführen kann, die dies ursprünglich nicht tun unterstützt HDR. Sie benötigen lediglich einen HDR-kompatiblen Monitor, um diese Funktion mit einer Vielzahl von DirectX- und Vulkan-basierten Spielen nutzen zu können. Nachdem der Player die RTXHDR-Funktion aktiviert hat, läuft das Spiel auch dann, wenn es HD nicht unterstützt

Einführung in das Herunterladen und Installieren des Superpeople-Spiels Einführung in das Herunterladen und Installieren des Superpeople-Spiels Mar 30, 2024 pm 04:01 PM

Das Superpeople-Spiel kann über den Steam-Client heruntergeladen werden. Die Größe dieses Spiels beträgt normalerweise eineinhalb Stunden. Hier ist ein spezielles Download- und Installations-Tutorial. Neue Methode zur Beantragung globaler geschlossener Tests 1) Suchen Sie nach „SUPERPEOPLE“ im Steam-Store (Steam-Client-Download) 2) Klicken Sie unten auf der „SUPERPEOPLE“-Store-Seite auf „Zugriff auf geschlossene SUPERPEOPLE-Tests anfordern“ 3) Nachdem Sie auf geklickt haben Schaltfläche „Zugriff anfordern“. Das Spiel „SUPERPEOPLECBT“ kann in der Steam-Bibliothek bestätigt werden. 4) Klicken Sie auf die Schaltfläche „Installieren“ in „SUPERPEOPLECBT“ und laden Sie es herunter

Wo ist Spider Solitaire in Win11? Wie spielt man das Spider Solitaire-Spiel in Win11? Wo ist Spider Solitaire in Win11? Wie spielt man das Spider Solitaire-Spiel in Win11? Mar 01, 2024 am 11:37 AM

Freunde, die genug AAA-Meisterwerke und Handyspiele gespielt haben, möchten Sie die Computerspiele Ihrer Kindheit noch einmal erleben? Dann lasst uns gemeinsam nach Spider Solitaire in Windows 11 suchen! Klicken Sie auf der Benutzeroberfläche auf das Startmenü und dann auf die Schaltfläche „Alle Apps“. Suchen und wählen Sie „MicrosoftSolitaireCollection“, die Spieleanwendung der Solitaire-Serie von Microsoft. Nachdem der Ladevorgang abgeschlossen ist, rufen Sie die Auswahloberfläche auf und suchen Sie nach „Spider Solitaire“. Wählen Sie „Spider Solitaire“. Obwohl sich die Benutzeroberfläche geringfügig geändert hat, ist sie immer noch dieselbe wie zuvor

Thrustmaster-Bedienfeld funktioniert nicht oder wird nicht richtig angezeigt [Behoben] Thrustmaster-Bedienfeld funktioniert nicht oder wird nicht richtig angezeigt [Behoben] Feb 19, 2024 am 10:45 AM

Thrustmaster ist ein Unternehmen, das sich auf die Herstellung von Gaming-Rädern und anderem Gaming-Zubehör spezialisiert hat. Seine Lenkradprodukte erfreuen sich in der Gaming-Community großer Beliebtheit. Thrustmaster-Radeinstellungen können über das Thrustmaster-Bedienfeld installiert und angepasst werden. Wenn Sie Probleme damit haben, dass das Bedienfeld nicht funktioniert oder nicht angezeigt wird, kann dies Ihr Spielerlebnis beeinträchtigen. Daher müssen Sie in diesem Fall überprüfen, ob die Verbindung normal ist und sicherstellen, dass der Softwaretreiber korrekt installiert und auf die neueste Version aktualisiert ist. Darüber hinaus können Sie auch versuchen, das Gerät neu zu starten oder das Gerät erneut anzuschließen, um mögliche Fehler zu beheben. Wenn Sie auf Probleme stoßen, können Sie die offizielle Website von Thrustmaster besuchen oder sich für weitere Hilfe an den Kundendienst wenden. So greifen Sie auf Thrustma zu

See all articles