C++下面也不行吧~你没有提供构造函数,也没有提供Next的值阿
struct shape
{
public int [] xy;//表示组成每个方块的四个小方块的格数.反正就是8个整数吧
public int next;//表示下一方块
 public shape(int[] xy,int next)
{
 this.xy=new int[xy.Length];
 Array.Copy(xy,this.xy,xy.Length);
 this.next=next;
}
}private shape[] shapes=
{
{{0,0,0,0,0,0,0,0,0},1},
{1,1,1,1,1,1,1,1,1},2}
...
};

解决方案 »

  1.   

    brightheroes(闭关|那一剑的风情) ( ) 信誉:103  2004-08-11 14:00:00  得分: 0  
     
     
       为什么不用类呢?
      
     -----------------------------------
    据某位大师说,Struct作为值类型性能好于Class~
      

  2.   

    private shape[] shapes=
    {
    {{0,0,0,0,0,0,0,0,0},1},
    {1,1,1,1,1,1,1,1,1},2}
    ...
    };
    ---------------
    不好意思,这个也不对应该是
    private shape[] shapes=new shape[]
    {
    {{0,0,0,0,0,0,0,0,0},1},
    {1,1,1,1,1,1,1,1,1},2}
    ...
    };
      

  3.   

    据某位大师说,Struct作为值类型性能好于Class~
    ---那你总不能仅仅因为struct是位于堆栈上,而Class位于堆上而放弃类。
      

  4.   

    这样的结构:
    struct shape
    {
    public int [] xy;//表示组成每个方块的四个小方块的格数.反正就是8个整数吧
    public int next;//表示下一方块
    }来描述方块?
    仅仅用int[]来描述?
      

  5.   

    /// <summary>
    /// 接口,提供方块类的一系列方法
    /// </summary>
    public interface BlockInterface
    {
    /// <summary>
    /// 方块类型
    /// </summary>
    int BlockType
    {
    get;
    }

    /// <summary>
    /// 坐标1
    /// </summary>
    Point P1
    {
    get;
    }
    /// <summary>
    /// 坐标2
    /// </summary>
    Point P2
    {
    get;
    } /// <summary>
    /// 坐标3
    /// </summary>
    Point P3
    {
    get;
    }
    /// <summary>
    /// 坐标4
    /// </summary>
    Point P4
    {
    get;
    } /// <summary>
    /// 绘制方块
    /// </summary>
    void DrawSelf(); /// <summary>
    /// 擦除方块
    /// </summary>
    void Refresh();

    /// <summary>
    /// 判断是否可以移动
    /// </summary>
    /// <param name="s"></param>
    /// <returns></returns>
    bool CanMove(int varType);

    /// <summary>
    /// 移动方块(左移、右移、下移)
    /// </summary>
    void Move(int varType);

    /// <summary>
    /// 判断是否可以旋转
    /// </summary>
    /// <param name="varType"></param>
    /// <returns></returns>
    bool CanCircle(); /// <summary>
    /// 旋转方块(四种不同状态)
    /// </summary>
    void Circle(); /// <summary>
    /// 方块下降到最低点,填充屏幕矩阵
    /// </summary>
    void FillMatrix();

    /// <summary>
    /// 是否游戏结束
    /// </summary>
    /// <returns></returns>
    bool isOver();

    }
      

  6.   

    brightheroes(闭关|那一剑的风情) :看来你写过这个咚咚阿,看上去很专业阿
      

  7.   

    dajianshi(拔剑四顾心茫然) :今年年初的时候穷极无聊,瞎写了一个(界面很丑陋,^_^),主要是2年以前想写一个,未遂:)
      

  8.   

    class shape
    {
    public int [] xy=new int[8];//表示组成每个方块的四个小方块的格数.反正就是8个整数吧
    public int next;//表示下一方块
    }或者
    struct shape
    {
    [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
    public int [] xy;
    public int next;
    }
      

  9.   

    TO:dajianshi(拔剑四顾心茫然) 
    正在试你的方法.写得不错.我马上去调试.通过就来结帐!
    TO: brightheroes(闭关|那一剑的风情) 
    小弟几年前用C和C++各写过一个.那时直接用的结构,感觉很方便还没想过用接口.不过我想如果像你这样用接口的话那不是要写19个类每个都实现这个接口吗?(注:一般俄罗斯方块有19种形状).而如果我用结构的话只要一句话就OK了.后面调用都很方便.小弟因没用过接口写过才有此愚见.不对处望指点.你还有用接口写的源码吗?能发一份给我吗[email protected]
    TO:ffb(我编) 
    你的第二个我还不大明白什么意思,
    不过第一个是错的.我最初就是这么写的.结构是值类型,不能在里面用new吧.反正这样写编译器是不会通过的.错在哪我不肯定.我写这个的目的主要是熟悉C#的语法.所以这次是非得用结构调试过去,不然达不到目的.呵呵.谢谢各位先.过会来结帐!
      

  10.   

    D:\项目\RussianCSharp3\Form1.cs(83): 应输入 class、delegate、enum、interface 或 struct果然按拔剑的方法通过了.不过又出了这个问题.正在想办法调试呢.呵呵.谢了.
      

  11.   

    TO:楼主
    D:\项目\RussianCSharp3\Form1.cs(83): 应输入 class、delegate、enum、interface 或 struct
    你的第二个错误一看就知道一定是多写个}造成的.
    比如:
    class abc
    {
    }
    abc()
    {}
    }
    这样的情况就会报错.
    我有一个用结构写的.不过和你这个有些不同,要的话短消息告诉我.也许能有点帮助!
      

  12.   

    学习brightheroes(闭关|那一剑的风情) ,强