Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Двапой

Учим веб-программирование на php

Рекомендованные сообщения

Кароч написал программку для расчета статов гирокоптера на каждом лвле, правда пока без учета плюсов и артефактов. $gbs - Gyro base strange, $gs - Gyro strange, $gpls - Gyro per lvl strange. Читаю второй день книгу http://rutracker.org/forum/viewtopic.php?t=3493259 :nate:

<?
$gbs = $gs = 18; $gba = $ga = 24; $gbi= $gi = 23;
$gpls = 1.8; $gpla = 2.8; $gpli = 2.1;
$lvl = 1;
echo "Gyro basic stats on lvl " . $lvl . " are: " . $gbs . " str " . $gba . " agi " . $gbi . " int " . "<br />" . "<br />";
$lvl = 2;
while ($lvl < 26)
{
raschetprirosta($gs, $ga, $gi);
echo "Gyro str on lvl " . $lvl . " is " . $gs;
echo " Gyro agi on lvl " . $lvl . " is " . $ga;
echo " Gyro int on lvl " . $lvl . " is " . $gi;
echo "<br />";
echo "<br />";
++$lvl;
}
function raschetprirosta(&$n1, &$n2, &$n3)
{
global $gpls, $gpla, $gpli;
$n1 += $gpls;
$n2 += $gpla;
$n3 += $gpli;
}

Поделиться сообщением


Ссылка на сообщение

Кароч написал программку для расчета статов гирокоптера на каждом лвле, правда пока без учета плюсов и артефактов. $gbs - Gyro base strange, $gs - Gyro strange, $gpls - Gyro per lvl strange. Читаю второй день книгу http://rutracker.org...c.php?t=3493259 :nate:

<?
$gbs = $gs = 18; $gba = $ga = 24; $gbi= $gi = 23;
$gpls = 1.8; $gpla = 2.8; $gpli = 2.1;
$lvl = 1;
echo "Gyro basic stats on lvl " . $lvl . " are: " . $gbs . " str " . $gba . " agi " . $gbi . " int " . "<br />" . "<br />";
$lvl = 2;
while ($lvl < 26)
{
raschetprirosta($gs, $ga, $gi);
echo "Gyro str on lvl " . $lvl . " is " . $gs;
echo " Gyro agi on lvl " . $lvl . " is " . $ga;
echo " Gyro int on lvl " . $lvl . " is " . $gi;
echo "<br />";
echo "<br />";
++$lvl;
}
function raschetprirosta(&$n1, &$n2, &$n3)
{
global $gpls, $gpla, $gpli;
$n1 += $gpls;
$n2 += $gpla;
$n3 += $gpli;
}

 

А теперь отфармотируй код, чтобы при этом:

- все перменные были написаны полностью без сокращений и понятно.

- чтобы все непонятные места были прокомментированы.

- чтобы все "магические числа" (числа непонятно откуда) были прокомментированы.

- чтобы в коде было всего два echo - один в функции, дургой вначале кода.

- по возможности избався от глобавльных переменных (гбс, гба и т.д.)

 

Как сможешь все это сделать - выйдешь на новый уровень


Мобильное приложение для продоты https://play.google....id=ru.prodota.m

Поделиться сообщением


Ссылка на сообщение

Вот, пожалуйста :nate:

