俄罗斯方块能写多少行?

susan09 2009-11-28 12:55:58
我们C++大作业要写够3000行,有点想写俄罗斯方块,上网搜了一下发现很多人都说只有几百行,是不是写不到3000行呢?
有什么一定能写够这么多行的游戏么~~~跪求~~
...全文
268 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
gbb21 2009-11-28
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 liuchen1206 的回复:]
可以在UI方面下些功夫,如边上贴个美女,过一关就脱一件衣服...
[/Quote]
This is good!
zhengjiankang 2009-11-28
  • 打赏
  • 举报
回复
每一行写短一点
好的代码风格的要求就是每一行短一点
比如函数有5个参数
光这个函数名字就要占5行
这样既可以凑行数
又可以让代码好看
渔村居士 2009-11-28
  • 打赏
  • 举报
回复
可以在UI方面下些功夫,如边上贴个美女,过一关就脱一件衣服...
haierpro 2009-11-28
  • 打赏
  • 举报
回复
俄罗斯方块,有些人写只需要几百行,有些人写,可能3000行都不止
小赌移情 2009-11-28
  • 打赏
  • 举报
回复
湊行數還是很簡單的 加一些花里胡哨的功能 就行了
要是叫你壓縮代碼才難
softwarehbs 2009-11-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 steedhorse 的回复:]
如果界面花哨一些,再加上音效,3000行估计也能凑出来,呵呵。
实在不行,再加上对两人对打比赛的支持。
如果还不够,可以考虑再填加一点小花边,比如窗口的旁边除了显示分数之外,还显示年月日时分秒,而且时钟的秒针还不断地在动。还不够的话,干粹把农历也显示出来。嘿嘿。

偶当年写的作业是高射炮打飞机,Borland C++ 3.1写的,2100行不到。
[/Quote]

O(∩_∩)O哈哈~,你太有才啦!想法很不错哈~~~~
fjz_king 2009-11-28
  • 打赏
  • 举报
回复
再不行就多写注释
jixingzhong 2009-11-28
  • 打赏
  • 举报
回复
功能多一些就是了
fanchangyong 2009-11-28
  • 打赏
  • 举报
回复
多加点TRY-CATCH,不就行了?
pady_pady 2009-11-28
  • 打赏
  • 举报
回复
只要界面发哨,一万行也不成问题
失落的凡凡 2009-11-28
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 steedhorse 的回复:]
还可以把已往的成绩保存入MySQL数据库中,支持查询、过滤、排序、清除……:D
[/Quote]

好雅致……
aaaa3105563 2009-11-28
  • 打赏
  • 举报
回复
写一行 空格三行
晨星 2009-11-28
  • 打赏
  • 举报
回复
还可以把已往的成绩保存入MySQL数据库中,支持查询、过滤、排序、清除……:D
yorkzjy 2009-11-28
  • 打赏
  • 举报
回复
高射炮打飞机, 8错。。
晨星 2009-11-28
  • 打赏
  • 举报
回复
如果界面花哨一些,再加上音效,3000行估计也能凑出来,呵呵。
实在不行,再加上对两人对打比赛的支持。
如果还不够,可以考虑再填加一点小花边,比如窗口的旁边除了显示分数之外,还显示年月日时分秒,而且时钟的秒针还不断地在动。还不够的话,干粹把农历也显示出来。嘿嘿。

