- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
int32 chance;
if (SkillValue <= 115)
{
chance = 100;
}
else if (SkillValue > 115 && SkillValue <= 150)
{
chance = 50;
}
else if (SkillValue > 150 && SkillValue <= 170)
{
chance = 33,33;
}
else if (SkillValue > 170 && SkillValue <= 190)
{
chance = 25;
}
else if (SkillValue > 190 && SkillValue <= 215)
{
chance = 20;
}
else if (SkillValue > 215 && SkillValue <= 235)
{
chance = 16,67;
}
else if (SkillValue > 235 && SkillValue <= 260)
{
chance = 14,29;
}
else if (SkillValue > 260 && SkillValue <= 280)
{
chance = 12,5;
}
else if (SkillValue > 280 && SkillValue <= 325)
{
chance = 11,11;
}
else if (SkillValue > 325 && SkillValue <= 365)
{
chance = 10;
}
else if (SkillValue > 365 && SkillValue <= 450)
{
chance = 9,09;
}
else if (SkillValue > 450 && SkillValue <= 500)
{
chance = 11,11;
}
else if (SkillValue > 500)
{
chance = 10;
}
chaoswithin 27.08.2011 16:42 # 0
absolut 27.08.2011 17:35 # −3
absolut 27.08.2011 21:37 # +1
Ну, проверьте код тогда и RTFM не забывайте.
В исходном ГК ошибка будет только в 55 строке из-за интерпретации восьмеричного числа.
chaoswithin 27.08.2011 21:44 # 0
absolut 27.08.2011 21:52 # 0
chaoswithin 27.08.2011 22:07 # +2
Надо было сразу запостить пояснение.
absolut 28.08.2011 01:33 # 0
P.s. а пояснения всегда приветствуются.
inkanus-gray 27.08.2011 21:56 # +1
То есть 67 — это не дробная часть, а висящее выражение.
Точно так же можно вместо писать
Заголовок оператора for уже никто не помнит? интерпретируется как
Kirinyale 27.08.2011 22:47 # +1
inkanus-gray 27.08.2011 23:00 # +3
Lure Of Chaos 27.08.2011 23:06 # 0
Dr_Offset 27.08.2011 23:09 # −1
Нихрена ж не так. Вот пруф из талмуда.
5.18/1
The type and value of the result are the type and value of the RIGHT operand;
То есть chance будет равен 67, а никак не 16. Учим матчасть, в общем....
Lure Of Chaos 27.08.2011 23:13 # −3
Dr_Offset 27.08.2011 23:23 # −1
CPPGovno 28.08.2011 01:55 # +1
http://codepad.org/2lweGZtT
Dr_Offset 28.08.2011 11:27 # 0
CPPGovno 28.08.2011 01:46 # −2
При его применении нет разницы между:
66.7 и 66.07.
Govnoeb 29.08.2011 11:03 # +1
SmackMyBitchUp 29.08.2011 11:29 # −1
Lure Of Chaos 27.08.2011 16:51 # 0
Elvenfighter 27.08.2011 18:30 # 0
А распределение то дискретное ;)
ИМХО, если закрыть глаза на запятые, тут больше case будет уместен, по производительности.
Elvenfighter 27.08.2011 18:33 # 0
roman-kashitsyn 27.08.2011 18:48 # 0
Xom94ok 27.08.2011 18:57 # 0
wvxvw 27.08.2011 20:30 # +1
inkanus-gray 27.08.2011 20:35 # 0
Но тогда будут лишние проверки. Поэтому рациональнее так:
То есть пользуясь только неравенствами в одну сторону: либо все «меньше», либо все «больше». Тогда и конъюнкция не нужна.
Хотя вообще тут можно было свернуть, используя цикл и массив либо формулу.
roman-kashitsyn 27.08.2011 20:35 # 0
inkanus-gray 27.08.2011 20:38 # 0
Волшебное слово else уже отсекает часть условий, поэтому дублирование не нужно.
inkanus-gray 27.08.2011 21:59 # +2
Fai 27.08.2011 23:07 # 0