<?
$GyroStr = 18; $GyroAgi = 24; $GyroInt = 23;    // Присваиваем переменным значения базовых характеристик гирокоптера
$GyroPerlvlStr = 1.8; $GyroPerlvlAgi = 2.8; $GyroPerlvlInt = 2.1;   /* Присваиваем переменным значения приростов статов за уровень.
Можно было сделать и иначе, например, не использовать переменные для прироста статов, а просто в функции "raschetprirosta" прибавлять значения */
$lvl = 1; // Эта переменная обозначает уровень героя, ей мы присваиваем значение 1
echo "Gyro basic stats on lvl " . $lvl . " are: " . $GyroStr . " str " . $GyroAgi . " agi " . $GyroInt . " int " . "<br />" . "<br />"; /* Характеристики
героя на первом уровне соответствуют базовым характеристикам героя */
$lvl = 2; // Прирост статов начинает работать со второго уровня, поэтому присваиваем переменной значение 2
while ($lvl < 26) // Это цикл который будет прогонять нашу функцию со второго уровня по 25
{
raschetprirosta($GyroStr, $GyroAgi, $GyroInt, $lvl, $GyroPerlvlStr, $GyroPerlvlAgi, $GyroPerlvlInt); // Вызов нашей функции
++$lvl; // Префиксный инкремент, который после расчета статов для каждого уровня будет увеличивать значение уровня на единицу
}
function raschetprirosta(&$n1, &$n2, &$n3, $l, $a1, $a2, $a3) // Сама функция. Здесь я использую передачу по ссылке в случае с переменной "n"
{
$n1 += $a1; // К значению силы на предыдущем уровне прибавляется прирост и это все присваивается значению силы на нынешнем уровне
$n2 += $a2;
$n3 += $a3;
// Далее следует вывод на экран характеристик всеми нами любимого гирокоптера
echo <<<_END
 Gyro stats on lvl  $l :
 Str is  $n1
 Agi is  $n2
 Int is  $n3
 <br />
 <br />
_END;
}

Поделиться сообщением


Ссылка на сообщение

Вот, пожалуйста :nate:

<?
$GyroStr = 18; $GyroAgi = 24; $GyroInt = 23;	// Присваиваем переменным значения базовых характеристик гирокоптера
$GyroPerlvlStr = 1.8; $GyroPerlvlAgi = 2.8; $GyroPerlvlInt = 2.1;   /* Присваиваем переменным значения приростов статов за уровень.
Можно было сделать и иначе, например, не использовать переменные для прироста статов, а просто в функции "raschetprirosta" прибавлять значения */
$lvl = 1; // Эта переменная обозначает уровень героя, ей мы присваиваем значение 1
echo "Gyro basic stats on lvl " . $lvl . " are: " . $GyroStr . " str " . $GyroAgi . " agi " . $GyroInt . " int " . "<br />" . "<br />"; /* Характеристики
героя на первом уровне соответствуют базовым характеристикам героя */
$lvl = 2; // Прирост статов начинает работать со второго уровня, поэтому присваиваем переменной значение 2
while ($lvl < 26) // Это цикл который будет прогонять нашу функцию со второго уровня по 25
{
raschetprirosta($GyroStr, $GyroAgi, $GyroInt, $lvl, $GyroPerlvlStr, $GyroPerlvlAgi, $GyroPerlvlInt); // Вызов нашей функции
++$lvl; // Префиксный инкремент, который после расчета статов для каждого уровня будет увеличивать значение уровня на единицу
}
function raschetprirosta(&$n1, &$n2, &$n3, $l, $a1, $a2, $a3) // Сама функция. Здесь я использую передачу по ссылке в случае с переменной "n"
{
$n1 += $a1; // К значению силы на предыдущем уровне прибавляется прирост и это все присваивается значению силы на нынешнем уровне
$n2 += $a2;
$n3 += $a3;
// Далее следует вывод на экран характеристик всеми нами любимого гирокоптера
echo <<<_END
 Gyro stats on lvl  $l :
 Str is  $n1
 Agi is  $n2
 Int is  $n3
 <br />
 <br />
_END;
}

Не вышло. Уменьши количество комментариев. переменные все еще называются по дебильному. Функция тоже. С выводом в виде echo тоже перовал, нге стоит использовать такие конструкции. В общем, все хуйня, давай по новой.

 

Можно было сделать и иначе, например, не использовать переменные для прироста статов, а просто в функции "raschetprirosta" прибавлять значения

Это не имеет значения, это писать нет смысла.

 

Присваиваем переменным значения

