Случайный выбор с проверкой, запись, защита

Grapefruit Lips

Новичок
Случайный выбор с проверкой, запись, защита

Хочу сделать что-то типа игры =)


Человек, зайдя на страницу и кликая на одну из двух (трёх,четырёх) ссылок будет пытаться угадать - *что будет следующее* (какой номер). Скажем, варианты выбора: 1, 2, 3, 4... Далее, когда он выбрал, например номер 3, он попадает на другую страницу, где номер выбирается случайным образом (array_rand) , и если он угадал номер ( if($guess_number==$rand_number) ) , то на его имя записываются очки, за каждый угаданый номер + 1 очко.

Выйграл (и закончил игру) юзер тогда, когда набрал, например 4 очка. Всего у каждого юзера 10 попыток, после чего, если он не набрал 4 очка, т.е. не угадал четыре раза за эти 10 попыток - у него всё згарает и всё начинается по новой =)

Так вот, всё это я легко сдела

А вот и вопрос: Я хочу, чтобы в ОДИН ДЕНЬ можно было выйграть не более 30 раз. Любым юзерам. Т.е. в этом примере, чтобы максимум юзеры могли в сумме набрать 120 очков ( 4*30 ) , не больше. Как это можно реализовать?
И ещё. Юзеы могут играть завтра и у каждого из них все ими набранные очки за всё время.

Я думаю нужно записывать в базу дату каждых набранных 4-ёх очков =) и *завтра* удалять все *вчерашнии* набранные очки, потом total_score (сколько всего у юзера очков) , потом today_score (сегодняшнии набранные очки) , и там, где скрипт проверяет - не набрал ли юзер заветные 4 очка для выйгрыша- проверять, все today_score всех юзеров, не равны ли они заветным 120-ти... ТОЛЬКО ВОТ КАК ЭТО СДЕЛАТЬ с ARRAY_RAND ... т.е. что бы юзер больше ПОЛЮБОМУ не смог набрать 4 очка для выйгрыша , ЕСЛИ сегодня все юзеры уже набрали в сумме 120 очков?

Вообще, правильно ли я мыслю? Как лучше сделать?
Подскажите, плиз

-~{}~ 31.01.06 15:22:

может ещё понятнее объясню, надо чтобы юзеры играли целый день, а в сумме в этот один день - могли выйграть не более 120-ти очков, для примера.
 

bkonst

.. хочется странного?...
Типа казино?! :D

Проверяй today_scode до того, как вызываешь array_rand.
 
Grapefruit Lips
Я думаю нужно записывать в базу дату каждых набранных 4-ёх очков =) и *завтра* удалять все *вчерашнии* набранные очки
Зачем что-то удалять?
Заодно и статистика будет, просто проверяй кол-во побед за сегодня.
Пиши в базу id-юзера, дату, набранные очки.
 

Grapefruit Lips

Новичок
нет, в казино ПЛАТЯТ за игру, а тут только выигрывают... = )

я только не могу понять, если сумма всех today_score уже равна 120-ти, $rand_number нереальный делать что-ли? или как? надо ведь, чтобы юзеры могли играть дальше, только не выигрывать
 

white phoenix

Новичок
Я бы хранил в таблице все выигрыши всех пользователей, поля:
`uid` - ID пользователя
`timestamp` Дата и время.
`score` - Очки
И выбирал из этой таблицы при попытке поиграть: WHERE `uid` = UID, `timestamp`> СуткиНазад.
А затем сравнивал значение с 120 ;)
 
Grapefruit Lips
я только не могу понять, если сумма всех today_score уже равна 120-ти, $rand_number нереальный делать что-ли? или как? надо ведь, чтобы юзеры могли играть дальше, только не выигрывать
Сначала с логикой своей игры определись...
 

white phoenix

Новичок
> чтобы юзеры могли играть дальше, только не выигрывать
Т.е. если человек набрал 120 очков, то выиграть он никак не может? Просто если today_score >= 120, то rand_number = -1.
 

Grapefruit Lips

Новичок
Кароче я чё-то нереально ступил, как всегда... Надо было всё по полочкам расписать, и всё..

Спасибо =))
 
Grapefruit Lips
Если ты хочешь, чтобы пользователи играли, но не выигрывали (после 120), то на новой странице делай случайный выбор из всех цифр, кроме выбранной пользовалем ;-)
 

Grapefruit Lips

Новичок
Loshadka, я понял систему =) просто весь в прикол в том, чтобы ОБЯЗОМ давать выигрывать, главное если сумма сегодняшних -набранных очков == 120, то не давать набрать 4 балла (т.е. то приза, до выйгрыша ) , максимум 3.... Ладно, всё понятно тут уже =)
 
Сверху