电脑cmd游戏代码(cmd命令游戏)
求CMD指令一些好玩的东西。。
开始-运行-命令大全
1. gpedit.msc-----组策略
2. sndrec32-------录音机
3. Nslookup-------IP地址侦测器
4. explorer-------打开资源管理器
5. logoff---------注销命令
6. tsshutdn-------60秒倒计时关机命令
7. lusrmgr.msc----本机用户和组
8. services.msc---本地服务设置
9. oobe/msoobe /a----检查XP是否激活
10. notepad--------打开记事本
11. cleanmgr-------垃圾整理
12. net start messenger----开始信使服务
13. compmgmt.msc---计算机管理
14. net stop messenger-----停止信使服务
15. conf-----------启动netmeeting
16. dvdplay--------DVD播放器
17. charmap--------启动字符映射表
18. diskmgmt.msc---磁盘管理实用程序
19. calc-----------启动计算器
20. dfrg.msc-------磁盘碎片整理程序
21. chkdsk.exe-----Chkdsk磁盘检查
22. devmgmt.msc--- 设备管理器
23. regsvr32 /u *.dll----停止dll文件运行
24. drwtsn32------ 系统医生
25. rononce -p ----15秒关机
26. dxdiag---------检查DirectX信息
27. regedt32-------注册表编辑器
28. Msconfig.exe---系统配置实用程序
29. rsop.msc-------组策略结果集
30. mem.exe--------显示内存使用情况
31. regedit.exe----注册表
32. winchat--------XP自带局域网聊天
33. progman--------程序管理器
34. winmsd---------系统信息
35. perfmon.msc----计算机性能监测程序
36. winver---------检查Windows版本
37. sfc /scannow-----扫描错误并复原
38. taskmgr-----任务管理器(2000/xp/2003
39. winver---------检查Windows版本
40. wmimgmt.msc----打开windows管理体系结构(WMI)
41. wupdmgr--------windows更新程序
42. wscript--------windows脚本宿主设置
43. write----------写字板
44. winmsd---------系统信息
45. wiaacmgr-------扫描仪和照相机向导
46. winchat--------XP自带局域网聊天
47. mem.exe--------显示内存使用情况
48. Msconfig.exe---系统配置实用程序
49. mplayer2-------简易widnows media player
50. mspaint--------画图板
51. mstsc----------远程桌面连接
52. mplayer2-------媒体播放机
53. magnify--------放大镜实用程序
54. mmc------------打开控制台
55. mobsync--------同步命令
56. dxdiag---------检查DirectX信息
57. drwtsn32------ 系统医生
58. devmgmt.msc--- 设备管理器
59. dfrg.msc-------磁盘碎片整理程序
60. diskmgmt.msc---磁盘管理实用程序
61. dcomcnfg-------打开系统组件服务
62. ddeshare-------打开DDE共享设置
63. dvdplay--------DVD播放器
64. net stop messenger-----停止信使服务
65. net start messenger----开始信使服务
66. notepad--------打开记事本
67. nslookup-------网络管理的工具向导
68. ntbackup-------系统备份和还原
69. narrator-------屏幕“讲述人”
70. ntmsmgr.msc----移动存储管理器
71. ntmsoprq.msc---移动存储管理员操作请求
72. netstat -an----(TC)命令检查接口
73. syncapp--------创建一个公文包
74. sysedit--------系统配置编辑器
75. sigverif-------文件签名验证程序
76. sndrec32-------录音机
77. shrpubw--------创建共享文件夹
78. secpol.msc-----本地安全策略
79. syskey---------系统加密,一旦加密就不能解开,保护windows xp系统的双重密码
80. services.msc---本地服务设置
81. Sndvol32-------音量控制程序
82. sfc.exe--------系统文件检查器
83. sfc /scannow---windows文件保护
84. tsshutdn-------60秒倒计时关机命令
85. tourstart------xp简介(安装完成后出现的漫游xp程序)
86. taskmgr--------任务管理器
87. eventvwr-------事件查看器
88. eudcedit-------造字程序
89. explorer-------打开资源管理器
90. packager-------对象包装程序
91. perfmon.msc----计算机性能监测程序
92. progman--------程序管理器
93. regedit.exe----注册表
94. rsop.msc-------组策略结果集
95. regedt32-------注册表编辑器
96. rononce -p ----15秒关机
97. regsvr32 /u *.dll----停止dll文件运行
98. regsvr32 /u zipfldr.dll------取消ZIP支持
99. cmd.exe--------CMD命令提示符
100. chkdsk.exe-----Chkdsk磁盘检查
101. certmgr.msc----证书管理实用程序
102. calc-----------启动计算器
103. charmap--------启动字符映射表
104. cliconfg-------SQL SERVER 客户端网络实用程序
105. Clipbrd--------剪贴板查看器
106. conf-----------启动netmeeting
107. compmgmt.msc---计算机管理
108. cleanmgr-------垃圾整理
109. ciadv.msc------索引服务程序
110. osk------------打开屏幕键盘
111. odbcad32-------ODBC数据源管理器
112. oobe/msoobe /a----检查XP是否激活
113. lusrmgr.msc----本机用户和组
114. logoff---------注销命令
115. iexpress-------木马捆绑工具,系统自带
116. Nslookup-------IP地址侦测器
117. fsmgmt.msc-----共享文件夹管理器
118. utilman--------辅助工具管理器
119. gpedit.msc-----组策略
电脑常用的一些快捷键及代码(运行CMD等等的一下简介)
一、常见用法
F1 显示当前程序或者windows的帮助内容。 F2 当你选中一个文件的话,这意味着“重命名” F3 当你在桌面上的时候是打开“查找:所有文件” 对话框 F10或ALT 激活当前程序的菜单栏 F11 所打开的网页(退出)全屏 windows键或CTRL+ESC 打开开始菜单 CTRL+ALT+DELETE 在win9x中打开关闭程序对话框 DELETE 删除被选择的选择项目,如果是文件,将被放入回收站 SHIFT+DELETE 删除被选择的选择项目,如果是文件,将被直接删除而不是 放入回收站 CTRL+N 新建一个新的文件 CTRL+O 打开“打开文件”对话框 CTRL+P 打开“打印”对话框 CTRL+S 保存当前操作的文件 CTRL+X 剪切被选择的项目到剪贴板 CTRL+INSERT 或 CTRL+C 复制被选择的项目到剪贴板 SHIFT+INSERT 或 CTRL+V 粘贴剪贴板中的内容到当前位置 ALT+BACKSPACE 或 CTRL+Z 撤销上一步的操作 ALT+SHIFT+BACKSPACE 重做上一步被撤销的操作 Windows键+L 锁屏键 Windows键+M 最小化所有被打开的窗口。 Windows键+SHIFT+M 重新将恢复上一项操作前窗口的大小和位置 Windows键+D 瞬间最小化所有窗口,再次按此组合键时恢复之前最小化的窗口。 Windows键+E 打开我的电脑 Windows键+F 打开“查找:所有文件”对话框 Windows键+R 打开“运行”对话框 Windows键+BREAK 打开“系统属性”对话框 Windows键+CTRL+F 打开“查找:计算机”对话框 SHIFT+F10或鼠标右击 打开当前活动项目的快捷菜单 SHIFT 在放入CD的时候按下不放,可以跳过自动播放CD。在打开word的时候按下不放,可以跳过自启动的宏 ALT+F4 关闭当前应用程序 ALT+SPACEBAR 打开程序最左上角的菜单 ALT+TAB 切换当前程序 ALT+ESC 切换当前程序 ALT+ENTER 将windows下运行的MSDOS窗口在窗口和全屏幕状态间切换 PRINT SCREEN 将当前屏幕以图象方式拷贝到剪贴板 ALT+PRINT SCREEN 将当前活动程序窗口以图象方式拷贝到剪贴板 CTRL+F4 关闭当前应用程序中的当前文本(如word中) CTRL+F6 切换到当前应用程序中的下一个文本(加shift 可以跳到前一个窗口) 在IE中: CTRL+W 关闭当前网页 CTRL+R 刷新当前页面 CTRL+A 全选 CTRL+E 打开搜索 CTRL+F 查找 CTRL+Z 撤销 ALT+RIGHT ARROW 显示前一页(前进键) ALT+LEFT ARROW 显示后一页(后退键) CTRL+TAB 在页面上的各框架中切换(加shift反向) F5 刷新 CTRL+F5 强行刷新 目的快捷键 激活程序中的菜单栏 F10 执行菜单上相应的命令 ALT+菜单上带下划线的字母 关闭多文档界面程序中的当 前窗口 CTRL+ F4 关闭当前窗口或退出程序 ALT+ F4 复制 CTRL+ C 粘贴 CTR L+ V 剪切 CTRL+ X 删除 DELETE 显示所选对话框项目的帮助 F1 显示当前窗口的系统菜单 ALT+空格键 显示所选项目的快捷菜单 SHIFT+ F10 显示“开始”菜单 CTRL+ ESC 显示多文档界面程序的系统 菜单 ALT+连字号(-) 切换到上次使用的窗口或者 按住 ALT然后重复按TAB, 切换到另一个窗口 ALT+ TAB
编辑本段二、使用“Windows资源管理器”的快捷键
目的快捷键
如果当前选择展开了,要折叠或者选择父文件夹左箭头 折叠所选的文件夹 NUM LOCK+负号(-) 如果当前选择折叠了,要展开或者选择第一个子文件夹右箭头 展开当前选择下的所有文件夹 NUM LOCK+* 展开所选的文件夹 NUM LOCK+加号(+) 在左右窗格间切换 F6
快速关机键
Ctrl+alt+del打开Windows资源管理器 按住ctrl不放,选择关机 - 关闭 跳过系统自动保存,瞬间安全关机。(当前窗口有重要资料时不建议使用)
编辑本段三、使用 WINDOWS键
可以使用 Microsoft自然键盘或含有 Windows徽标键的其他任何兼容键盘的以下快 捷键。 目的快捷键 在任务栏上的按钮间循环 WINDOWS+ TAB 显示“查找:所有文件” WINDOWS+ F 显示“查找:计算机” CTRL+ WINDOWS+ F 显示“帮助” WINDOWS+ F1 显示“运行”命令 WINDOWS+ R 显示“开始”菜单 WINDOWS 显示“系统属性”对话框 WINDOWS+ BREAK 显示“Windows资源管理器” WINDOWS+ E 最小化或还原所有窗口 WINDOWS+ D 撤消最小化所有窗口 SHIFT+ WINDOWS+ M
编辑本段四、“我的电脑”和“资源管理器”的快捷键
目的快捷键 关闭所选文件夹及其所有父 文件夹按住 SHIFT键再单击“关闭按钮(仅适用于“我的电脑”) 向后移动到上一个视图 ALT+左箭头 向前移动到上一个视图 ALT+右箭头 查看上一级文件夹 BACKSPACE
编辑本段五、使用对话框中的快捷键
目的快捷键 取消当前任务 ESC 如果当前控件是个按钮,要 单击该按钮或者如果当前控 件是个复选框,要选择或清 除该复选框或者如果当前控 件是个选项按钮,要单击该 选项空格键 单击相应的命令 ALT+带下划线的字母 单击所选按钮 ENTER 在选项上向后移动 SHIFT+ TAB 在选项卡上向后移动 CTRL+ SHIFT+ TAB 在选项上向前移动 TAB 在选项卡上向前移动 CTRL+ TAB 如果在“另存为”或“打开” 对话框中选择了某文件夹, 要打开上一级文件夹 BACKSPACE 在“另存为”或“打开”对 话框中打开“保存到”或 “查阅” F4 刷新“另存为”或“打开” 对话框 F5
编辑本段六、桌面、我的电脑和“资源管理器”快捷键
选择项目时,可以使用以下快捷键。 目的快捷键 插入光盘时不用“自动播放” 功能按住 SHIFT插入 CD-ROM 复制文件按住 CTRL拖动文件 创建快捷方式按住 CTRL+SHIFT拖动文件 立即删除某项目而不将其放入 SHIFT+DELETE “回收站” 显示“查找:所有文件” F3 显示项目的快捷菜单 APPLICATION键 刷新窗口的内容 F5 重命名项目 F2 选择所有项目 CTRL+ A 查看项目的属性 ALT+ ENTER或 ALT+双击 可将 APPLICATION键用于 Microsoft自然键盘或含有 APPLICATION键的其他兼容键
编辑本段七、Microsoft放大程序的快捷键
这里运用Windows徽标键和其他键的组合。 快捷键目的 Windows徽标+PRINT SCREEN将屏幕复制到剪贴板(包括鼠标光标) Windows徽标+SCROLL LOCK将屏幕复制到剪贴板(不包括鼠标光标) Windows徽标+ PAGE UP切换反色。 Windows徽标+ PAGE DOWN切换跟随鼠标光标 Windows徽标+向上箭头增加放大率 Windows徽标+向下箭头减小放大率
编辑本段八、使用辅助选项快捷键
目的快捷键 切换筛选键开关右SHIFT八秒 切换高对比度开关左ALT+左SHIFT+PRINT SCREEN 切换鼠标键开关左ALT+左SHIFT+NUM LOCK 切换粘滞键开关 SHIFT键五次 切换切换键开关 NUM LOCK五秒 QQ快捷键,玩QQ更方便 Alt+S 快速回复 Alt+C 关闭当前窗口 Alt+H 打开聊天记录 Alt+T 更改消息模式 Ait+J 打开聊天纪录 Ctrl+A 全选当前对话框里的内容 Ctrl+F QQ里直接显示字体设置工具条 Ctrl+J 输入框里回车(跟回车一个效果) Ctrl+M 输入框里回车(跟回车一个效果) Ctrl+L 对输入框里当前行的文字左对齐 Ctrl+R 对输入框里当前行的文字右对齐 Ctrl+E对输入框里当前行的文字居中 Ctrl+V在qq对话框里实行粘贴 Ctrl+Z清空/恢复输入框里的文字 Ctrl+回车 快速回复 这个可能是聊QQ时最常用到的了 Ctrl+Alt+Z快速提取消息 Ctrl+Alt+A 捕捉屏幕 最常用的快捷键 F5------------刷新 DELETE--------删除 TAB-------改变焦点 CTRL+C--------复制 CTRL+X--------剪切 CTRL+V--------粘贴 CTRL+A--------全选 CTRL+Z--------撤销 CTRL+S--------保存 ALT+F4--------关闭 CTRL+Y--------恢复 ALT+TAB-------切换 CTRL+F5---强制刷新 CTRL+W--------关闭 CTRL+F--------查找 SHIFT+DELETE永久删除 CTRL+ALT+DEL任务管理 SHIFT+TAB-反向切换 CTRL+空格--中英文输入切换 CTRL+Shift输入法切换 CTRL+ESC--开始菜单 CTRL+ALT+ZQQ快速提取消息 CTRL+ALT+AQQ截图工具 CTRL+ENTERQQ发消息 Alt+1 保存当前表单 Alt+2 保存为通用表单 Alt+A 展开收藏夹列表 资源管理器 END显示当前窗口的底端 HOME显示当前窗口的顶端 NUMLOCK+数字键盘的减号(-)折叠所选的文件夹 NUMLOCK+数字键盘的加号(+)显示所选文件夹的内容 NUMLOCK+数字键盘的星号(*)显示所选文件夹的所有子文件夹 向左键当前所选项处于展开状态时折叠该项,或选定其父文件夹 向右键当前所选项处于折叠状态时展开该项,或选定第一个子文件夹 自然键盘 【窗口】显示或隐藏“开始”菜单 【窗口】+F1帮助 【窗口】+D显示桌面 【窗口】+R打开“运行” 【窗口】+E打开“我的电脑” 【窗口】+F搜索文件或文件夹 【窗口】+U打开“工具管理器” 【窗口】+BREAK显示“系统属性” 【窗口】+TAB在打开的项目之间切换 辅助功能 按右边的SHIFT键八秒钟切换筛选键的开和关 按SHIFT五次切换粘滞键的开和关 按NUMLOCK五秒钟切换切换键的开和关 左边的ALT+左边的SHIFT+NUMLOCK切换鼠标键的开和关 左边的ALT+左边的SHIFT+PRINTSCREEN切换高对比度的开和关 运行 按“开始”-“运行”,或按WIN键+R,在『运行』窗口中输入: (按英文字符顺序排列) %temp%---------打开临时文件夹 .--------------C:\DocumentsandSettings\用户名所在文件夹 ..-------------C:\DocumentsandSettings ...------------我的电脑 \--------------C盘 appwize.cpl----添加、删除程序 access.cpl-----辅助功能选项 Accwiz---------辅助功能向导 cmd------------CMD命令提示符 command--------CMD命令提示符 chkdsk.exe-----Chkdsk磁盘检查 certmgr.msc----证书管理实用程序 calc-----------启动计算器 charmap--------启动字符映射表 cintsetp-------仓颉拼音输入法 cliconfg-------SQLSERVER客户端网络实用程序 clipbrd--------剪贴板查看器 control--------打开控制面板 conf-----------启动netmeeting compmgmt.msc---计算机管理 cleanmgr-------垃圾整理 ciadv.msc------索引服务程序 dcomcnfg-------打开系统组件服务 ddeshare-------打开DDE共享设置 dxdiag---------检查DirectX信息 drwtsn32-------系统医生 devmgmt.msc----设备管理器 desk.cpl-------显示属性 dfrg.msc-------磁盘碎片整理程序 diskmgmt.msc---磁盘管理实用程序 dvdplay--------DVD播放器 eventvwr-------事件查看器 eudcedit-------造字程序 explorer-------打开资源管理器 fsmgmt.msc-----共享文件夹管理器 firewall.cpl---WINDOWS防火墙 gpedit.msc-----组策略 hdwwiz.cpl-----添加硬件 iexpress-------木马捆绑工具,系统自带 inetcpl.cpl----INTETNET选项 intl.cpl-------区域和语言选项(输入法选项) irprops.cpl----无线链接 joy.cpl--------游戏控制器 lusrmgr.msc----本机用户和组 logoff---------注销命令 main.cpl-------鼠标 mem.exe--------显示内存使用情况 migwiz---------文件转移向导 mlcfg32.cpl----邮件 mplayer2-------简易widnowsmediaplayer mspaint--------画图板 msconfig.exe---系统配置实用程序 mstsc----------远程桌面连接 magnify--------放大镜实用程序 mmc------------打开控制台 mmsys.cpl------声音和音频设备 mobsync--------同步命令 ncpa.cpl-------网络连接 nslookup-------IP地址侦测器 netstartX----开始X服务 netstopX-----停止X服务 netstat-an----命令检查接口 netsetup.cpl---无线网络安装向导 notepad--------打开记事本 nslookup-------IP地址侦探器 narrator-------屏幕“讲述人” ntbackup-------系统备份和还原 ntmsmgr.msc----移动存储管理器 ntmsoprq.msc---移动存储管理员操作请求 nusrmgr.cpl----用户账户 nwc.cpl--------NetWare客户服务 osk------------打开屏幕键盘 odbcad32-------ODBC数据源管理器 odbccp32.cpl---ODBC数据源管理器 oobe/msoobe/a-检查XP是否激活 packager-------对象包装程序 perfmon.msc----计算机性能监测程序 powercfg.cpl---电源选项 progman--------程序管理器 regedit--------注册表 rsop.msc-------组策略结果集 regedt32-------注册表编辑器 regsvr32/?----调用、卸载DLL文件运行(详细请在cmd中输入regsvr32/?) sapi.cpl-------语音 services.msc---本地服务设置 syncapp--------创建一个公文包 sysedit--------系统配置编辑器 sigverif-------文件签名验证程序 sndrec32-------录音机 sndvol32-------音量控制程序 shrpubw--------共享文件夹设置工具 secpol.msc-----本地安全策略 sysdm.cpl------系统 syskey---------系统加密(一旦加密就不能解开,保护windowsxp系统的双重密码) services.msc---本地服务设置 sfc.exe--------系统文件检查器 sfc/scannow---windows文件保护 shutdown-------关机命令(详细请在cmd中输入shutdown/?) taskmgr--------任务管理器 telephon.cpl---电话和调制解调器选项 telnet---------远程连接程序 timedate.cpl---日期和时间 tourstart------xp简介(安装完成后出现的漫游xp程序) tsshutdn-------60秒倒计时关机命令 utilman--------辅助工具管理器 winver---------检查Windows版本 winmsd---------系统信息 wiaacmgr-------扫描仪和照相机向导 winchat--------XP自带局域网聊天 wmimgmt.msc----打开windows管理体系结构(WMI) wordpad--------写字板 wuaucpl.cpl----自动更新 wupdmgr--------windows更新程序 write----------写字板 wscript--------windows脚本宿主设置 wscui.cpl------安全中心 C:/windows/fonts字体 hcp://services/centers/homepage帮助和支持
求一个用C语言编写的小游戏代码
#include graphics.h
#include conio.h
#include time.h
/////////////////////////////////////////////
// 定义常量、枚举量、结构体、全局变量
/////////////////////////////////////////////
#define WIDTH 10 // 游戏区宽度
#define HEIGHT 22 // 游戏区高度
#define SIZE 20 // 每个游戏区单位的实际像素
// 定义操作类型
enum CMD
{
CMD_ROTATE, // 方块旋转
CMD_LEFT, CMD_RIGHT, CMD_DOWN, // 方块左、右、下移动
CMD_SINK, // 方块沉底
CMD_QUIT // 退出游戏
};
// 定义绘制方块的方法
enum DRAW
{
SHOW, // 显示方块
HIDE, // 隐藏方块
FIX // 固定方块
};
// 定义七种俄罗斯方块
struct BLOCK
{
WORD dir[4]; // 方块的四个旋转状态
COLORREF color; // 方块的颜色
} g_Blocks[7] = { {0x0F00, 0x4444, 0x0F00, 0x4444, RED}, // I
{0x0660, 0x0660, 0x0660, 0x0660, BLUE}, // 口
{0x4460, 0x02E0, 0x0622, 0x0740, MAGENTA}, // L
{0x2260, 0x0E20, 0x0644, 0x0470, YELLOW}, // 反L
{0x0C60, 0x2640, 0x0C60, 0x2640, CYAN}, // Z
{0x0360, 0x4620, 0x0360, 0x4620, GREEN}, // 反Z
{0x4E00, 0x4C40, 0x0E40, 0x4640, BROWN}}; // T
// 定义当前方块、下一个方块的信息
struct BLOCKINFO
{
byte id; // 方块 ID
char x, y; // 方块在游戏区中的坐标
byte dir:2; // 方向
} g_CurBlock, g_NextBlock;
// 定义游戏区
BYTE g_World[WIDTH][HEIGHT] = {0};
/////////////////////////////////////////////
// 函数声明
/////////////////////////////////////////////
void Init(); // 初始化游戏
void Quit(); // 退出游戏
void NewGame(); // 开始新游戏
void GameOver(); // 结束游戏
CMD GetCmd(); // 获取控制命令
void DispatchCmd(CMD _cmd); // 分发控制命令
void NewBlock(); // 生成新的方块
bool CheckBlock(BLOCKINFO _block); // 检测指定方块是否可以放下
void DrawBlock(BLOCKINFO _block, DRAW _draw = SHOW); // 画方块
void OnRotate(); // 旋转方块
void OnLeft(); // 左移方块
void OnRight(); // 右移方块
void OnDown(); // 下移方块
void OnSink(); // 沉底方块
/////////////////////////////////////////////
// 函数定义
/////////////////////////////////////////////
// 主函数
void main()
{
Init();
CMD c;
while(true)
{
c = GetCmd();
DispatchCmd(c);
// 按退出时,显示对话框咨询用户是否退出
if (c == CMD_QUIT)
{
HWND wnd = GetHWnd();
if (MessageBox(wnd, _T("您要退出游戏吗?"), _T("提醒"), MB_OKCANCEL | MB_ICONQUESTION) == IDOK)
Quit();
}
}
}
// 初始化游戏
void Init()
{
initgraph(640, 480);
srand((unsigned)time(NULL));
// 显示操作说明
setfont(14, 0, _T("宋体"));
outtextxy(20, 330, _T("操作说明"));
outtextxy(20, 350, _T("上:旋转"));
outtextxy(20, 370, _T("左:左移"));
outtextxy(20, 390, _T("右:右移"));
outtextxy(20, 410, _T("下:下移"));
outtextxy(20, 430, _T("空格:沉底"));
outtextxy(20, 450, _T("ESC:退出"));
// 设置坐标原点
setorigin(220, 20);
// 绘制游戏区边界
rectangle(-1, -1, WIDTH * SIZE, HEIGHT * SIZE);
rectangle((WIDTH + 1) * SIZE - 1, -1, (WIDTH + 5) * SIZE, 4 * SIZE);
// 开始新游戏
NewGame();
}
// 退出游戏
void Quit()
{
closegraph();
exit(0);
}
// 开始新游戏
void NewGame()
{
// 清空游戏区
setfillstyle(BLACK);
bar(0, 0, WIDTH * SIZE - 1, HEIGHT * SIZE - 1);
ZeroMemory(g_World, WIDTH * HEIGHT);
// 生成下一个方块
g_NextBlock.id = rand() % 7;
g_NextBlock.dir = rand() % 4;
g_NextBlock.x = WIDTH + 1;
g_NextBlock.y = HEIGHT - 1;
// 获取新方块
NewBlock();
}
// 结束游戏
void GameOver()
{
HWND wnd = GetHWnd();
if (MessageBox(wnd, _T("游戏结束。\n您想重新来一局吗?"), _T("游戏结束"), MB_YESNO | MB_ICONQUESTION) == IDYES)
NewGame();
else
Quit();
}
// 获取控制命令
DWORD m_oldtime;
CMD GetCmd()
{
// 获取控制值
while(true)
{
// 如果超时,自动下落一格
DWORD newtime = GetTickCount();
if (newtime - m_oldtime = 500)
{
m_oldtime = newtime;
return CMD_DOWN;
}
// 如果有按键,返回按键对应的功能
if (kbhit())
{
switch(getch())
{
case 'w':
case 'W': return CMD_ROTATE;
case 'a':
case 'A': return CMD_LEFT;
case 'd':
case 'D': return CMD_RIGHT;
case 's':
case 'S': return CMD_DOWN;
case 27: return CMD_QUIT;
case ' ': return CMD_SINK;
case 0:
case 0xE0:
switch(getch())
{
case 72: return CMD_ROTATE;
case 75: return CMD_LEFT;
case 77: return CMD_RIGHT;
case 80: return CMD_DOWN;
}
}
}
// 延时 (降低 CPU 占用率)
Sleep(20);
}
}
// 分发控制命令
void DispatchCmd(CMD _cmd)
{
switch(_cmd)
{
case CMD_ROTATE: OnRotate(); break;
case CMD_LEFT: OnLeft(); break;
case CMD_RIGHT: OnRight(); break;
case CMD_DOWN: OnDown(); break;
case CMD_SINK: OnSink(); break;
case CMD_QUIT: break;
}
}
// 生成新的方块
void NewBlock()
{
g_CurBlock.id = g_NextBlock.id, g_NextBlock.id = rand() % 7;
g_CurBlock.dir = g_NextBlock.dir, g_NextBlock.dir = rand() % 4;
g_CurBlock.x = (WIDTH - 4) / 2;
g_CurBlock.y = HEIGHT + 2;
// 下移新方块直到有局部显示
WORD c = g_Blocks[g_CurBlock.id].dir[g_CurBlock.dir];
while((c 0xF) == 0)
{
g_CurBlock.y--;
c = 4;
}
// 绘制新方块
DrawBlock(g_CurBlock);
// 绘制下一个方块
setfillstyle(BLACK);
bar((WIDTH + 1) * SIZE, 0, (WIDTH + 5) * SIZE - 1, 4 * SIZE - 1);
DrawBlock(g_NextBlock);
// 设置计时器,用于判断自动下落
m_oldtime = GetTickCount();
}
// 画方块
void DrawBlock(BLOCKINFO _block, DRAW _draw)
{
WORD b = g_Blocks[_block.id].dir[_block.dir];
int x, y;
int color = BLACK;
switch(_draw)
{
case SHOW: color = g_Blocks[_block.id].color; break;
case HIDE: color = BLACK; break;
case FIX: color = g_Blocks[_block.id].color / 3; break;
}
setfillstyle(color);
for(int i=0; i16; i++)
{
if (b 0x8000)
{
x = _block.x + i % 4;
y = _block.y - i / 4;
if (y HEIGHT)
{
if (_draw != HIDE)
bar3d(x * SIZE + 2, (HEIGHT - y - 1) * SIZE + 2, (x + 1) * SIZE - 4, (HEIGHT - y) * SIZE - 4, 3, true);
else
bar(x * SIZE, (HEIGHT - y - 1) * SIZE, (x + 1) * SIZE - 1, (HEIGHT - y) * SIZE - 1);
}
}
b = 1;
}
}
// 检测指定方块是否可以放下
bool CheckBlock(BLOCKINFO _block)
{
WORD b = g_Blocks[_block.id].dir[_block.dir];
int x, y;
for(int i=0; i16; i++)
{
if (b 0x8000)
{
x = _block.x + i % 4;
y = _block.y - i / 4;
if ((x 0) || (x = WIDTH) || (y 0))
return false;
if ((y HEIGHT) (g_World[x][y]))
return false;
}
b = 1;
}
return true;
}
// 旋转方块
void OnRotate()
{
// 获取可以旋转的 x 偏移量
int dx;
BLOCKINFO tmp = g_CurBlock;
tmp.dir++; if (CheckBlock(tmp)) { dx = 0; goto rotate; }
tmp.x = g_CurBlock.x - 1; if (CheckBlock(tmp)) { dx = -1; goto rotate; }
tmp.x = g_CurBlock.x + 1; if (CheckBlock(tmp)) { dx = 1; goto rotate; }
tmp.x = g_CurBlock.x - 2; if (CheckBlock(tmp)) { dx = -2; goto rotate; }
tmp.x = g_CurBlock.x + 2; if (CheckBlock(tmp)) { dx = 2; goto rotate; }
return;
rotate:
// 旋转
DrawBlock(g_CurBlock, HIDE);
g_CurBlock.dir++;
g_CurBlock.x += dx;
DrawBlock(g_CurBlock);
}
// 左移方块
void OnLeft()
{
BLOCKINFO tmp = g_CurBlock;
tmp.x--;
if (CheckBlock(tmp))
{
DrawBlock(g_CurBlock, HIDE);
g_CurBlock.x--;
DrawBlock(g_CurBlock);
}
}
// 右移方块
void OnRight()
{
BLOCKINFO tmp = g_CurBlock;
tmp.x++;
if (CheckBlock(tmp))
{
DrawBlock(g_CurBlock, HIDE);
g_CurBlock.x++;
DrawBlock(g_CurBlock);
}
}
// 下移方块
void OnDown()
{
BLOCKINFO tmp = g_CurBlock;
tmp.y--;
if (CheckBlock(tmp))
{
DrawBlock(g_CurBlock, HIDE);
g_CurBlock.y--;
DrawBlock(g_CurBlock);
}
else
OnSink(); // 不可下移时,执行“沉底方块”操作
}
// 沉底方块
void OnSink()
{
int i, x, y;
// 连续下移方块
DrawBlock(g_CurBlock, HIDE);
BLOCKINFO tmp = g_CurBlock;
tmp.y--;
while (CheckBlock(tmp))
{
g_CurBlock.y--;
tmp.y--;
}
DrawBlock(g_CurBlock, FIX);
// 固定方块在游戏区
WORD b = g_Blocks[g_CurBlock.id].dir[g_CurBlock.dir];
for(i = 0; i 16; i++)
{
if (b 0x8000)
{
if (g_CurBlock.y - i / 4 = HEIGHT)
{ // 如果方块的固定位置超出高度,结束游戏
GameOver();
return;
}
else
g_World[g_CurBlock.x + i % 4][g_CurBlock.y - i / 4] = 1;
}
b = 1;
}
// 检查是否需要消掉行,并标记
int row[4] = {0};
bool bRow = false;
for(y = g_CurBlock.y; y = max(g_CurBlock.y - 3, 0); y--)
{
i = 0;
for(x = 0; x WIDTH; x++)
if (g_World[x][y] == 1)
i++;
if (i == WIDTH)
{
bRow = true;
row[g_CurBlock.y - y] = 1;
setfillstyle(WHITE, DIAGCROSS2_FILL);
bar(0, (HEIGHT - y - 1) * SIZE + SIZE / 2 - 2, WIDTH * SIZE - 1, (HEIGHT - y - 1) * SIZE + SIZE / 2 + 2);
}
}
if (bRow)
{
// 延时 200 毫秒
Sleep(200);
// 擦掉刚才标记的行
IMAGE img;
for(i = 0; i 4; i++)
{
if (row[i])
{
for(y = g_CurBlock.y - i + 1; y HEIGHT; y++)
for(x = 0; x WIDTH; x++)
{
g_World[x][y - 1] = g_World[x][y];
g_World[x][y] = 0;
}
getimage(img, 0, 0, WIDTH * SIZE, (HEIGHT - (g_CurBlock.y - i + 1)) * SIZE);
putimage(0, SIZE, img);
}
}
}
// 产生新方块
NewBlock();
}
电脑程序错误在cmd中输入什么代码修复
电脑出现”该内存不能为read、written ”的完全解决方案? 运行某些程序的时候,有时会出现内存错误的提示,然后该程序就关闭。 “0x????????”指令引用的“0x????????”内存。该内存不能为“read”。 “0x????????”指令引用的“0x????????”内存,该内存不能为“written”。 不知你出现过类似这样的故障吗?(0x后面内容有可能不一样。) 一般出现这个现象的方面有,一是硬件,即内存方面有问题,二是软件,这就有多方面的问题了。 下面先说说硬件: 一般来说,内存出现问题的可能性并不大,主要方面是:内存条坏了、内存质量有问题,还有就是2个不同牌子不同容量的内存混插,也比较容易出现不兼容的情况,同时还要注意散热问题,特别是超频后。你可以使用MemTest 这个软件来检测一下内存,它可以彻底的检测出内存的稳定度。 假如你是双内存,而且是不同品牌的内存条混插或者买了二手内存时,出现这个问题,这时,你就要检查是不是内存出问题了或者和其它硬件不兼容。 如果都没有,那就从软件方面排除故障了。 先简单说说原理: 内存有个存放数据的地方叫缓冲区,当程序把数据放在其一位置时,因为没有足够空间,就会发生溢出现象。举个例子:一个桶子只能将一斤的水,当你放入两斤的水进入时,就会溢出来。而系统则是在屏幕上表现出来。这个问题,经常出现在 windows2000和XP系统上,Windows 2000/XP对硬件的要求是很苛刻的,一旦遇到资源死锁、溢出或者类似Windows 98里的非法操作,系统为保持稳定,就会出现上述情况。另外也可能是硬件设备之间的兼容性不好造成的。 一般原因是: 1、驱动不稳定,与系统不兼容,这最容易出现内存不能为 Read 或者文件保护 2、系统安装了一个或者多个流氓软件,这出现 IE 或者系统崩溃的机会也比较大,也有可能出现文件保护 3、系统加载的程序或者系统正在运行的程序之前有冲突,尤其是部分杀毒软件监控程序 4、系统本身存在漏洞,导致容易受到网络攻击。 5、病毒问题也是主要导致内存不能为 Read、文件保护、Explorer.exe 错误…… 6、如果在玩游戏时候出现内存不能为 Read,则很大可能是显卡驱动不适合(这里的不适合有不适合该游戏、不适合电脑的显卡),也有可能是 DX9.0C 版本不够新或者不符合该游戏、显卡驱动 7、部分软件本身自身不足的问题 8、电脑硬件过热,也是导致内存不能为 Read 的原因之一。 9、电脑内存与主板兼容性不好也是导致内存不能为 Read 的致命原因! 解决方法: 通用的比较管用的方法是这个: 在开始-运行里输入CMD确定,在命令行窗口下输入以下内容后按回车 for %1 in (%windir%\system32\*.ocx) do regsvr32 /s %1 完了后,再输入以下内容并回车 for %1 in (%windir%\system32\*.dll) do regsvr32 /s %1 这个要好久,耐心等候,但也可能需要重启后整个效果才会出来。 【技巧】如果怕输入错误的话,可以复制这条指令,然后在命令提示框点击左上角的c:\,使用下面的“编辑-粘贴”功能就不容易输错了。在飞速滚屏完全静止之后,别着急启动其他程序,先耐心等一会儿,因为此时dll们还在找位置。直到你的指示灯不闪了再做别的。 如果还不行,唯一的解决办法就是升级软件或者打补丁了。下面我从几个例子给大家分析: 例一:打开IE浏览器或者没过几分钟就会出现”0×70dcf39f”指令引用的”0×00000000〃内存。该内存不能为“read”。要终止程序,请单击“确定”的信息框,单击“确定”后,又出现“发生内部错误,您正在使用的其中一个窗口即将关闭”的信息框,关闭该提示信息后,IE浏览器也被关闭。 解决方法:修复或升级IE浏览器,同时打上补丁。看过其中一个修复方法是,Win2000自升级,也就是Win2000升级到Win2000,其实这种方法也就是把系统还原到系统初始的状态下。比如你的IE升级到了6.0,自升级后,会被IE5.0代替。 例二:在windows xp下双击光盘里面的“AutoRun.exe”文件,显示“0×77f745cc”指令引用的“0×00000078”内存。该内存不能为 “written”,要终止程序,请单击“确定”,而在Windows 98里运行却正常。解决方法:这可能是系统的兼容性问题,winXP的系统,右键“AutoRun.exe”文件,属性,兼容性,把“用兼容模式运行这个程序”项选择上,并选择“Windows 98/Me”。win2000如果打了SP的补丁后,只要开始,运行,输入:regsvr32 c:\winnt\apppatch\slayerui.dll。右键,属性,也会出现兼容性的选项。 例三:RealOne Gold关闭时出现错误,以前一直使用正常,最近却在每次关闭时出现“0xffffffff”指令引用的“0xffffffff”内存。该内存不能为 “read” 的提示。解决方法:当使用的输入法为微软拼音输入法2003,并且隐藏语言栏时(不隐藏时没问题)关闭RealOne就会出现这个问题,因此在关闭RealOne 之前可以显示语言栏或者将任意其他输入法作为当前输入法来解决这个问题。 例四:我的豪杰超级解霸自从上网后就不能播放了,每次都提示“0×060692f6”(每次变化)指令引用的“0xff000011”内存不能为“read”,终止程序请按确定。 解决方法:试试重装豪杰超级解霸,如果重装后还会,到官方网站下载相应版本的补丁试试。还不行,只好换就用别的播放器试试了。 例五:双击一个游戏的快捷方式,“0×77f5cd0”指令引用“0xffffffff”内 存,该内存不能为“read” ,并且提示Client.dat程序错误。 解决方法:重装显卡的最新驱动程序,然后下载并且安装DirectX9.0。 例六:一个朋友发信息过来,我的电脑便出现了错误信息:“0×772b548f”指令引用的“0×00303033”内存,该内存不能为“written”,然后QQ自动下线,而再打开QQ,发现了他发过来的十几条的信息。 解决方法:这是对方利用QQ的BUG,发送特殊的代码,做QQ出错,只要打上补丁或升级到最新版本,就没事了。
