【发布时间】:2014-01-16 02:08:05
【问题描述】:
作为第一次尝试 PHP,我决定尝试制作一个基本的 Hangman 游戏。我的大部分逻辑已经完成,但是在弄清楚如何获取用户输入并使用它时遇到了重大问题。
理想情况下,我希望有一个带有提交按钮的文本框。我想验证输入以确保只输入了小写输入,然后假设一切正常,然后将字母输入到将显示在提交表单下方的数组中。
基本上,我希望将用户输入定向到我的函数,而不会完全刷新页面并丢失所有数据。有没有办法解决这个问题?我一直在浏览这个网站,人们似乎唯一推荐的东西是 ajax/jquery 和会话,作为初学者,所有这些似乎都非常复杂且难以学习。我已经尝试了这个网站上推荐的多种东西,但我无法完全理解它。我只想要一些非常基本的功能,因为这是我学习和理解 PHP 的早期阶段。
<?php
function comparison()
{
$theWord ="test";
$theSplit = str_split($theWord);
$currentWord = array();
$lettersGuessed = array();
$guessAttempts = 7;
$score = 0;
print_r($theSplit)."<br>";
for($i=0;$i<count($theSplit);$i++)
{
$currentWord[$i] = "_";
}
print_r($currentWord)."<br>";
$userLetter = "o";
if (ctype_lower($userLetter))
{
echo "The user-submitted letter is lowercase. Niceness!<br>";
}
else
{
echo "Invalid submission pigeon-face. Only lowercase letters please muches.<br>";
}
if(strpos($theWord,$userLetter) !== false)
{
echo "This word contains the letter ".$userLetter."<br>";
$score++;
}
else
{
echo "This word does not contain the letter ".$userLetter."<br>";
$guessAttempts--;
}
$start = 0;
while(($pos = strpos($theWord, $userLetter, $start)) !== false)
{
$start = $pos + 1;
$currentWord[$pos] = $userLetter;
}
foreach ($currentWord as $letter)
{
echo $letter." ";
}
array_push($lettersGuessed,$userLetter);
//print_r($lettersGuessed);
print_r($score);
print_r($guessAttempts);
}
?>
这是我在游戏中使用的粗略主要逻辑,但显然我希望用户提交的信函代替手动分配的 $userLetter 变量值。稍后我也会写一个单词生成器。
这段代码虽然显然非常基本,但可以完成我认为游戏需要的大部分工作,但我只是想让提交的东西正常工作,并且在它被解决时不会破坏单词的显示/数组等。
我意识到这是一个措辞不佳的问题,但我希望人们能够理解我的问题的性质,并愿意帮助一个菜鸟。
提前致谢
【问题讨论】:
标签: php forms validation session