J2SE小项目—控制台俄罗斯方块
2017-03-02 19:39
176 查看
实现的功能:功能有bug,无心深究,半成品
1.方块*的下落
2.随着游戏进行,下落速度的增快
3.其实下落的位置随机
4.判断是否有整行可消除
5.输出得分
6.效果如下图
1.方块*的下落
2.随着游戏进行,下落速度的增快
3.其实下落的位置随机
4.判断是否有整行可消除
5.输出得分
6.效果如下图
public class TetrisDemo { public static void main(String[] args) { Cells cls = new Cells(); cls.allDrop(cls.cells); } }
public class Cells { char[][] cells = new char[15][25]; int begin = randomBegin(); int score=0; //构造函数 public Cells() { for (int i = 0; i < 15; i++) { for (int j = 0; j < 25; j++) { cells[i][j]=' '; } } } //随机出现 public int randomBegin() { return (int) (Math.random()*25); } //星号下落,遇到底部或者星星则停止 public void drop(char[][] cs,int begin,int sleepTime) { cs[0][begin] = '*'; for (int i = 0; i<14 && cs[i+1][begin]!='*'; i++) { cs[i+1][begin]='*'; cs[i][begin] = ' '; try { Thread.sleep(sleepTime); } catch (InterruptedException e) { System.out.println("有异常"); } cs = clearFloor(cs); paintStar(cs); } } //不断下落 public void allDrop(char[][] cs) { for (int i = 10; cs[0][begin]!='*';i = (i==1)?(i+1):(i-1)) { drop(cs, begin, 5*i); begin=randomBegin(); } } //消除可清除的层 public char[][] clearFloor(char[][] cs) { char[][] clearCs = new char[15][25]; boolean ifClear = false; for (int i = 0; i < clearCs.length; i++) { if (cs[14][i]=='*') { ifClear = true; continue; }else { clearCs = cs; break; } } if (ifClear) { score+=2; for (int i = 0; i < 14; i++) { for (int j = 0; j < 25; j++) { clearCs[i+1][j]=cs[i][j]; } } for (int i = 0; i < 25; i++) { clearCs[0][i]=' '; } } return clearCs; } //打印 public void paintStar(char[][] cs) { //美化一下界面 System.out.println(); System.out.println(); System.out.println(); System.out.println(); System.out.println("目前分数为:"+score); for (int i = 0; i < 15; i++) { for (int j = 0; j < 25; j++) { System.out.print(cs[i][j]); } System.out.println(); } } }
相关文章推荐
- win32控制台应用程序与win32项目的区别
- NetBeans 4.1 的J2SE项目结构
- 一个比较有意思的控制台下的俄罗斯方块代码
- 9_9_5创建一个控制台应用程序项目Traffic,它引用Vehicles.dll
- (接上篇)在控制台、WinForm项目中的嵌入mdf文件(注)
- VC2010 控制台项目执行结束后没有暂停
- (接上篇)在控制台、WinForm项目中的嵌入mdf文件(注)
- vs2010环境下将Win32控制台应用程序,改为Win32项目
- vs2008中如何在项目属性中切换“图形形式”和“控制台形式”——即调出或消除黑窗口
- Mono项目提供的一个控制台程序辅助包GetOptions
- VC中创建出来的Win32项目和Win32控制台程序互相转换
- websphere 安装项目时控制台内存溢出的情况
- Codeblocks中的第一个程序Helloworld,新建一个控制台项目
- 在控制台项目中实现窗体的程序
- Mono项目提供的一个控制台程序辅助包GetOptions
- JAVA游戏编程之三----j2se 手机游戏入门开发--俄罗斯方块_1
- win32控制台程序 win32项目 的转换
- 全位运算实现的俄罗斯方块-J2SE版
- 我们在建立Win32工程的时候,要选择是Win32控制台应用程序还是Win32项目,那么两者到底有什么区别呢?
- ant学习笔记(五)基于单元测试的j2se项目,包括编译、测试、打包、生成报告、上传ftp