偶当年写的作业是高射炮打飞机,Borland C++ 3.1写的,2100行不到。
C#版俄罗斯方块 摘要 2008-07-07 09:38 阅读87 评论0 字号: 大大 中中 小小 C++是游戏编程的首选语言,但我相信C++能做到的C#也能做到。 本篇介绍用C#编一个俄罗斯方块程序的原理,以及在C#里面播放声音,保存游戏设置的方法。 游戏界面预览: 菜单预览: 自定义每个小方块颜色功能界面: 游戏主要有四部分组成:Square类,Block类,gameField类,游戏引擎 Square类: 这个类描述的对象是组成大方块中的每个小正方形实体。 类设计: class Square { public Point location; //小方块的坐标 public Size size; //小方块大小 public Color foreColor; //小方块前景色 public Color backColor; //小方块背景色 public Square(Size initSize,Color initForeColor,Color initBackColor) //构造函数 { ……} public void Draw(System.IntPtr winHandle) //在指定设备上画方块 { …… } public void Erase(System.IntPtr winHandle)//擦除方块 { …… } } Block类: 这个类描述的对象是某一个大方块的实体。每个大方块由四个小正方形组成,一共有7种组合方式。这个类需要实现一个大方块实体所有的属性和动作。包括:方块的形状,位置,方块左移,右移,下移,旋转等。 类设计: class Block { public Square square1; //组成block的四个小方块 public Square square2; public Square square3; public Square square4; private const int squareSize = GameField.SquareSize; //小方块的边长 public enum BlockTypes { undefined = 0, square = 1, line = 2, J = 3, L = 4, T = 5, Z = 6, S = 7 };//一共有7种形状 public BlockTypes blockType; //方块的形状 //七个小方块的颜色数组 private Color foreColor; private Color backColor; //方块的方向 public enum RotateDirections { North = 1, East = 2, South = 3, West = 4 }; public RotateDirections myRotation = RotateDirections.North; public Block(Point thisLocation,BlockTypes bType) { ……} //含有自定义颜色的重载 public Block(Point thisLocation, BlockTypes bType,Color fc,Color bc) { ……} /*画方块*/ public void Draw(System.IntPtr winHandle) {…… } /*擦方块*/ public void Erase(System.IntPtr winHandle) {…… } /*移动*/ public bool down() {……} public bool left() {……} public bool right() {……} /*旋转block*/ public void Rotate() {……} /*检测是否到顶*/ public int Top() {……} } GameField类: 这个类描述的对象是游戏场景实体,包括场景的背景色,大小,方块是否还可以移动,以及场景中填满一的检测等。 类设计: class GameField { public const int width = 20; //场景的宽,以方块个数为单位 public const int height = 30; public const int SquareSize = 15; //每个四分之一小方块的边长 public static Color BackColor; //场景的背景色 public static System.IntPtr winHandle; //场景的handle public static Color[] BlockForeColor ={ Color.Blue, Color.Beige, Color.DarkKhaki, Color.DarkMagenta, Color.DarkOliveGreen, Color.DarkOrange, Color.DarkRed }; public static Color[] BlockBackColor ={ Color.LightCyan, Color.DarkSeaGreen, Color.Beige, Color.Beige, Color.Beige, Color.Beige, Color.Beige }; public static bool isChanged=false; //设置是否被更改的标志位 public static SoundPlayer sound = new SoundPlayer(); //播放声音 public static Square[,] arriveBlock = new Square[width, height]; //保存已经不能再下落了的方块 public static int[] arrBitBlock=new int[height]; //位数组:当某个位置有方块时,该的该位为1 private const int bitEmpty = 0x0; //0000 0000 0000 0000 0000 private const int bitFull = 0xFFFFF; //1111 1111 1111 1111 1111 /*检测某个位置是否为空*/ public static bool isEmpty(int x, int y) {……} /*将方块停住*/ public static void stopSquare(Square sq, int x, int y) {……} /*检测是否满 * 返回:成功消除的数和 (方便统计分数) */ public static int CheckLines() { ……} /*播放声音*/ public static void PlaySound(string soundstr) {……} /*重画*/ public static void Redraw() { …… } //结束 } 游戏引擎: 游戏引擎正如其名,就像一个发动机一样让游戏不间断运。本游戏中就是让方块以一定的速度下落。并响应键盘事件,实左右移动,和向下加速功能。(代码见源码) 声音播放: 音效是游戏不可缺少的一部分。在.Net2.0中已经提供了一个类来播放声音。在using System.Media;命名空间。 本游戏中播放声音的代码如下:(在 GameField类中) using System.Media; public static SoundPlayer sound = new SoundPlayer(); /*播放声音*/ public static void PlaySound(string soundstr) { switch (soundstr) { case "FinishOneLine": //消除一的声音 if (!File.Exists("FinishOneLine.wav")) return; sound.SoundLocation = "FinishOneLine.wav"; break; case "CanNotDo": //当无法操作时 if (!File.Exists("CanNotDo.wav")) return; sound.SoundLocation = "CanNotDo.wav"; break; } sound.Play(); } 要播放的时候调用PlaySound()方法即可。 其实步骤很简单,先引用System.Media空间,然后创建一个SoundPlayer 对象,用SoundLocation 属性设置声音文件的地址,然后调用Play()方法即可播放。不过注意,这个类可以播放的声音格式只有Wav文件。 保存游戏设置: 在游戏中经常要保存用户自定义的设置。本游戏通过进ini文件来保存。 主要代码如: /*加载窗体时从配置文件Setting.ini中读取游戏设置*/ private void getSettings() { if (!File.Exists("Setting.ini")) return; FileStream fs = new FileStream("Setting.ini", FileMode.OpenOrCreate, FileAccess.ReadWrite); StreamReader sr = new StreamReader(fs); string line1=sr.ReadLine(); string line2=sr.ReadLine(); string line3=sr.ReadLine(); if (line1 != null && line1.Split('=').Length > 1) { GameField.BackColor = Color.FromArgb(int.Parse(line1.Split('=')[1])); picBackGround.BackColor = GameField.BackColor; } if (line2 != null && line2.Split('=').Length > 1) GameField.BlockForeColor = strToColor(line2.Split('=')[1]); if (line3 != null && line3.Split('=').Length > 1) GameField.BlockBackColor = strToColor(line3.Split('=')[1]); sr.Close(); fs.Close(); } /*如果游戏设置被更改,将新的设置保存到Setting.ini*/ private void saveSettings() { FileStream fs = new FileStream("Setting.ini", FileMode.Create, FileAccess.ReadWrite); StreamWriter sw = new StreamWriter(fs); sw.WriteLine("GameFieldColor="+GameField.BackColor.ToArgb()); sw.WriteLine("BlockFroeColor=" + colorToStr(GameField.BlockForeColor)); sw.WriteLine("BlockBackColor=" + colorToStr(GameField.BlockBackColor)); sw.Flush(); sw.Close(); fs.Close(); }

64,685

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