qt实现的一个俄罗斯方块的程序 主窗口c文件
//-----------------------------------------------------------------------------------------------------
//BY:yuyongbao
//QQ:673360056
//-----------------------------------------------------------------------------------------------------
#include "tetris.h"
Tetris::Tetris(QWidget *parent)
: QDialog(parent), ui(new Ui::Tetris)
{
ui->setupUi(this);
gameInit();
this->connect(ui->frame,SIGNAL(scoreChanged(int)),this,SLOT(drawScore(int)));
this->connect(ui->frame,SIGNAL(nextTetrixChanged()),this,SLOT(nextTetrixChangedProc()));
this->connect(ui->frame,SIGNAL(gameOver()),this,SLOT(gameEnd()));
}
Tetris::~Tetris()
{
delete ui;
}
void Tetris::gameInit(void)
{
m_curScore = 0;
//总分数以后由文件读入
m_totalScore = 0;
m_level = 0;
m_line = 0;
m_bStart = FALSE;
m_mute = FALSE;
m_nextTetrisPos = QRect(120,160,4*PIXPERRECT,4*PIXPERRECT);
m_scorePos = QRect(50,200,200,40);
m_levelPos = QRect(50,240,200,40);
m_linePos = QRect(50,280,200,40);
//随机种子
qsrand(QTime(0,0,0).secsTo(QTime::currentTime()));
skinPath = "skins/";
}
void Tetris::gameStart(void)
{
timer = new QTimer(this);
connect(timer, SIGNAL(timeout()), this, SLOT(timePro()));
//游戏等级与时间之间的关系
timer->start(1600 - m_level * 300);
//产生当前方块和下一个方块
ui->frame->curShape = (TetrixShape)(qrand()%7);
ui->frame->nextShape = (TetrixShape)(qrand()%7);
&n
相关文档:
堆和栈的区别
一、预备知识—程序的内存分配
一个由c/C++编译的程序占用的内存分为以下几个部分
1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区(heap)— 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。 ......
一个C程序的内存布局(memory layout)
2009-09-09 15:19
一个C程序一直以来都是由以下5个段(pieces)组成:
代码段(text segment):存放CPU执行的机器指令(machine instructions)。通常情况下,代码段是可共享的,使其可共享的目的是对于频繁被执行的程序,只需要在内存中有一份拷贝即可,比如文本编辑器(text editors),C ......
N 当用两个补码表示的带符号数进行运算时,N=1表示运算的结果为负数;N=0表示运算的结果为正数或零.
Z Z=1表示运算的结果为零,Z=0表示运算的结果非零。
C 可以有4种方法设置C的值:
加法运算(包括CMN):当运算结果产生了进位时(无符号数溢出),C=1,否则C=0。
减法运 ......
/* =========================================================================== */
/* Project: s3c44b0_lib & ......
#include "draw.h"
#include "ui_draw.h"
#include <QPixmap>
draw::draw(QWidget *parent)
: QDialog(parent), ui(new Ui::draw)
{
ui->setupUi(this);
// this->setWindowFlags( Qt::FramelessWindowHint);
ctrlPoint.s ......