Любой адекватный человек и так поймет что это присвоение переменных, так что это тоже писать не надо. (просто - прирост статов за каждый лвл / базовые характеристики героя)

 

 

Переменные не должны начинатся с заглавной буквы. Каждое обозначение переменной начинай с новой строки.

 

Функция не читаемая.

 

Все названия перменных и функций должны писаться на английском языке.

 

$n1 += $a1; - такой хуйни быть не должно

Псы. Если бы мне это кто-нибудь в свое время объяснил, я был бы ему очень благодарен.

 

смотри, примерно прикинул

// начальные статы гирокоптера
$basicStr = 18;
$basicAgi = 24;
$basicInt = 23;

// увеличения для каждого лвла
$incrementStr = 1.8;
$incrementAgi = 2.4;
$incrementInt = 2.1;

//функция получения произвольного значения статов
// возвращает массив статов
function getHeroStats ($level) {
  return array(
  $basicStr + $incrementStr * ($level - 1),
  $basicAgi + $incrementAgi * ($level - 1),
  $basicInt + $incrementInt * ($level - 1),
  );
}

$level = 1;

while($level++ < 25) {
  $stats = getHeroStats($level);
  echo 'Статы гирокоптера на ' . $level . 'lvl - str: ' . $stats[0] . ', agi: ' . $stats[1] . ', int: ' . $stats[2];
}

 

не факт что это запустится, писал прямо тут, но логика верная


Мобильное приложение для продоты https://play.google....id=ru.prodota.m

Поделиться сообщением


Ссылка на сообщение
(изменено)

спс, ща попробую

 

чет везде нули получаются у тебя :hmm:


Изменено пользователем FIZICHESKOE_NASILIE

Поделиться сообщением


Ссылка на сообщение

ну да, надо было так

 


//функция получения произвольного значения статов
// возвращает массив статов
function getHeroStats ($level) {
  // начальные статы гирокоптера
  $basicStr = 18;
  $basicAgi = 24;
  $basicInt = 23;

  // увеличения для каждого лвла
  $incrementStr = 1.8;
  $incrementAgi = 2.4;
  $incrementInt = 2.1;

  return array(
	  $basicStr + $incrementStr * ($level - 1),
	  $basicAgi + $incrementAgi * ($level - 1),
	  $basicInt + $incrementInt * ($level - 1)
  );
}

$level = 1;

while($level++ < 25) {
  $stats = getHeroStats($level);
  echo 'Статы гирокоптера на ' . $level . 'lvl - str: ' . $stats[0] . ', agi: ' . $stats[1] . ', int: ' . $stats[2];
}

 

так даже лучше - нет глобавльных перменных лишних


Мобильное приложение для продоты https://play.google....id=ru.prodota.m

Поделиться сообщением


Ссылка на сообщение
Гость morfeius

Спс за топик, изучу обязательно :avtoradolf:

Поделиться сообщением


Ссылка на сообщение

вот этот вариант у меня заработал (пхп 5.3)

 

<?
// Базовые характеристики гирокоптера
$basicStr = 18;
$basicAgi  = 24;
$basicInt  = 23;
// Прирост статов   
$incrementStr = 1.8;
$incrementAgi = 2.8;
$incrementInt = 2.1;  
//функция получения произвольного значения статов
// возвращает массив статов
function getHeroStats ($l, &$b1, &$b2, &$b3, $i1, $i2, $i3) {
  return array(
	  $b1 + $i1 * ($l - 1),
	  $b2 + $i2 * ($l - 1),
	  $b3 + $i3 * ($l - 1),
  );
}
$level = 0;
while(++$level < 26) {
  $stats = getHeroStats($level, $basicStr, $basicAgi, $basicInt, $incrementStr, $incrementAgi, $incrementInt);
  echo 'Gyro stats on ' . $level . 'lvl - str: ' . $stats[0] . ', agi: ' . $stats[1] . ', int: ' . $stats[2] . "<br />" . "<br />";
}

