|
|
|
| Добрый вечер!
у меня есть массив
$board = array(null, '0', '0', '0', '0', '0', '0', 'x', '0');
|
как вывести все значения до Х, но не после
и все значения вместе с Х но не после? | |
|
|
|
|
|
|
|
для: JESS
(25.07.2011 в 17:32)
| | Это две задачи?
Первая:
foreach($board as $value) {
if($value == 'x') {break;}
print "$value<br>";
}
|
Вторая:
foreach($board as $value) {
print "$value<br>";
if($value == 'x') {break;}
}
|
| |
|
|
|
|
|
|
|
для: SHAman
(25.07.2011 в 17:40)
| | это ведь не ассоциативный массив, так что for будет лучше, тем что "легче") | |
|
|
|
|
|
|
|
для: f111
(25.07.2011 в 18:25)
| | и на сколько наносекунд for "легче" ? 8-) | |
|
|
|
|
|
|
|
для: psychomc
(25.07.2011 в 18:29)
| | я оказался не прав((, foreach быстрее.
читал в нескольких статьях что for быстрее, но видимо PHP не спит, а развивается, или в статьях не правда.
на винграде в 2009 оказывается уже обсуждалась подобная тема
psychomc, пардон что усомнился в твоём коде) | |
|
|
|
|
|
|
|
для: f111
(25.07.2011 в 21:47)
| | читал в нескольких статьях что for быстрее
завязывайте вы с "желтой прессой"
мое личное мнение, что подобного рода статьи заметки пишут те кому ну совсем нехрен делать
_
то что HTML быстрее, не повод завязывать с РНР ;) | |
|
|
|
|
|
|
|
для: Valick
(25.07.2011 в 21:52)
| | читал на сайтах посвящённых php, а не космополитане, или как он называется, так же на хабре есть огромнейшая статья.
>мое личное мнение, что подобного рода статьи заметки пишут те кому ну совсем нехрен делать
знать как правильно писать тоже надо, даже в том же ассемблере, статьи оптимизации по которому тоже есть
>то что HTML быстрее, не повод завязывать с РНР ;)
1) а вот это изречение мне не понятно. (объяснения не прошу)
2) не знал что язык разметки можно сравнить с серверным | |
|
|
|
|
|
|
|
для: f111
(25.07.2011 в 23:43)
| | огого)) оказывается хабру можно верить))
НЛО прилетело и оставило эту запись....
читайте книги молодой человек, да повнимательнее
есть один правильный форум по РНР - это софттайм, остальные лжепророки)
___
да я и не собирался объяснять, что результатом работы РНР (как впрочем и других серверных языков) является HTML(+JS и тд) код и что серверу быстрее плюнуть чистым ХТМЛ, чем сначала сформировать страницу, а затем ее отдать браузеру. | |
|
|
|
|
|
|
|
для: Valick
(26.07.2011 в 00:13)
| | всё дальше и дальше отдаляемся от темы, но не могу не ответить.
>читайте книги молодой человек, да повнимательнее
не люблю, после первой страницы засыпаю, но раз вы упомянули, то было бы замечательно услышать название и автора.
>есть один правильный форум по РНР - это софттайм, остальные лжепророки)
не буду говорить что хабр это нечто, я и сам туда не так часто "забредаю", но и софттайм не перехваливайте))
>да я и не собирался объяснять, что результатом работы РНР (как впрочем и других серверных языков) является HTML...
результатом работы являются обработка данных, ну а в последнюю очередь вывод (x)html, который только и требуется для приятно оформления страницы молодой человек :-P | |
|
|
|
|
|
|
|
для: f111
(26.07.2011 в 03:08)
| | Дмитрий Котеров, Алексей Костарев "РНР 5 Наиболее полное руководство"
Максим Кузнецов, Игорь Симдянов "Самоучитель РНР5" - рекомендую начинать с этого
Максим Кузнецов, Игорь Симдянов, Сергей Голышев "РНР 5 Практика создания WEB-сайтов"
Леон Аткинсон, Зеев Сураски "РНР 5 Библиотека профессионала"
Эд Леки-Томпсон, Хьяво Айде-Гудман, Алек Коув, Стивен Д. Новицки "РНР 5 для профессионалов"
Игорь Григин "РНР 5.1 Руководство программиста"
Кристиан Дари, Богдан Бринзаре, Филип Черчез-Тоза, Михаил Бусика "AJAX и РНР Разработка динамических веб-приложений"
Тим Конверс, Джойс Парк, Кларк Морган "РНР 5 и MySQL" Библия пользователя
__
вот тема 2007года http://softtime.ru/forum/read.php?id_forum=2&id_theme=34041
сейчас точно не могу сказать все книги на другой квартире, но это далеко не все что у меня есть | |
|
|
|
|
|
|
|
для: SHAman
(25.07.2011 в 17:40)
| | Спасибо огромное!
Но у меня снова проблема. Делаю массив через for
$key = 26, или любое число от 1 до 64.
for ($i=$key+8; $i<64; $i+=8) {
$moves[] = $i;
}
|
Вот, а далее
if($key == $moves[0]) { $moves = 'x'; }
|
ТО ничего не работает. Если просисать отдельно echo $moves[0]; до выводит число, а в IF нет =( | |
|
|
|
|
|
|
|
для: JESS
(26.07.2011 в 02:59)
| | тааааааак, значит в нашей задачке дано:
$key = 26;
for ($i=$key+8; $i<64; $i+=8)
{
$moves[] = $i;
}
if($key == $moves[0]) { $moves = 'x'; }
|
распишем всё по порядку:
$i=$key+8 => $i=26+8=34
$i<64 => 34<64
$i+=8 => то 64-34=30, при условии что шаг у нас 8, 30/8=3.75 , в цикле 4.75 итераций, так как первый проход происходит до увеличения $i )))
1) шаг => $moves[] = $i; => $moves[0] = 34;
2) шаг => $moves[1] = 42;
3) шаг => $moves[2] = 50;
4) шаг => $moves[3] = 58;
if($key == $moves[0]) { $moves = 'x'; } => if( 26 == 34 ) { $moves = 'x'; }
мдааа, тут надо подумать....не простая задачка(
------------------------------------------
>psychomc, пардон что усомнился в твоём коде)
гыгыгы, усомнился то я в коде SHAman, а не psychomc, попутал я))) | |
|
|
|
|
|
|
|
для: f111
(26.07.2011 в 03:24)
| | Вот весь код, по задумке, Х должен стоять у каждого 8го числа после 5. Но стоит только у 5ти.
for ($i=1; $i<65; $i++) {
$b = da($i);
echo $i.$b.'<br \>';
}
function da($key){
if($key == 5) {
for ($i=$key; $i<65; $i+=8) {
$moves[] = $i;
}
}
for ($j=0; $j<8; $j++) {
if($moves[$j] == $key) { $b= 'X'; }
}
return $b;
}
|
| |
|
|
|
|
|
|
|
для: f111
(26.07.2011 в 03:24)
| | Только если мы заменяем $moves[] на нужное нам число.
for ($i=1; $i<65; $i++) {
$b = da($i);
echo $i.$b.'<br \>';
}
function da($key){
if($key == 32) {
for ($i=$key; $i<65; $i+=8) {
$moves[] = $i;
}
}
//for ($i=0; $i<8; $i++) {
if(32 == $key) { $b= 'X'; }
if(40 == $key) { $b= 'X'; }
if($moves[2] == $key) { $b= 'X'; }
if($moves[3] == $key) { $b= 'X'; }
if($moves[4] == $key) { $b= 'X'; }
if($moves[5] == $key) { $b= 'X'; }
if($moves[6] == $key) { $b= 'X'; }
if($moves[7] == $key) { $b= 'X'; }
//$i = 5;
//}
return $b;
}
|
| |
|
|
|
|
|
|
|
для: JESS
(26.07.2011 в 05:01)
| | ув. JESS, попробуйте сами расписать свой код/алгоритм на "бумажном носителе" :-D по моему примеру, для концентрации мыслей бывает очень полезно посидеть в "малом читальном зале", стимулируют мыслительный процесс маленький размер помещения, отсутствие интернета и телевизора, а так же не столь приятный запах хоть и свой. это мой совет!
от нахождения самому ошибки, намного больше пользы чем от помощи посторонних. | |
|
|
|
|
|
|
|
для: f111
(26.07.2011 в 14:24)
| | Большое спасибо за ответ! Очень поетично и с сорказмом. Но к сожелению, на не знаю где у меня ошибка. Готового ответа я не прошу, а просто навести на нужный след. те обьяснить разницу в цене между бананами и яблоками. | |
|
|
|
|
|
|
|
для: JESS
(26.07.2011 в 21:00)
| | >и с сорказмом
5 раз прочёл и не заметил, если вы про "малый читальный", то я сам им пользуюсь.
а теперь к делу!
смотрел, смотрел, смотрел, и снова смотрел на ваш код, логику так и не понял.
не могли бы вы мне её объяснить?
>те обьяснить разницу в цене между бананами и яблоками.
сравнение фиговенькое.
кстати вы знали что есть:
1) День яблока — праздник в Великобритании и США (21 октября и 20 февраля соответственно).
2) и фильм Бананы (режиссёра Вуди Аллена) | |
|
|
|
|
|
|
|
для: f111
(26.07.2011 в 21:25)
| | Да, согласен что пример может и фиговенький, но со смыслом.
Рад что вам интересно вчем у меня задача состоит. Дело в том что я пыраюсь сделать шахамты на пхп, это не так трудно, но вот проверка правельности хода, самое сложное дело, и я просто не представляю что и как и с чего начать. Я не про в этом деле. Но поставил такую задачю, что бы научиться, понять...
По придумманоой логике, разделил я поле на числа, от 1 до 64. Для каждой фигурки, добавил позицию, ключ от 1 до 64, те там где они будут сотять.
Посчитал что ROOK ходит вверх и вниз от места положения на следующий ход через 8 ключей. Для начала, я планирую просто отметить те места куда фугурка может ходить, а далее проверить если на пути другие фигурки, если противника, то может бить(те встать на место противника). Если нет то может стоять рядом.
Если у вас есть какие то советы на это тему буду очень рад. | |
|
|
|
|
|
|
|
для: JESS
(26.07.2011 в 21:48)
| | блин везде у вас смысл...., может это сгодится
$jo=0;
$b='';
for($i=1; $i<65; $i++)
{
//...по задумке, Х должен стоять у каждого 8го числа после 5. Но стоит только у 5ти.
//если отсчёт вести от 5, то пжалста
if($i>5) //а если от 1, то этот if надо убрать
{
$jo++;
if($jo==8)
{
$b='X';
$jo=0;
}
else
{
$b='';
}
}
echo $i.$b.'<br \>';
}
|
>Если у вас есть какие то советы на это тему буду очень рад.
есть, писать на javascripte, хотя писать вам не легче станет))
>Да, согласен что пример может и фиговенький, но со смыслом.
никакого смысла, что бы дать ответ даже вышку оканчивать не надо | |
|
|
|
|
|
|
|
для: f111
(26.07.2011 в 21:50)
| | писать на javascripte
достаточно бредовый совет | |
|
|
|
|
|
|
|
для: Valick
(26.07.2011 в 22:00)
| | чё?))
а на php это хорошее дело?
на JS хоть будет перемещение фигур по полю, ну что бы не мошенничали пользователи о можно на php но с аяксом и всё равно "интерфейс" на js. так что либо 3 в 1, либо ничего
а лучше всего писать на флэше
Valick вам понравится играть в шахматы с обновлением страниц? | |
|
|
|
|
|
|
|
для: Valick
(26.07.2011 в 22:00)
| | >достаточно бредовый совет
аргументируйте, хочу возгордиться своей "бредовостью" | |
|
|
|
|
|
|
|
для: f111
(26.07.2011 в 22:13)
| | нафиг нужен скрипт на стороне клиента? играть самому с собой? или вы хотите написать на JS искуственный интеллект?))
ну а про перезагрузку... никто не запрещает пользовать AJAX
хотя и с перезагрузкой не обломаемся... шахматы не терпят суеты... это вам не WoW | |
|
|
|
|
|
|
|
для: Valick
(26.07.2011 в 22:24)
| | AJAX без JS существует?
неужели искусственный интеллект "морского боя" который у вас на PHP нельзя переписать на JS ?
да, получится игра только пользователя со скриптом, но JS не умеет работать с сервером, вы же это знаете, или нет? | |
|
|
|
|
|
|
|
для: f111
(26.07.2011 в 22:26)
| | трудно сказать, JS не единственный язык на стороне клиента, а РНР не единственный язык на стороне сервера, важна двусторонняя связь между ними, а как она будет называться это уже дело десятое | |
|
|
|
|
|
|
|
для: Valick
(26.07.2011 в 22:39)
| | если вы хотели сказать что для проекта нужно и то и другое, то бесспорно согласен.
p.s. "......связан с сервером постоянным соединением, установленным из JavaScript." http://dklab.ru/lib/dklab_multiplexor/, видимо я не прав по поводу JS | |
|
|
|
|
|
|
|
для: f111
(26.07.2011 в 22:45)
| | и AJAX и multiplexor используют XMLHttpRequest
___
нормальный проект можно написать только на РНР без использования JS, но не наоборот
другое дело JS должен помогать в оформлении, экономии трафика и тд, но завязывать функционал на него без контроля сервера нельзя | |
|
|
|
|
|
|
|
для: Valick
(26.07.2011 в 23:00)
| | >нормальный проект можно написать только на РНР
нормальный нет
>но завязывать функционал на него без контроля сервера нельзя
f111 (26.07.2011 в 22:07) | |
|
|
|
|
|
|
|
для: f111
(26.07.2011 в 23:16)
| | >нормальный нет
нормальный - это значит самодостаточный и рабочий, с адекватным ТЗ, без применения других технологий кроме РНР
___
давайте уже завязывать с беспредметным спором, лучше попробуйте написать хотябы крестики нолики, а потом поговорим ;)
___
аяксом и всё равно "интерфейс" на js. так что либо 3 в 1, либо ничего
я могу полюбопытствовать сколько вам лет? хочу определиться простительна ли вам подобная чушь)) | |
|
|
|
|
|
|
|
для: Valick
(26.07.2011 в 23:25)
| | 1) можно и дальше с вами спорить. (как вариант при не правильном ходе обновится страница и укажет на ошибку, а при JS сразу не пустит, так что прикрывайтесь вымышленным ТЗ, не прикрывайте, а нормальным назвать трудно)
2.1) согласен что засрали (простите, но так и есть, особенно я постарался)
2.2) я не болею, если как нить выучу флэешь, то может и начну придумывать чем бы себя позабавить
3.1) можете, 22, слово "интерфейс" в кавычках не спроста, а если по другому поводу то пишите на мыло, не забывайте аргументы.
3.2) аналогично интересно стало после "да я и не собирался объяснять, что результатом работы РНР (как впрочем и других серверных языков) является HTML(+JS и тд) " | |
|
|
|
|
|
|
|
для: f111
(26.07.2011 в 22:26)
| | неужели искусственный интеллект "морского боя" который у вас на PHP нельзя переписать на JS ?
:)
да поймите вы можно и переписать (коряво без бд, но можно) только смысла в этом абсолютно нет
эих игр полно в инете и на JS и на Flash (что гораздо лучше чем на JS)... сидишь и играешт против бездушной машины
хотите играть против такого же реального человека как вы - то ядро игры (движок) должен быть на сервере | |
|
|
|
|
|
|
|
для: Valick
(26.07.2011 в 22:00)
| | . | |
|
|
|
|
|
|
|
для: JESS
(26.07.2011 в 21:48)
| | это не так трудно, но вот проверка правельности хода
это гораздо труднее, чем вы себе представляете
вот одна из примерно 15 функций моего движка игры морской бой
<?php
function badship($kor,$point,$x,$y){
if(empty($kor)) {echo "отсутствует массив ячеек игрового поля"; return false;}
if(empty($point)) {echo "отсутствует координата выстрела"; return false;}
if(empty($x)||empty($y)) {echo "отсутствует размерность игрового поля"; return false;}
$r[$point]=4;
$a=1;
if(isset($kor[$point-$a])){
if($kor[$point-$a]==1){unset($r); $r[$point]=3; return $r;}
if($kor[$point-$a]==3){
while(isset($kor[$point-$a])){
if($kor[$point-$a]==1){unset($r); $r[$point]=3; return $r;}
$r[$point-$a]=4; $a++;}
}
}
$a=1;
if(isset($kor[$point+$a])){
if($kor[$point+$a]==1){unset($r); $r[$point]=3; return $r;}
if($kor[$point+$a]==3){
while(isset($kor[$point+$a])){
if($kor[$point+$a]==1){unset($r); $r[$point]=3; return $r;}
$r[$point+$a]=4; $a++;}
}
}
$a=$y;
if(isset($kor[$point-$a])){
if($kor[$point-$a]==1){unset($r); $r[$point]=3; return $r;}
if($kor[$point-$a]==3){
while(isset($kor[$point-$a])){
if($kor[$point-$a]==1){unset($r); $r[$point]=3; return $r;}
$r[$point-$a]=4; $a=$a+$y;}
}
}
$a=$y;
if(isset($kor[$point+$a])){
if($kor[$point+$a]==1){unset($r); $r[$point]=3; return $r;}
if($kor[$point+$a]==3){
while(isset($kor[$point+$a])){
if($kor[$point+$a]==1){unset($r); $r[$point]=3; return $r;}
$r[$point+$a]=4; $a=$a+$y;}
}
}
return $r;
}
?>
|
у вас все гораздо сложнее, вам практически на каждую фигуру придется писать около 5 функций, и еще кучу общих для всех фигур.
и это только для проверки корректности хода и минимум для игры одного человека с другим, если вы хотите заставить играть против человека свой сервер, то там вообще темный лес... проще всего играть по базе готовых партий
__
первая версия игры у меня была с использованием массивов, но я отказался от них в пользу БД и переписал движок с нуля (некоторые функции даже проще было реализовать), вам я тоже советую использовать БД
в вашем случае даже можно сделать 64 поля уже с названиями Е2, Е4 и тд
инициация игры - это всего лишь новая строка в БД (и даже фигуры не надо расставлять))) они вместе со значениями по умолчанию будут создаваться )
__
и еще неплохо бы разобраться в шахматной нотации
вобщем задачу довольно непростую вы себе поставили | |
|
|
|