Не давно пришла в голову мысль реализовать систему определения репутации в МГц.
Изначально идея была таково: отсчет в МГц от соотношения "Макс репутация к self". Мне показалось это скучно, не совсем интересно.
Решил добавить еще одну фичу и тем самым осложнил себе реализацию
Фича заключаеться в том, что помимо МГц будет отображаться тип процессора и кол-во ядер.
Вообщем вот что из этого вышло на скринах:
На скринах так же видно, что цвет МГц строится в зависимости от мощности, тем самым добавляя интерес =)
И так как на словах сложно понять как именно будетработать данная система, выкладываю скрипт (проверил на 100%):
Свернуть ↑
PHP код:
<?php
/****** Конфигурации ******/
# список допустимых процессоров
$proc_arr = array(
1=>'Celeron',
2=>'Pentium',
3=>'Pentium 2',
4=>'Pentium 3',
5=>'Pentium 4',
6=>'AMD Athlon x2',
7=>'AMD Phenom x2',
8=>'AMD Athlon x3',
9=>'AMD Phenom x3',
10=>'AMD Athlon x4',
11=>'AMD Phenom x4',
12=>'AMD Athlon x6',
13=>'AMD Phenom x6',
14=>'I3 x2',
15=>'I5 x2',
16=>'I5 x4',
17=>'I7 x4',
18=>'I7 x6',
19=>'I7 x8',
20=>'Xeon x2',
21=>'Xeon x4',
22=>'Opteron x2',
23=>'Opteron x4'
);
# максимальная частота процессора
$max_freq = 4460;
/****** Реализация скрипта ******/
# Собираем данные
// размер массива
$sizearray = sizeof($proc_arr);
// запрос на макс кол-во репутации
//$max_rep = mysql_result(mysql_query('SELECT MAX(repa) FROM table')); // результат = 56244 для примераs
$max_rep = 56244; // результат = 56244 для примера
// тут запрос на кол-во репутации у самого пользователя
//$usep_rep = mysql_result(mysql_query('SELECT repa FROM table WHERE user='Gambit'')); // юзера репа = 101 для примераs
$user_rep = 2800; // моя репутция, пользователя
// преобразуем кол-во репутации в герцы (с условием для предотвращения ошибки)
if ($user_rep > 0) { $count = ($max_freq*$sizearray) / ($max_rep / $user_rep); }
# Реализуем скрипт
// если репутация = 0
if ($user_rep < 1) { echo '<font color=ffffff>Пока не приобрел процессор</font>'; }
// если пользователь герой в репутации (имеет макс. репутацию)
elseif ($max_rep == $user_rep) { echo '<font color=ffffff>Opteron x4 #</font> <font color=ff0000>4,46 МГц</font>'; }
// иначе подсчитываем
else {
for ($i=1; $i<$sizearray+1; $i++) {
if($count < ($max_freq+1)*$i) {
// урезаем предел герц до 4460 (по умолчанию)
$Mhz_int = floor($count - ($max_freq*(floor($count / $max_freq))));
// Определяем = МГц или Гц
if (strlen($Mhz_int) < 4) { $Mhz = $Mhz_int." Гц"; } elseif ($Mhz_int > 3) { $Mhz = substr($Mhz_int, 0, 1).",".substr($Mhz_int, 1, 2)." МГц"; }
// интелектуальная система определения цвета от мощности процессора
$percent_proc = $max_freq / 100;
$per = $Mhz_int / ($percent_proc / 2);
$r = floor(2.55 * $per);
if ($r > 255) { $r = 255; }
$g = 255;
if ($r == 255) {
$a = floor(2.55 * $per) - 255;
$g = 255 - $a;
}
$b = 0;
$color = "$r, $g, $b";
// выводим данные
echo "<font color=ffffff><b>".$proc_arr[$i]."</b> #</font> <font style='color: rgb(".$color.")'>".$Mhz."</font>";
// прекращаем цикл
break;
}
}
}
?>
Свернуть ↑Развернуть ↓
P.S. Не сочтите за "подлизывание" зоне, но надеюсь что мои труды не полетят в треш =) Но обижаться все таки не буду, если не поставят. Хотелось бытак же услышать мнение форумчан по данной идеи.