寻找合适的数据结构来操纵游戏中的玩家统计数据

时间:2010-09-23 06:22:50

标签: php data-structures

我打算将玩家统计数据存储在游戏的数据库中,并且需要找到合适的数据结构,以便在代码中对其进行测试。该结构需要在PHP中运行良好,但我对任何用于学习目的的想法感兴趣。

在伪代码的第一次迭代中,我想象数据结构的多维数组,但不认为它们足够好。还有哪些其他结构以及程序如何有效地访问它们,因为查找每个统计数据所需的统计数据和密钥数量会增大?

伪代码:一切都在1到10的范围内

$player_base_skill_level
{
  [driving] = 4
  [running] = 6
}

$handicaps
{
  [driving][monster_trucks] = -5
  [running][long_distance] = -3
}

//User wants to drive a monster truck
$action[base_action] = 'driving'
$action[sub1_action] = 'monster_trucks'

function chance_of_success($action)
{
  $degree_of_difficulty = 8;
  $player_actual_skill_level = $player_base_skill_level[$base_action] + $handicaps[$base_action][$sub1_action];

  if($player_actual_skill_level > $degree_of_difficulty = 8)
    return 'success';
  else
    return 'failure';
}

随着事情变得越来越复杂,数组密钥将在此解决方案中失去控制;例如:[driving] [monster_trucks] [large_wheels]或[driving] [monster_trucks] [small_wheels],因此必须有更好的方法来构建数据。

由于

1 个答案:

答案 0 :(得分:2)

可能值得的一件事是生成一个玩家统计对象。该对象可以是“统计对象”的集合,即。障碍,技能等。如果你这样做,你可以封装你的所有工作。例如,每个对象都可以拥有自己的chance_of_success方法,您可以调用它而不必担心该对象的细节。

我不确定您使用的是哪个版本的php,但是类/对象的手册是here