X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

2 страниц V   1 2 >
Открыть тему
Тема закрыта
> Начал изучать - вот возникают вопросы, Думаю слишком просто - но всеже интересно
bestolloch
bestolloch
Topic Starter сообщение 2.9.2010, 22:09; Ответить: bestolloch
Сообщение #1


Здравствуйте, просто попалась задача.

1.Создать программу "шулерская кость", которая будет выбрасывать 1 в половине случаев и какое-либо другое значение - в другой половине.

я решил

[php]<?
$roll = rand(1,6);
if ($roll<4) {
print "vashe 4islo 1";
} else {
print "vashe 4islo 6";
}
?>[/php]
Может есть более правильные, или альтернативные, только путем if, else, switch. Желательно "switch".
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 2.9.2010, 22:46; Ответить: ZiTosS
Сообщение #2


bestolloch, раз со свичем, так со свичем:
[php]<?php

switch( $rand = rand(1,8) ) // возвращаем в переменную $rand случайное число от 1 до 8 и передаем его оператору выбора switch
{
// если случайное число - 1 или 2 или 3
case 1:case 2:case 3:
echo "Выпало число 1";
break;

// если случайное число - 4 или 5 или 6
case 4:case 5:case 6:
echo "Выпало число 2";
break;

// если случайное число - любое другое (отличное от предыдущих вариантов)
default:
echo "Поменяйте кости! Они у вас {$rand}-ребровые;)";
}

?>[/php]
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
bestolloch
bestolloch
Topic Starter сообщение 2.9.2010, 23:43; Ответить: bestolloch
Сообщение #3


Насчет ребер нормас ) то думал к чему 8.
Не закрывайте я по ходу прочтения буду вопросы задавать,)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
DioNiR
DioNiR
сообщение 3.9.2010, 22:09; Ответить: DioNiR
Сообщение #4


А в чём сложность задействовать 2 round ?
Типо:
[php]<?php
$num1 = rand(1,2);
if( $num1 == 1 )
{
echo 'Выпало чило 1';
}
else
{
$num2 = rand(2,6);
echo 'Выпало число: '.$num2;
}
?>[/php]

Но функция rand() не гарантирует что сейчас выпадет 2, а в следующий раз 1.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
gaaarfild
gaaarfild
сообщение 4.9.2010, 12:05; Ответить: gaaarfild
Сообщение #5


Тут с помощью rand процент не просчитаешь. =)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 4.9.2010, 14:58; Ответить: ZiTosS
Сообщение #6


DioNiR, у вас в решении теряется оформление задачи игральных костей.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
bestolloch
bestolloch
Topic Starter сообщение 14.9.2010, 1:19; Ответить: bestolloch
Сообщение #7


[php]<?
print stroka(1);
print kuplet();
print stroka(2);
print kuplet();
print stroka(3);
print kuplet();
print stroka(4);
print kuplet();

function stroka($peremenaya) {
switch ($peremenaya) {
case 1:
$place = "дом";
break;
case 2:
$place = "дом2";
break;
case 3:
$place = "дом3";
break;
case 4:
$place = "дом4";
break;
default:
$place = "чето странное и не известное";
}
$output = <<<HERE
Сейчас будет $peremenaya<br>
а сейчас $place<br><br>
HERE;
return $output;
}

function kuplet() {
$output= <<<HERE
...а вот аля куплет<br><br>
HERE;
return $output;
}
?>[/php]
смотрите еще не разобрался че к чему - значение $output чет шалит - почему - в коде еще не разобрался так сказать,)
верней даже понял но почему не пашет?)

Сделал точо такой же код но заново и с другими переменными - и заработало - веселье...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 14.9.2010, 11:27; Ответить: ZiTosS
Сообщение #8


bestolloch, ваша проблема не в названии переменных, а в неправильном использовании конструкции <<<

На данный способ вывода на экран накладываются некоторые ограничения:

