Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Помогите с кодом, учусь
Prodi  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 1
Пользователь №: 42808
На форуме: 8 месяцев, 4 дня
Карма:




ТОварищи ! взрывается мозг . учусь (.
Поставлена такая задача :

Напиши генератор случайного имени для кошки, собаки, брата или сестры .

Код: http://codepad.org/mjuhN3fg или http://ideone.com/6RqNUq



<?php

error_reporting(-1);

/* Слоги, из которых составляется имя */
$letters = array(
'ко', 'и', 'дзу', 'ми',
'са', 'ку', 'ра', 'да',
'чи', 'а', 'ки', 'ми',
'на', 'го', 'ха', 'ру'
);

/* В эту переменную запишем получившееся имя */
$name = ' ';

/* Гененрируем 4 слога */
for ($i = 1; $i <= 4; $i++) {
/* Выкидываем случайное число (count - число элементов в массиве) */
$random = ...;
$randomText = ...;

echo "Выпало число {$random}, слог {$randomText}\n";
....

}

echo "------\n";
echo "Советую имя: {$name} - не прогадаешь!\n";



не могу никак .....
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Undertaker  
[x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 312
Пользователь №: 31230
На форуме: 4 года, 10 месяцев, 17 дней
Карма:




Создаёшь массив, где ключи прописываешь ручками, затем цикл от одного до 4-х, в цикле выбираешь рандомное число от одного, до "конца массива", дописываешь к $name элемент массива, ключ которого соответствует выпавшему числу... Вы великолепны
Можно ещё добавить проверку, что бы числа не повторялись и т.д.

/* Слоги, из которых составляется имя */
$letters = array(
1 => "ко",
2 => "и",
3 => "дзу",
4 => "ми",
5 => "са",
6 => "ку",
7 => "ра",
8 => "да",
9 => "чи",
10 => "а",
11 => "ки",
12 => "ми",
13 => "на",
14 => "го",
15 => "ха",
16 => "ру"
);
$name="";

/* Гененрируем 4 слога    */
for ($i = 1; $i <= 4; $i++) {  
    /* Выкидываем случайное число (count - число элементов в массиве) */
    $random = rand(1, 16);
    $name.=$letters[$random];
   
    echo "Выпало число ".$random.", слог ".$letters[$random]."<br />";

}

echo "------<br />";
echo "Советую имя: ".$name." - не прогадаешь!<br />";


--------------------
Из отчета службы безопасности:
... по поводу взлома китайцами сервера Пентагона:
1) Каждый китаец попробовал один пароль.
2) Каждый второй пароль был - maodzedun.
3) На 657983241-й попытке сервер согласился что у него пароль - maodzedun
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
kaww  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1755
Пользователь №: 20757
На форуме: 6 лет, 10 месяцев, 8 дней
Карма: 184




Цитата (Undertaker @ 7.04.2016 - 02:48)
Создаёшь массив, где ключи прописываешь ручками

Это еще зачем?
Найди 10 отличий:

var_dump(['foo', 'bar']);
//и
var_dump([0 => 'foo', 1 => 'bar']);

ТС'у нужно просто вставить недостающий код вместо .... Это:
1. rand(0, count($letters) - 1)
2. $letters[$random]
3. $name .= $randomText;
Упс, кажется, решил задачу за тса.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Undertaker  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 312
Пользователь №: 31230
На форуме: 4 года, 10 месяцев, 17 дней
Карма:




kaww
Цитата
Это еще зачем?

Ну я начал массив с единицы, но ты же не стал внимательно смотреть, что я написал
Цитата
rand(0, count($letters) - 1)

Ну я бы тоже так сделал, однако автор учится... Да и массив прописывает ручками, так что будет полезней если он сразу будет понимать что делает, а не тупо копипастит...
Цитата
2. $letters[$random]
3. $name .= $randomText;
Упс, кажется, решил задачу за тса.

Тут впрочем ничего нового...


--------------------
Из отчета службы безопасности:
... по поводу взлома китайцами сервера Пентагона:
1) Каждый китаец попробовал один пароль.
2) Каждый второй пароль был - maodzedun.
3) На 657983241-й попытке сервер согласился что у него пароль - maodzedun
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
kaww  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1755
Пользователь №: 20757
На форуме: 6 лет, 10 месяцев, 8 дней
Карма: 184




Цитата (Undertaker @ 7.04.2016 - 03:28)
но ты же не стал внимательно смотреть

Стал, и видел это, но
Цитата (Undertaker @ 7.04.2016 - 03:28)
однако автор учится

