2015-05-25 62 views
1

所以我決定試一試PHP,在完成了一些在線課程後,我在一定程度上具備了基礎知識。PHP初學者 - 一個正在運行的總數

我一直在試圖通過一個簡單的遊戲來測試我的自我。

在遊戲中,您下注的金額爲1到100之間的隨機數字,如果數字超過60,您的投注額翻倍,如果低於60,則您扣除下注金額。

我堅持創建一個運行總數,將不勝感激任何意見。下面(道歉糟糕的代碼:P)

代碼

<?php 
$rand = rand(1,100); 
$usrBet = $_POST['usrBet']; 
$usrCredit = 1000; 

if ($rand > 60) { 
$usrCredit = ($usrCredit - $usrBet) + ($usrBet * 2); 
echo "Your Bet : " ,$usrBet; 
echo "<br>"; 
echo "The Banker Rolled : " ,$rand; 
echo "<br>"; 
echo "You Win"; 
echo "<br>"; 
echo "Current Credits : " ,$usrCredit; 
} else { 
$usrCredit = $usrCredit - $usrBet; 
echo "Your Bet : " ,$usrBet; 
echo "<br>"; 
echo "Aww Snap! you loose!"; 
echo "<br>"; 
echo "The Banker Rolled : " ,$rand; 
echo "<br>"; 
echo "Current Credits : " ,$usrCredit; 
} 

?> 

    <form action="dicegame.php" method="post"> 
    <INPUT TYPE = "Text" VALUE ="Please Enter Your Bet" NAME = "usrBet" placeholder="Please Enter Your Bet"> 
    <p><input type="submit" /></p> 
    </form> 
+0

編輯。我希望用戶從1000學分開始,數學運作正常,但每次輸入的金額都重置爲1000學分,請提前致謝 – JackGalway

+0

您需要爲此使用會話。 http://www.tizag.com/phpT/phpsessions.php http://php.net/manual/en/intro.session.php Alternativley您可以將用戶的當前信用級別作爲表單中的隱藏輸入字段。這可以由用戶操縱。 – chris85

+0

謝謝你的建議。在開始時將1000分配給$ usrCredits做錯了事情? – JackGalway

回答

0

我嘗試添加一些功能,以便ü可以用這種方式搜索。正如所說的$ _SESSION將解決pbm。

<?php 
session_start(); 
?> 
<!DOCTYPE html> 
<html> 
<head> 
<script> 
    <!-- Some few lines of JS - to disable characters input --> 
    function isNumberKey(evt) 
    { 
     var charCode = (evt.which) ? evt.which : event.keyCode 
     if (charCode > 31 && (charCode < 48 || charCode > 57)) 
      return false; 
     return true; 
    }  
</script> 
    </head> 
    <body> 

    <!-- U'll to re-edit the target of the form + changed type to number for input --> 
    <form action="7.php" method="post"> 
     <input type="number" name="usrBet" value="Plz Enter Your Bet" 
       placeholder="Plz Enter Your Bet" onkeypress="return isNumberKey(event)"> 
     <br> 
     <input type="submit" value="Submit"> 
    </form> 
</body> 
</html> 
<?php 

// Check if user entered a value 
if (isset($_POST['usrBet'])) 
{ 
    if($_POST['usrBet'] == '') 
    $usrBet = 0; 
else 
    $usrBet = $_POST['usrBet']; 

$rand = rand(1,100); 

if(!isset($_SESSION['usrCredit'])) 
     $_SESSION['usrCredit'] = 1000; 
if($rand > 60) 
{ 
    $_SESSION['usrCredit'] = ($_SESSION['usrCredit'] - $usrBet) + ($usrBet * 2); 
    echo "Your Bet : " . $usrBet; 
    echo "<br>"; 
    echo "The Banker Rolled : " . $rand; 
    echo "<br>"; 
    echo "You Won"; 
    echo "<br>"; 
    echo "Current Credits : " . $_SESSION['usrCredit']; 
} 

else 
{ 
    $_SESSION['usrCredit'] = $_SESSION['usrCredit'] - $usrBet; 

    echo "Your Bet : " . $usrBet; 
    echo "<br>"; 
    echo "Aww Snap! you lost!"; 
    echo "<br>"; 
    echo "The Banker Rolled : " . $rand; 
    echo "<br>"; 
    echo "Current Credits : " . $_SESSION['usrCredit']; 
} 
} 
?> 
2

你必須使用會話存儲數據,這樣的比分不會重置

對於使用會話你已經開始喜歡這個

session_start(); 

您必須將會議檢查是否在會話中分配了值,如果不是這意味着用戶有第一次嘗試,所以我們將在開始會話時記入1000點,如圖所示

if(!isset($_SESSION['userCredits'])){ 
    $_SESSION['userCredits'] = 1000; 
} 

,當用戶信用更新,我們必須更新會話喜歡這個

$_SESSION['userCredits'] = $usrCredit; 

如果用戶首先出現在頁面上,我們並不想先給結果,以便檢查形式是後在這樣的條件開始。

if(isset($_POST['usrBet'])){ 
// PHP CODE 
} 

畢竟這最後的代碼看起來像這樣

<?php 
session_start(); 

if(!isset($_SESSION['userCredits'])){ 
     $_SESSION['userCredits'] = 1000; 
} 


if(isset($_POST['usrBet'])){ 

    $rand = rand(1,100); 
    $usrBet = $_POST['usrBet']; 
    $usrCredit = $_SESSION['userCredits']; 

    if ($rand > 60) { 
     $usrCredit = ($usrCredit - $usrBet) + ($usrBet * 2); 
     echo "Your Bet : " ,$usrBet; 
     echo "<br>"; 
     echo "The Banker Rolled : " ,$rand; 
     echo "<br>"; 
     echo "You Win"; 
     echo "<br>"; 
     echo "Current Credits : " ,$usrCredit; 
    } else { 
     $usrCredit = $usrCredit - $usrBet; 
     echo "Your Bet : " ,$usrBet; 
     echo "<br>"; 
     echo "Aww Snap! you loose!"; 
     echo "<br>"; 
     echo "The Banker Rolled : " ,$rand; 
     echo "<br>"; 
     echo "Current Credits : " ,$usrCredit; 
    } 

    $_SESSION['userCredits'] = $usrCredit; 

} 

?> 

<form action="dicegame.php" method="post"> 
    <INPUT TYPE = "Text" NAME = "usrBet" placeholder="Please Enter Your Bet"> 
    <p><input type="submit" /></p> 
</form> 

您可以將它添加更多的條件。希望這會幫助

+1

對每個人都是一個巨大的謝意!非常感謝 – JackGalway

+1

@JackGalway這個答案是有效的,並且爲了將問題標記爲已解決,並且告訴Stack中的每個人解決方案已經解決,接受答案。以下是http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work然後返回到答案,然後執行相同的複選標記,直到它變爲綠色。 –