
سلام رفیق! اگه دنبال اینی که یه بازی ساده و باحال برای وب بسازی و میخوای از PHP استفاده کنی، جای درستی اومدی! تو این مقاله قراره قدم به قدم باهم یاد بگیریم چطور میتونیم با PHP بازیهای ساده وب بسازیم. از مفاهیم پایه تا یه مثال عملی، همهچیز رو پوشش میدم. آمادهای؟ بزن بریم!
شاید بگی PHP بیشتر برای سایتهای داینامیک و مدیریت سرور معروفه، پس چرا برای بازی؟ خب، دلایل خوبی داره:
البته، PHP برای بازیهای سنگین و گرافیکی مثل Unity مناسب نیست، ولی برای بازیهای ساده مثل حدس عدد، تیکتکتو یا حتی پازلهای سبک، عالیه!
قبل از شروع، باید یه سری چیزا رو آماده کنی:
اولین قدم اینه که تصمیم بگیری چه بازیای میخوای بسازی. برای این مقاله، من یه بازی "حدس عدد" رو انتخاب میکنم. تو این بازی:
چرا این بازی؟ چون سادهست، منطقش سمت سروره و میتونی با PHP راحت پیادهسازیش کنی.
برای بازیمون یه ساختار ساده درست میکنیم:
guess_number/ ├── index.php # صفحه اصلی بازی ├── game.php # منطق پردازش بازی ├── styles.css # استایلهای بازی ├── scripts.js # جاوااسکریپت برای تعاملات └── scores.txt # فایل برای ذخیره امتیازات
حالا بریم سراغ کدها. من هر بخش رو جدا توضیح میدم و کد کامل رو میذارم.
این فایل رابط کاربری بازی رو میسازه. یه فرم ساده برای وارد کردن عدد و نمایش پیامها.
<!DOCTYPE html> <html lang="fa"> <head> <meta charset="UTF-8"> <title>بازی حدس عدد</title> <link rel="stylesheet" href="styles.css"> </head> <body> <div class="container"> <h1>بازی حدس عدد</h1> <p>یه عدد بین 1 تا 100 حدس بزن!</p> <?php session_start(); if (!isset($_SESSION['number'])) { $_SESSION['number'] = rand(1, 100); $_SESSION['attempts'] = 0; } if (isset($_SESSION['message'])) { echo '<p class="message">' . $_SESSION['message'] . '</p>'; unset($_SESSION['message']); } ?> <form action="game.php" method="post"> <input type="number" name="guess" min="1" max="100" required> <button type="submit">حدس بزن!</button> </form> <p>تعداد تلاشها: <?php echo $_SESSION['attempts']; ?></p> <a href="index.php?reset=true">شروع دوباره</a> </div> <script src="scripts.js"> </body> </html>
توضیحات:
session برای ذخیره عدد تصادفی و تعداد تلاشها استفاده کردیم.?reset=true جلسه پاک میشه.game.php درخواست میفرسته.این فایل حدس کاربر رو بررسی میکنه و پیام مناسب تولید میکنه.
<?php session_start(); if (isset($_GET['reset'])) { session_destroy(); header("Location: index.php"); exit(); } if ($_SERVER['REQUEST_METHOD'] == 'POST') { $guess = (int)$_POST['guess']; $_SESSION['attempts']++; if ($guess == $_SESSION['number']) { $_SESSION['message'] = "آفرین! درست حدس زدی! عدد: {$_SESSION['number']} بود." saveScore($_SESSION['attempts']); session_destroy(); } elseif ($guess < $_SESSION['number']) { $_SESSION['message'] = "عددت خیلی کوچیکه! یه عدد بزرگتر حدس بزن." } else { $_SESSION['message'] = "عددت خیلی بزرگه! یه عدد کوچکتر حدس بزن." } } function saveScore($attempts) { $score = "کاربر در $attempts تلاش برنده شد!\n" file_put_contents('scores.txt', $score, FILE_APPEND); } header("Location: index.php"); exit(); ?>
توضیحات:
scores.txt ذخیره میشه.برای اینکه بازی قشنگ به نظر بیاد، یه کم استایل اضافه میکنیم.
body { font-family: Arial, sans-serif; background-color: #f0f0f0; display: flex; justify-content: center; align-items: center; height: 100vh; margin: 0; direction: rtl; } .container { background-color: white; padding: 20px; border-radius: 10px; box-shadow: 0 0 10px rgba(0, 0, 0, 0.1); text-align: center; } input[type="number"] { padding: 10px; margin: 10px; width: 100px; } button { padding: 10px 20px; background-color: #28a745; color: white; border: none; border-radius: 5px; cursor: pointer; } button:hover { background-color: #218838; } .message { color: #dc3545; font-weight: bold; }
برای یه کم تعامل بیشتر، مثلاً فوکوس خودکار روی ورودی.
document.querySelector('input[name="guess"]').focus();
حالا که بازی پایه آمادهست، میتونی این ویژگیها رو اضافه کنی:
مثلاً برای دیتابیس، میتونی این کد رو به game.php اضافه کنی:
function saveScore($attempts) { $conn = new mysqli("localhost", "username", "password", "game_db"); if ($conn->connect_error) { die("اتصال به دیتابیس خراب شد: " . $conn->connect_error); } $stmt = $conn->prepare("INSERT INTO scores (attempts, date) VALUES (?, NOW())"); $stmt->bind_param("i", $attempts); $stmt->execute(); $stmt->close(); $conn->close(); }
بازی رو تو مرورگر تست کن:
error_log() یا ابزارهای دیباگ PHP استفاده کن.با PHP میتونی بازیهای ساده وب بسازی که هم سرگرمکنندهست و هم آموزشی. بازی حدس عدد فقط یه نمونه بود. میتونی ایدههای خلاقانهتری مثل بازی حافظه، پازل یا حتی نسخه ساده شطرنج بسازی. مهم اینه که قدم به قدم پیش بری و از کدنویسی لذت ببری!
اگه سوال یا ایدهای داری، تو کامنتها بنویس. حالا برو یه بازی باحال بساز و نشونمون بده!