а ты учишь плохому.
Цитата (Undertaker @ 7.04.2016 - 03:28)
Да и массив прописывает ручками

Судя по всему приведенный код - это условие задачи, и автор должен работать именно с ним. Может, конечно, это не так. Это сможет прояснить ТС, если появится в теме.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Undertaker  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 312
Пользователь №: 31230
На форуме: 4 года, 10 месяцев, 17 дней
Карма:




Цитата
а ты учишь плохому.

Хей чём тебе моё обучение то неугодило???
$letters = array(
"ко", "и", "дзу", "ми",
"са", "ку", "ра", "да",
"чи", "а", "ки", "ми",
"на", "го", "ха", "ру");
$rand_keys = array_rand($letters, 4);
foreach ($rand_keys as $key => $value) {
echo "Выпало число ".$value.", слог ".$letters[$value]."<br />";
@$name.=$letters[$value];
}

echo "------<br />";
echo "Советую имя: ".$name." - не прогадаешь!<br />";

user posted image


--------------------
Из отчета службы безопасности:
... по поводу взлома китайцами сервера Пентагона:
1) Каждый китаец попробовал один пароль.
2) Каждый второй пароль был - maodzedun.
3) На 657983241-й попытке сервер согласился что у него пароль - maodzedun
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
[x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25994
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 26 дней
Карма: 725

Не курю:
1 год, 2 месяца, 13 дней


<?php
$letters = array(
"ко", "и", "дзу", "ми",
"са", "ку", "ра", "да",
"чи", "а", "ки", "ми",
"на", "го", "ха", "ру");

shuffle($letters);

$name = array_chunk($letters, 4,true); //4 - кол-во слогов в имени

echo implode("", $name[0]);



ну или рандомная длина

<?php
$letters = array(
"ко", "и", "дзу", "ми",
"са", "ку", "ра", "да",
"чи", "а", "ки", "ми",
"на", "го", "ха", "ру");

shuffle($letters);

$count = rand(0, count($letters));

$name = array_chunk($letters, $count,true);

echo implode("", $name[0]);


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Undertaker  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 312
Пользователь №: 31230
На форуме: 4 года, 10 месяцев, 17 дней
Карма:




Игорь_Vasinsky
Хитрец))) Классная реализация=)


--------------------
Из отчета службы безопасности:
... по поводу взлома китайцами сервера Пентагона:
1) Каждый китаец попробовал один пароль.
2) Каждый второй пароль был - maodzedun.
3) На 657983241-й попытке сервер согласился что у него пароль - maodzedun
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15562
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 7 дней
Карма: 299

Трезвый :
5 лет, 11 месяцев, 17 дней


Цитата (Undertaker @ 7.04.2016 - 03:28)
Ну я начал массив с единицы

А продолжил зачем? :)
$letters = array(
1 => "ко", "и", "дзу", "ми",
"са", "ку", "ра", "да",
"чи", "а", "ки", "ми",
"на", "го", "ха", "ру");


--------------------
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Undertaker  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 312
Пользователь №: 31230
На форуме: 4 года, 10 месяцев, 17 дней
Карма:




Цитата
А продолжил зачем? smile.gif

Я ведь не утверждал, что мой код эталон программирования, просто мне так показалось, что человеку будет понятнее, что откуда берётся. Что бы он мог проследить причинно-следственную связь...
А код пободрее я ниже привёл, там ключи в массиве можно хоть буквами указывать=)


--------------------
Из отчета службы безопасности:
... по поводу взлома китайцами сервера Пентагона:
1) Каждый китаец попробовал один пароль.
2) Каждый второй пароль был - maodzedun.
3) На 657983241-й попытке сервер согласился что у него пароль - maodzedun
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15562
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 7 дней
Карма: 299

Трезвый :
5 лет, 11 месяцев, 17 дней


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


--------------------
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Игорь_Vasinsky  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Лысый и злой
******

Профиль
Журнал
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 25994
Пользователь №: 21350
На форуме: 6 лет, 8 месяцев, 26 дней
Карма: 725

Не курю:
1 год, 2 месяца, 13 дней


Цитата
Игорь_Vasinsky написал уже оптимальный вариант

Свернутый текст
user posted image


--------------------
Халявные ответы кончились.
Если нужен готовый код - готовьтесь заплатить.
Райкин тоже был артист

Возле дома был сарай
А когда всё хорошо
Можно просто покурить

user posted image
http://ufa102.xyz/
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса