社区
C++ 语言
帖子详情
俄罗斯方块能写多少行?
susan09
2009-11-28 12:55:58
我们C++大作业要写够3000行,有点想写俄罗斯方块,上网搜了一下发现很多人都说只有几百行,是不是写不到3000行呢?
有什么一定能写够这么多行的游戏么~~~跪求~~
...全文
268
15
打赏
收藏
俄罗斯方块能写多少行?
我们C++大作业要写够3000行,有点想写俄罗斯方块,上网搜了一下发现很多人都说只有几百行,是不是写不到3000行呢? 有什么一定能写够这么多行的游戏么~~~跪求~~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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++控制台
俄罗斯
方块
/* Author : 周天涯 email : menjitianya2007@163.com blog : http://www.cppblog.com/menjitianya/ Description : 即兴创作,《C控制台
俄罗斯
方块
》,欢迎交流与探讨,直接将代码粘贴到VC6.0的环境下即可运
行
。 ← 左移 → 右移 ↓ 加速 ↑ 旋转 连续消去1
行
得1分、2
行
得3分、3
行
得5分、4
行
得7分。 积分达到一定程度,会有换命的活动,命最多6条。 难度会随积分的上升逐渐上升,最多到6的难度。 */ #include
#include
#include
#include
#pragma comment(lib, "winmm.lib") using namespace std; #define GameW 10 #define GameH 20 const int CtrlLeft = GameW*2+4 + 3; struct Point { Point(){} Point(int x, int y) {_x = x, _y = y;} int _x, _y; }; HANDLE g_hOutput = GetStdHandle(STD_OUTPUT_HANDLE); HANDLE g_hInput = GetStdHandle(STD_INPUT_HANDLE);
C#版编
写
的
俄罗斯
方块
游戏
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(); }
C语言
俄罗斯
方块
课程名称:C语言控制台版
俄罗斯
方块
应用知识:C语言 课程目的:练习C语言知识综合运用 代码数量:1000左右 课程特点: 1、知识点讲解细致入微 2、代码一
行
一
行
带大家
写
,
写
一
行
讲一
行
...
俄罗斯
方块
源码
在linux下用c语言实现的
俄罗斯
方块
,包含了以下知识点,Makefile;多进程;C语言基本语法;linux下的文件读
写
俄罗斯
方块
C#
写
的,我看
行
(转别人的)
俄罗斯
方块
C#
写
的,我看
行
(转别人的)
俄罗斯
方块
C#
写
的,我看
行
(转别人的)
俄罗斯
方块
C#
写
的,我看
行
(转别人的)
俄罗斯
方块
C#
写
的,我看
行
(转别人的)
C++ 语言
64,685
社区成员
250,491
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章