Поделиться сообщением


Ссылка на сообщение

это пиздец

 

$stats = getHeroStats($level, $basicStr, $basicAgi, $basicInt, $incrementStr, $incrementAgi, $incrementInt);

 

 

не делай так

 

и указателей избегай, там где они не нужны


Мобильное приложение для продоты https://play.google....id=ru.prodota.m

Поделиться сообщением


Ссылка на сообщение

это пиздец

 

$stats = getHeroStats($level, $basicStr, $basicAgi, $basicInt, $incrementStr, $incrementAgi, $incrementInt);

 

 

не делай так

 

и указателей избегай, там где они не нужны

 

я уже понял. Просто книга то малость устаревшая как я понял)

вот, довел до ума

 

 

 

<?
function getHeroStats ($level) {
// Базовые характеристики гирокоптера
$basicStr = 18;
$basicAgi  = 24;
$basicInt  = 23;
// Прирост статов   
$incrementStr = 1.8;
$incrementAgi = 2.8;
$incrementInt = 2.1;  
//функция получения произвольного значения статов
// возвращает массив статов
  return array(
	  $basicStr + $incrementStr * ($level - 1),
	  $basicAgi + $incrementAgi * ($level - 1),
	  $basicInt + $incrementInt * ($level - 1),
  );
}
$level = 0;
while($level++ < 25) {
  $stats = getHeroStats($level);
  echo 'Gyro stats on ' . $level . 'lvl - str: ' . $stats[0] . ', agi: ' . $stats[1] . ', int: ' . $stats[2] . "<br />" . "<br />";
}

 

 

Поделиться сообщением


Ссылка на сообщение

Автору огромное спасибо за топан, начинаю изучать.


Первый официальный фанат ФК Жирона.  

GET HIGHER написал 06.05.2024 в 23:20:

скам x200

 

Поделиться сообщением


Ссылка на сообщение

Нахуя вам книжки, самая лучшая книга это чужой код. Есть доки, статьи, мне вот, например, этого хватает. Читал книгу только по джанго, и то, чтоб понять, как работает MVC, так как до этого не сталкивался


Русскоязычное сообщество Minecraft(кликабельно)

1ca7e1e06394857c53618143360f09cb.jpg

 

Королева боли

queen_of_pain_by_askatao-d4rsys0.jpg

 

 

Нежданчик

anigif_enhanced-buzz-26791-1354299164-7.gif

 

Поделиться сообщением


Ссылка на сообщение

Нахуя вам книжки, самая лучшая книга это чужой код. Есть доки, статьи, мне вот, например, этого хватает. Читал книгу только по джанго, и то, чтоб понять, как работает MVC, так как до этого не сталкивался

чтобы получить базу, потом уже офк практика

Поделиться сообщением


Ссылка на сообщение

Пожалуй лучше не сюда было бы написать, ну всё же спрошу здесь. html , php , css : как они связаны? И вроде же лучше сначала html(html5?) изучить а потом уже phph\css?

Поделиться сообщением


Ссылка на сообщение
(изменено)

Пожалуй лучше не сюда было бы написать, ну всё же спрошу здесь. html , php , css : как они связаны? И вроде же лучше сначала html(html5?) изучить а потом уже phph\css?

html/css - для верстки страниц. С помощью них можно создавать статические страницы, задавать их внешний вид. Php добавляет логики, позволяет создавать динамические страницы

Сначала учишь html+css, потом выбираешь, на чем будешь программировать(php, js, python, ruby etc)


Изменено пользователем rogogo

Русскоязычное сообщество Minecraft(кликабельно)

1ca7e1e06394857c53618143360f09cb.jpg

 

Королева боли

queen_of_pain_by_askatao-d4rsys0.jpg

 

 

Нежданчик

anigif_enhanced-buzz-26791-1354299164-7.gif

 

Поделиться сообщением


Ссылка на сообщение

это пиздец

 

