Лайт колхоз
Лайт кх
Для начала, создадим файл `index.php`, в котором будем описывать логику игры:
```php
<?php
session_start();
if (!isset($_SESSION['plants'])) {
$_SESSION['plants'] = [];
}
if (!isset($_SESSION['money'])) {
$_SESSION['money'] = 100;
}
if (!isset($_SESSION['rating'])) {
$_SESSION['rating'] = 0;
}
if (!isset($_SESSION['level'])) {
$_SESSION['level'] = 1;
}
if (isset($_POST['action'])) {
switch ($_POST['action']) {
case 'buy':
buyPlant($_POST['plant']);
break;
case 'sell':
sellPlant($_POST['plant']);
break;
}
}
$plants = [
[
'name' => 'Розы',
'price' => 20,
'time' => 60,
'image' => 'https://cdn.pixabay.com/photo/2016/08/14/14/19/rose-1598990_960_720.jpg',
],
[
'name' => 'Тюльпаны',
'price' => 10,
'time' => 30,
'image' => 'https://cdn.pixabay.com/photo/2016/05/05/02/37/tulip-1379043_960_720.jpg',
],
[
'name' => 'Лаванда',
'price' => 15,
'time' => 40,
'image' => 'https://cdn.pixabay.com/photo/2017/07/14/18/59/lavender-2502094_960_720.jpg',
],
];
function buyPlant($plantIndex)
{
global $plants;
global $money;
if ($_SESSION['money'] >= $plants[$plantIndex]['price']) {
$_SESSION['money'] -= $plants[$plantIndex]['price'];
$_SESSION['plants'][] = [
'name' => $plants[$plantIndex]['name'],
'time' => time() + $plants[$plantIndex]['time'],
];
}
}
function sellPlant($plantIndex)
{
global $plants;
global $money;
if (isset($_SESSION['plants'][$plantIndex])) {
$plant = $_SESSION['plants'][$plantIndex];
if (time() >= $plant['time']) {
$_SESSION['money'] += $plants[array_search($plant['name'], array_column($plants, 'name'))]['price'];
unset($_SESSION['plants'][$plantIndex]);
$_SESSION['rating'] += 1;
if ($_SESSION['rating'] % 10 == 0) {
$_SESSION['level'] += 1;
}
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Садовник</title>
</head>
<body>
<h1>Садовник</h1>
<p>У вас есть <?php echo $_SESSION['money']; ?> монет и ваш рейтинг <?php echo $_SESSION['rating']; ?> (уровень <?php echo $_SESSION['level']; ?>)</p>
<h2>Купить растение</h2>
<?php foreach ($plants as $key => $plant): ?>
<div style="display: inline-block; margin-right: 20px">
<p><?php echo $plant['name']; ?></p>
<img src="<?php echo $plant['image']; ?>" width="200" height="200">
<p>Цена: <?php echo $plant['price']; ?> монет</p>
<form method="POST">
<input type="hidden" name="action" value="buy">
<input type="hidden" name="plant" value="<?php echo $key; ?>">
<button type="submit">Купить</button>
</form>
</div>
<?php endforeach; ?>
<h2>Продать растение</h2>
<?php foreach ($_SESSION['plants'] as $key => $plant): ?>
<div style="display: inline-block; margin-right: 20px">
<p><?php echo $plant['name']; ?></p>
<img src="<?php echo $plants[array_search($plant['name'], array_column($plants, 'name'))]['image']; ?>" width="200" height="200">
<?php if (time() < $plant['time']): ?>
<p>Готовность: <?php echo $plant['time'] - time(); ?> секунд</p>
<?php else: ?>
<form method="POST">
<input type="hidden" name="action" value="sell">
<input type="hidden" name="plant" value="<?php echo $key; ?>">
<button type="submit">Продать за <?php echo $plants[array_search($plant['name'], array_column($plants, 'name'))]['price']; ?> монет</button>
</form>
<?php endif; ?>
</div>
<?php endforeach; ?>
</body>
</html>
```
В этом файле мы используем сессии для хранения данных игрока, таких как список растений (`$_SESSION['plants']`), количество денег (`$_SESSION['money']`), рейтинг (`$_SESSION['rating']`) и уровень (`$_SESSION['level']`).
Мы также создали функции `buyPlant()` и `sellPlant()`, которые позволяют игроку покупать и продавать растения соответственно.
В файле `index.php` мы выводим список доступных растений и кнопки для их покупки, а также список растений, которые игрок уже вырастил, с кнопками для их продажи.
Теперь нам нужно создать файл `update.php`, который будет обновлять состояние растений в сессии, когда они будут готовы к продаже:
```php
<?php
session_start();
if (isset($_SESSION['plants'])) {
foreach ($_SESSION['plants'] as $key => $plant) {
if (time() >= $plant['time']) {
unset($_SESSION['plants'][$key]);
$_SESSION['rating'] += 1;
if ($_SESSION['rating'] % 10 == 0) {
$_SESSION['level'] += 1;
}
}
}
}
?>
```
Мы используем этот файл, чтобы обновлять состояние растений в сессии каждую минуту. Для этого мы можем добавить следующий код в `index.php`:
```html
<script>
setInterval(function() {
var xhr = new XMLHttpRequest();
xhr.open('GET', 'update.php', true);
xhr.send();
location.reload();
}, 60000);
</script>
```
Этот код отправляет AJAX-запрос на файл `update.php` каждую минуту и перезагружает страницу, чтобы обновить состояние растений и показать, какие растения готовы к продаже.
Теперь мы можем запустить нашу игру, открыв файл `index.php` в браузере.
Для начала, создадим файл `index.php`, в котором будем описывать логику игры:
```php
<?php
session_start();
if (!isset($_SESSION['plants'])) {
$_SESSION['plants'] = [];
}
if (!isset($_SESSION['money'])) {
$_SESSION['money'] = 100;
}
if (!isset($_SESSION['rating'])) {
$_SESSION['rating'] = 0;
}
if (!isset($_SESSION['level'])) {
$_SESSION['level'] = 1;
}
if (isset($_POST['action'])) {
switch ($_POST['action']) {
case 'buy':
buyPlant($_POST['plant']);
break;
case 'sell':
sellPlant($_POST['plant']);
break;
}
}
$plants = [
[
'name' => 'Розы',
'price' => 20,
'time' => 60,
'image' => 'https://cdn.pixabay.com/photo/2016/08/14/14/19/rose-1598990_960_720.jpg',
],
[
'name' => 'Тюльпаны',
'price' => 10,
'time' => 30,
'image' => 'https://cdn.pixabay.com/photo/2016/05/05/02/37/tulip-1379043_960_720.jpg',
],
[
'name' => 'Лаванда',
'price' => 15,
'time' => 40,
'image' => 'https://cdn.pixabay.com/photo/2017/07/14/18/59/lavender-2502094_960_720.jpg',
],
];
function buyPlant($plantIndex)
{
global $plants;
global $money;
if ($_SESSION['money'] >= $plants[$plantIndex]['price']) {
$_SESSION['money'] -= $plants[$plantIndex]['price'];
$_SESSION['plants'][] = [
'name' => $plants[$plantIndex]['name'],
'time' => time() + $plants[$plantIndex]['time'],
];
}
}
function sellPlant($plantIndex)
{
global $plants;
global $money;
if (isset($_SESSION['plants'][$plantIndex])) {
$plant = $_SESSION['plants'][$plantIndex];
if (time() >= $plant['time']) {
$_SESSION['money'] += $plants[array_search($plant['name'], array_column($plants, 'name'))]['price'];
unset($_SESSION['plants'][$plantIndex]);
$_SESSION['rating'] += 1;
if ($_SESSION['rating'] % 10 == 0) {
$_SESSION['level'] += 1;
}
}
}
}
?>
<!DOCTYPE html>
<html>
<head>
<title>Садовник</title>
</head>
<body>
<h1>Садовник</h1>
<p>У вас есть <?php echo $_SESSION['money']; ?> монет и ваш рейтинг <?php echo $_SESSION['rating']; ?> (уровень <?php echo $_SESSION['level']; ?>)</p>
<h2>Купить растение</h2>
<?php foreach ($plants as $key => $plant): ?>
<div style="display: inline-block; margin-right: 20px">
<p><?php echo $plant['name']; ?></p>
<img src="<?php echo $plant['image']; ?>" width="200" height="200">
<p>Цена: <?php echo $plant['price']; ?> монет</p>
<form method="POST">
<input type="hidden" name="action" value="buy">
<input type="hidden" name="plant" value="<?php echo $key; ?>">
<button type="submit">Купить</button>
</form>
</div>
<?php endforeach; ?>
<h2>Продать растение</h2>
<?php foreach ($_SESSION['plants'] as $key => $plant): ?>
<div style="display: inline-block; margin-right: 20px">
<p><?php echo $plant['name']; ?></p>
<img src="<?php echo $plants[array_search($plant['name'], array_column($plants, 'name'))]['image']; ?>" width="200" height="200">
<?php if (time() < $plant['time']): ?>
<p>Готовность: <?php echo $plant['time'] - time(); ?> секунд</p>
<?php else: ?>
<form method="POST">
<input type="hidden" name="action" value="sell">
<input type="hidden" name="plant" value="<?php echo $key; ?>">
<button type="submit">Продать за <?php echo $plants[array_search($plant['name'], array_column($plants, 'name'))]['price']; ?> монет</button>
</form>
<?php endif; ?>
</div>
<?php endforeach; ?>
</body>
</html>
```
В этом файле мы используем сессии для хранения данных игрока, таких как список растений (`$_SESSION['plants']`), количество денег (`$_SESSION['money']`), рейтинг (`$_SESSION['rating']`) и уровень (`$_SESSION['level']`).
Мы также создали функции `buyPlant()` и `sellPlant()`, которые позволяют игроку покупать и продавать растения соответственно.
В файле `index.php` мы выводим список доступных растений и кнопки для их покупки, а также список растений, которые игрок уже вырастил, с кнопками для их продажи.
Теперь нам нужно создать файл `update.php`, который будет обновлять состояние растений в сессии, когда они будут готовы к продаже:
```php
<?php
session_start();
if (isset($_SESSION['plants'])) {
foreach ($_SESSION['plants'] as $key => $plant) {
if (time() >= $plant['time']) {
unset($_SESSION['plants'][$key]);
$_SESSION['rating'] += 1;
if ($_SESSION['rating'] % 10 == 0) {
$_SESSION['level'] += 1;
}
}
}
}
?>
```
Мы используем этот файл, чтобы обновлять состояние растений в сессии каждую минуту. Для этого мы можем добавить следующий код в `index.php`:
```html
<script>
setInterval(function() {
var xhr = new XMLHttpRequest();
xhr.open('GET', 'update.php', true);
xhr.send();
location.reload();
}, 60000);
</script>
```
Этот код отправляет AJAX-запрос на файл `update.php` каждую минуту и перезагружает страницу, чтобы обновить состояние растений и показать, какие растения готовы к продаже.
Теперь мы можем запустить нашу игру, открыв файл `index.php` в браузере.
колхоз
Рейтинг:
+ 8
- 2
(Плюс
/ Минус
)
Просмотров: 1661
Дата: 18 мая 2023, в 18:16
Добавил: МАНЬЯК_ЧИКАТИЛО
Авторизируйтесь для просмотра комментариев