ImageVerifierCode 换一换
格式:DOCX , 页数:25 ,大小:23.26KB ,
资源ID:8484259      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-8484259.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(扫雷游戏代码Word文件下载.docx)为本站会员(b****6)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

扫雷游戏代码Word文件下载.docx

1、QLabel(parent) mine_flag_=mine_flag; mark_flag_=false; turn_over_flag_=false; number_=-1; setPixmap(QPixmap(/images/normal.png);void Block:set_number(int number) number_=number;turn_over() if(!turn_over_flag_) turn_over_flag_=true; if(mine_flag_) setPixmap(QPixmap(/images/mine.png else/images/mine_+

2、QString(%1).arg(number_)+.png update(); bool Block:is_mine()const return mine_flag_;is_turn_over()const return turn_over_flag_;/*鼠标事件的实现*/mousePressEvent(QMouseEvent* event) if(event-button()=Qt:LeftButton) if(!turn_over_flag_&!mark_flag_) turn_over_flag_=true; if(mine_flag_=true) setPixmap(QPixmap(

3、 update(); emit turn_over(true); else emit turn_over(false); else if(event-RightButton) if(! mark_flag_=true;/images/flag.png mark_flag_=false; update(); QLabel:mousePressEvent(event);#ifndef BLOCK_AREA_H_#define BLOCK_AREA_H_class QEvent;class QGridLayout;class QObject;class BlockArea:public QWidge

4、t BlockArea(int row,int column,int mine_number,QWidget* parent=0); void set_block_area(int row,int column,int mine_number,int init_flag=false); void game_over(bool is_win); bool eventFilter(QObject* watched, QEvent* event);private slots: void slot_turn_over(bool is_mine); int calculate_mines(int x,i

5、nt y)const; /璁畻浠 ,y涓轰腑蹇幂殑涔濆 镙煎唴镄勯浄鏁 void try_to_turn_over_more_blocks(int x,int y); QGridLayout* mainLayout; int row_; int column_; int total_block_number_; int total_mine_number_; int turn_over_block_number_; bool game_over_flag_;/*block_area.h*/block_area.halgorithmQEventQGridLayoutQLayoutQObjectQ

6、QueueQTime/*雷的随机布置*/ptrdiff_t random(ptrdiff_t i) return qrand()%i;ptrdiff_t (*p_random)(ptrdiff_t)=random;BlockArea:BlockArea(int row,int column,int mine_number,QWidget* parent)QWidget(parent) set_block_area(row,column,mine_number,true);void BlockArea:set_block_area(int row,int column,int mine_numb

7、er,int init_flag)init_flag) for(int i=0;irow_;i+) for(int j=0;jcolumn_;j+) delete static_cast(mainLayout-itemAtPosition(i,j)-widget(); delete mainLayout; row_=row; column_=column; total_block_number_=row_*column_; total_mine_number_=mine_number; turn_over_block_number_=0; game_over_flag_=false; bool

8、 mine_flagtotal_block_number_; for(int i=0;total_mine_number_; mine_flagi=true; for(int i=total_mine_number_;total_block_number_; mine_flagi=false; QTime time; time=QTime:currentTime(); qsrand(time.msec()+time.second()*1000); std:random_shuffle(mine_flag,mine_flag+total_block_number_,p_random); main

9、Layout=new QGridLayout(this); for(int j=0; mainLayout-addWidget(new Block(mine_flagi*column_+j),i,j);i+)j+) Block* current_block=static_castset_number(calculate_mines(i,j); connect(current_block,SIGNAL(turn_over(bool),this,SLOT(slot_turn_over(bool);installEventFilter(this); bool BlockArea:eventFilte

10、r(QObject* watched, QEvent* event) if(game_over_flag_) if(event-type()=QEvent:MouseButtonPress) return true; return QWidget:eventFilter(watched,event);slot_turn_over(bool is_mine) if(is_mine) game_over_flag_=true; emit game_over(false); else +turn_over_block_number_; if(turn_over_block_number_=total

11、_block_number_-total_mine_number_) game_over_flag_=true; emit game_over(true); else for(int i=0; for(int j=0; if(sender()=static_cast=0) & (x-1+i (y-1+jcolumn_) ) if(static_castwidget()-is_mine() +number; return number;try_to_turn_over_more_blocks(int x,int y) QQueueQPair queue; QPair (pair.first-1+

12、i (pair.second-1+jcolumn_) ) if(!static_castis_turn_over() static_castQTimerclass QAction;class QActionGroup;class QCloseEvent;class QMenu;class QToolBar;class MainWindow:public QMainWindow MainWindow(QWidget* parent=0); void closeEvent(QCloseEvent* event); void slot_new_game(); void slot_rank(); vo

13、id slot_show_game_toolBar(bool show); void slot_show_statusBar(bool show); void slot_standard(QAction* standard_action); void slot_about_game(); void slot_game_over(bool is_win); void slot_timer(); void read_settings(); void write_settings(); void create_actions(); void create_menus(); void create_g

14、ame_toolBar(); void create_statusBar(); BlockArea* area_; int mine_number_; int easy_record_time_; int middle_record_time_; int hard_record_time_; QString easy_record_name_; QString middle_record_name_; QString hard_record_name_; int current_standard_; QMenu* game_menu; QMenu* setting_menu; QMenu* h

15、elp_menu; QToolBar* game_toolBar; QAction* new_game_action; QAction* rank_action; QAction* exit_action; QAction* show_game_toolBar_action; QAction* show_statusBar_action; QAction* easy_standard_action; QAction* middle_standard_action; QAction* hard_standard_action; QAction* custom_standard_action; Q

16、ActionGroup* standard_actionGroup; QAction* about_game_action; QAction* about_qt_action; QLabel* time_label; QTimer timer;main_window.hQActionQActionGroupQApplicationQDialogQDialogButtonBoxQHBoxLayoutQIconQInputDialogQMenuQMenuBarQMessageBoxQPushButtonQSettingsQSpinBoxQStatusBarQToolBarQVBoxLayout/*

17、关于游戏介绍的信息*/const QString g_software_name=Mine Sweeper;const QString g_software_version=1.2const QString g_software_author=CHANGHUIZHEN/*关于排行榜的信息*/const int g_no_record_time=9999;const QString g_no_record_name=MainWindow:MainWindow(QWidget* parent)QMainWindow(parent) area_=new BlockArea(9,9,10);/一般设置

18、 connect(area_,SIGNAL(game_over(bool),this,SLOT(slot_game_over(bool); setCentralWidget(area_); create_actions(); create_menus(); create_game_toolBar(); create_statusBar(); QCoreApplication:setOrganizationName(g_software_author);setApplicationName(g_software_name); read_settings(); layout()-setSizeCo

19、nstraint(QLayout:SetFixedSize); setWindowTitle(g_software_name); setWindowIcon(QIcon(/game.png /*等待最长时间,到时间就会提示游戏失败*/ timer.start(1000); connect(&timer,SIGNAL(timeout(),this,SLOT(slot_timer(); slot_new_game();void MainWindow:closeEvent(QCloseEvent*) write_settings();slot_new_game() area_-set_block_area(row_,column_,mine_number_); time_label-setText(0); time.restart(); timer.start();slot_rank() QDialog dialog; dialog.setWindowTitle(tr(rank QGridLayout* up_layout=new QGridLayout; up_layout-addWidget(new QLabel(tr(Standard),0,0);Time),0,1);Name),0,2);a

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2