$stats = getHeroStats($level, $basicStr, $basicAgi, $basicInt, $incrementStr, $incrementAgi, $incrementInt);

 

 

не делай так

 

и указателей избегай, там где они не нужны

 

я уже понял. Просто книга то малость устаревшая как я понял)

вот, довел до ума

 

 

 

<?
function getHeroStats ($level) {
// Базовые характеристики гирокоптера
$basicStr = 18;
$basicAgi  = 24;
$basicInt  = 23;
// Прирост статов   
$incrementStr = 1.8;
$incrementAgi = 2.8;
$incrementInt = 2.1;  
//функция получения произвольного значения статов
// возвращает массив статов
  return array(
         $basicStr + $incrementStr * ($level - 1),
         $basicAgi + $incrementAgi * ($level - 1),
         $basicInt + $incrementInt * ($level - 1),
  );
}
$level = 0;
while($level++ < 25) {
  $stats = getHeroStats($level);
  echo 'Gyro stats on ' . $level . 'lvl - str: ' . $stats[0] . ', agi: ' . $stats[1] . ', int: ' . $stats[2] . "<br />" . "<br />";
}

 

 

та книга не устаревшая, все работает. Почему ты вдруг решил, что она стара для тебя?

 

Би май дарлинг

 

Поделиться сообщением


Ссылка на сообщение
(изменено)

Cмысл функции getHeroStats, если там все значения прироста и базовых статов дефолтные.


Изменено пользователем rogogo

Русскоязычное сообщество Minecraft(кликабельно)

1ca7e1e06394857c53618143360f09cb.jpg

 

Королева боли

queen_of_pain_by_askatao-d4rsys0.jpg

 

 

Нежданчик

anigif_enhanced-buzz-26791-1354299164-7.gif

 

Поделиться сообщением


Ссылка на сообщение

это пиздец

 

$stats = getHeroStats($level, $basicStr, $basicAgi, $basicInt, $incrementStr, $incrementAgi, $incrementInt);

 

 

не делай так

 

и указателей избегай, там где они не нужны

 

я уже понял. Просто книга то малость устаревшая как я понял)

вот, довел до ума

 

 

 

<?
function getHeroStats ($level) {
// Базовые характеристики гирокоптера
$basicStr = 18;
$basicAgi  = 24;
$basicInt  = 23;
// Прирост статов  
$incrementStr = 1.8;
$incrementAgi = 2.8;
$incrementInt = 2.1;  
//функция получения произвольного значения статов
// возвращает массив статов
  return array(
	  $basicStr + $incrementStr * ($level - 1),
	  $basicAgi + $incrementAgi * ($level - 1),
	  $basicInt + $incrementInt * ($level - 1),
  );
}
$level = 0;
while($level++ < 25) {
  $stats = getHeroStats($level);
  echo 'Gyro stats on ' . $level . 'lvl - str: ' . $stats[0] . ', agi: ' . $stats[1] . ', int: ' . $stats[2] . "<br />" . "<br />";
}

 

 

та книга не устаревшая, все работает. Почему ты вдруг решил, что она стара для тебя?

ну да, там походу для примера приводятся глобальные переменные, вывод через <<<_END, указатели и все такое. Вот я в первом моем случае использовал все это в одном примере. Получилось офк нерентабельно, двапой забраковал все. Ну я и подумал что глобал переменные, о которых в книге пишется, уже не актуальны. Ну мб они действительно только для примера там.

 

Cмысл функции getHeroStats, если там все значения прироста и базовых статов дефолтные.

я просто проходил материал с функциями и решил свой пример сделать, где все, что я уже изучил будет использоваться.

Поделиться сообщением


Ссылка на сообщение

Присоединяйтесь к обсуждению

Вы можете опубликовать сообщение сейчас, а зарегистрироваться позже. Если у вас есть аккаунт, войдите в него для написания от своего имени.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Восстановить форматирование

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

Загрузка...

×
×
  • Создать...