public final static int[][] STYLES =   {0x0f00, 0x4444, 0x0f00, 0x4444}, // 长条型的四种状态
  {0x04e0, 0x0464, 0x00e4, 0x04c4}, // 'T'型的四种状态
  {0x4620, 0x6c00, 0x4620, 0x6c00}, // 反'Z'型的四种状态
  {0x2640, 0xc600, 0x2640, 0xc600}, // 'Z'型的四种状态
  {0x6220, 0x1700, 0x2230, 0x0740}, // '7'型的四种状态
  {0x6440, 0x0e20, 0x44c0, 0x8e00}, // 反'7'型的四种状态
  {0x0660, 0x0660, 0x0660, 0x0660}, // 方块的四种状态
 }怎么可以写地址代表图像的??求解

解决方案 »

  1.   

    确实啊,用十六进制表示的啊,就是不知道为何,可以表示俄罗斯方块的二十八种状态,例如0x0f00,表示一个横向的长条四个小格子的长条0x4444表示一个竖着的长条,新手学习
      

  2.   

    0f00可以转换成一个矩阵,每行用二进制写出一个16进制数,格式为:0: 0000
    f:  1111
    0:  0000
    0:  0000类似的,0x4444为:
    4: 0100
    4: 0100
    4: 0100
    4: 0100你看看在第一个4×4的矩阵中,1是不是组成了一个横条;在第二个4×4的矩阵中,1是不是组成了一个竖条其它形状的俄罗斯方块的表达是一样的原理。
      

  3.   

    给位高手大大们给予解释啊,解释下为什么可以用这个表示,并且还都不一样。。
    我可以给你解释一下你标题提出的问题,至于你下面的那
    public final static int[][] STYLES ={    {0x0f00, 0x4444, 0x0f00, 0x4444}, // 长条型的四种状态
      {0x04e0, 0x0464, 0x00e4, 0x04c4}, // 'T'型的四种状态
      {0x4620, 0x6c00, 0x4620, 0x6c00}, // 反'Z'型的四种状态
      {0x2640, 0xc600, 0x2640, 0xc600}, // 'Z'型的四种状态
      {0x6220, 0x1700, 0x2230, 0x0740}, // '7'型的四种状态
      {0x6440, 0x0e20, 0x44c0, 0x8e00}, // 反'7'型的四种状态
      {0x0660, 0x0660, 0x0660, 0x0660}, // 方块的四种状态
     }怎么可以写地址代表图像的??求解
    这个问题我表示没看懂。
    我们来分析下你的代码:
     public final static int[][] STYLES =    {0x0f00, 0x4444, 0x0f00, 0x4444}, // 长条型的四种状态
      {0x04e0, 0x0464, 0x00e4, 0x04c4}, // 'T'型的四种状态
      {0x4620, 0x6c00, 0x4620, 0x6c00}, // 反'Z'型的四种状态
      {0x2640, 0xc600, 0x2640, 0xc600}, // 'Z'型的四种状态
      {0x6220, 0x1700, 0x2230, 0x0740}, // '7'型的四种状态
      {0x6440, 0x0e20, 0x44c0, 0x8e00}, // 反'7'型的四种状态
      {0x0660, 0x0660, 0x0660, 0x0660}, // 方块的四种状态
     }
    =======================================
    以上是你的代码我帮你拆分一下实质是一样的但是为了更加理清一下你的思路
     
    算了,我帮你解释一下二维数组,和这个代码的全部内容。
     public 表示共有的访问属性,表示大家都可以访问,
     final 表示常量,也就是不能修改的
     static 表示静态的,就是再运行时直接加载不需要创建对象分配内存而可以直接通过类名调用的
            也就是说,是类的属性
     int[][]表示是一个整形的二维数组
       二维数组是什么呢,那啥你应该了解吧,算了我在啰嗦一下
        二维数组:
          在说道二维数组的时候我们又不得不提一维数组
           一维数组:
              一维数组中声明了具体的数据元素,每个数据元素既是二维数组的一个成员
              一维数组可以存放成千上万个数据,并且这些数据的类型是完全相同的。
              
          那么二维数其实就是以维数组组成的,二维数组的元素都是一维数组
          那么二维数组的一个元素能所表示的元素就是具体的元素
    好的回到正题
          public final static int[][] STYLES = {   {0x0f00, 0x4444, 0x0f00, 0x4444}, // 长条型的四种状态
      {0x04e0, 0x0464, 0x00e4, 0x04c4}, // 'T'型的四种状态
      {0x4620, 0x6c00, 0x4620, 0x6c00}, // 反'Z'型的四种状态
      {0x2640, 0xc600, 0x2640, 0xc600}, // 'Z'型的四种状态
      {0x6220, 0x1700, 0x2230, 0x0740}, // '7'型的四种状态
      {0x6440, 0x0e20, 0x44c0, 0x8e00}, // 反'7'型的四种状态
      {0x0660, 0x0660, 0x0660, 0x0660}, // 方块的四种状态
     }
    你这里定义了一个共有的静态的常量STYLES他的内容是
      {    {0x0f00, 0x4444, 0x0f00, 0x4444}, // 长条型的四种状态
      {0x04e0, 0x0464, 0x00e4, 0x04c4}, // 'T'型的四种状态
      {0x4620, 0x6c00, 0x4620, 0x6c00}, // 反'Z'型的四种状态
      {0x2640, 0xc600, 0x2640, 0xc600}, // 'Z'型的四种状态
      {0x6220, 0x1700, 0x2230, 0x0740}, // '7'型的四种状态
      {0x6440, 0x0e20, 0x44c0, 0x8e00}, // 反'7'型的四种状态
      {0x0660, 0x0660, 0x0660, 0x0660}, // 方块的四种状态
     }
    分解一下其具体内容就是
     STYLES[1][1]=0x0f00;
     STYLES[1][2]=0x4444;
     STYLES[1][3]=0x0f00
     STYLES[1][4]=0x4444
     STYLES[2][1]=0x04e0
     STYLES[2][2]=0x0464
    STYLES[2][3]=0x00e4
    STYLES[2][4]=0x04c4
    STYLES[3][1]=0x4620
    STYLES[3][2]=0x6c00
    STYLES[3][3]=0x4620
    STYLES[3][4]=0x6c00
    STYLES[4][1]=0x2640
    STYLES[4][2]=0xc600
    STYLES[4][3]=0x26400
    STYLES[4][4]=0xc600
    STYLES[5][1]=0x6220
    STYLES[5][2]=0x1700
    STYLES[5][3]=0x2230
    STYLES[5][4]=0x0740
    STYLES[6][1]=0x6440
    STYLES[6][2]=0x0e20
    STYLES[6][3]=0x44c0
    STYLES[6][4]=0x8e00
    STYLES[7][1]=0x0660
    STYLES[7][2]=0x0660
    STYLES[7][3]=0x0660
    STYLES[7][4]=0x0660
    ---------------------------
    OK看到了把
    STYLES[1][*]这个所表示的 有4个值分别对应你所要表达的// 长条型的四种状态
    一次类推
    SYYLES[2][*]同理
    所以就能表示你所需要的那么多种状态,哎,我看你基础不是很好的样子,不知道你学习到哪里了
    那啥你再不懂就去找本书看看二维数组的东西吧。
    我也不知道我说的你懂了没,也不知道表达到你要的意思没,我能做的就这么多。加油!我也是在学习java滴
          
      

  4.   

    那啥貌似看懂他所说的问题了,能感觉到一点吧,毕竟我学的java时间不是很长,但是我是吧具体的东西都给他
    表达出来了,他问的是为什么能表示这么多种状态,
    那么我就给他吧具体的内容写出来了,也就是说他定义的二维数据具体表示这么多中状态吧,当然也就能表达出他所需要的内容了把,我看楼主可能还是不太了解二维数组还是咋地,也许对数据不是很敏感吧!我觉得java说简单点无非就是数据,数据传递,也许他应该真心理解一下这两个java最最基础的东西吧!
      

  5.   

    哎,我也是学了java没多久,现在感觉也有点经验了,我学习的时候遇到很多类似的问题,今天遇到了一个问题到论坛上问了一下好多人帮我回复,然后看到很多帖子,我以前在这个论坛也看过很多东西,感觉都是云里雾里,今天偶然打开看了看他们的问题突然发现我自己也能回答的七七八八了,我也是经历过那种迷茫的阶段现在突然豁然开朗了,所以也就向尽我所能帮助一下现在迷茫的童鞋 嘿嘿,话说我还要学的很多,继续努力学习吧。
    最后也谢谢你们这些老鸟,经常帮助我们这才刚刚学习的人,我们当时可能没有看懂问题的关键,不过在以后的学习中或许就理解了,离不开你们当时的提点。非常感谢,还有送给那些在自学java的同志们加油吧!