Строка MARKER может быть любым алфавитно-цифровым идентификатором, не
встречающимся в тексте here-документа в виде отдельной строки. Синтаксис накла-
дывает 2 ограничения на here-документы:
  • после <<<MARKER и до конца строки не должны идти никакие непробельные символы;
  • завершающая строка MARKER; должна оканчиваться точкой с запятой, после которой до конца строки не должно быть никаких инструкций.

[php]<?php

$a = <<<MARKER
Далее идет какой-то текст,
возможно, с переменными, которые интерполируются:
например, $name будет интерполирована здесь.
MARKER;

?>[/php]

У вас же я обнаружил пробельный символ после <<<HERE


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
bestolloch
bestolloch
Topic Starter сообщение 14.9.2010, 13:25; Ответить: bestolloch
Сообщение #9


[php]<?

printPrivetstvie ();
printCenter ();
printForm ();

function printPrivetstvie () {
global $vipalo, $nabil;
if (empty($nabil)) {
print "<h3>Brosti kosti</h3>";
} else if ($vipalo == $nabil) {
print "<h3>!!!WIN!!!</h3>";
} else {
print <<<HERE
<h3>Vi ne ugadali</h3>
vipalo: $vipalo,<br>
a ne $nabil.<br>
HERE;
}
}

function printCenter () {
global $vipalo;
print "<h3>NEW ROLL:</h3>";
$vipalo = 0;

$roll1 = rand(1,6);
$roll2 = rand(1,6);
$roll3 = rand(1,6);
$roll4 = rand(1,6);
$roll5 = rand(1,6);

img($roll1);
img($roll2);
img($roll3);
img($roll4);
img($roll5);

print "<br>";

s4et($roll1);
s4et($roll2);
s4et($roll3);
s4et($roll4);
s4et($roll5);

function img($value) {
print <<<HERE
<img height="100" width="100" border="8"
src = "roll$value.jpg">
HERE;
}

function s4et($value) {
global $vipalo;
switch ($value) {
case 3:
$vipalo += 2;
break;
case 5:
$vipalo += 4;
break;
}
}
}

function printForm () {
global $vipalo;
print <<<HERE
<h3>Skolko po vashemu lipeskov u ros?</h3>
<form method="post"
<input type="text"
name="nabil"
value="0">
<input type="hidden"
name="vipalo"
value="$vipalo">
<br>
<input type="submit">
</form>
<br>
HERE;
}

?>[/php]
а тут почему выводит только до "new roll?" ВЧЕРА ТОЖЕ СИДЕЛ может както лучше можно этоткод написать вообще - не стоит сильно разбирать -)))
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ZiTosS
ZiTosS
сообщение 15.9.2010, 0:33; Ответить: ZiTosS
Сообщение #10


bestolloch, а у вас фатальная ошибка не появляется? Если нет, то у вас все ошибки глушатся, вам надо php.ini сконфигурировать нормально. В инете всё можно найти.
Вообщем ваша проблема в том, что вы функции img и s4et поместили внутрь функции printCenter. Вас кто так научил. Функция это отдельная конструкция и её нужно определять в основном коде программы, а не внутри другой функции.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
2 страниц V   1 2 >
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Вопросы по партнеркам
1 Megoydagi 1357 19.10.2019, 14:07
автор: agrx
Открытая тема (нет новых ответов) Вопросы для мастеров СЯ/спецов SEO
программирую полуавтоматический сборщик ключей
1 coremission 3438 3.7.2018, 9:45
автор: coremission
Открытая тема (нет новых ответов) Вопросы по партнерскому магазину
8 Stellastar 2772 17.3.2017, 15:01
автор: ShowPrint
Открытая тема (нет новых ответов) Ответы на вопросы (ТИЦ 10, домену 1.5 года, 50+ уников в день)
2 VillainTheCake 3098 8.12.2016, 14:10
автор: VillainTheCake
Открытая тема (нет новых ответов) Любые вопросы по Wordpress
2 kolesnikov 2722 20.12.2014, 10:25
автор: kolesnikov


 



RSS Текстовая версия Сейчас: 24.4.2024, 3:13
Дизайн