没有合适的资源?快使用搜索试试~ 我知道了~
俄罗斯方块C++控制台源代码.pdf
5星 · 超过95%的资源 需积分: 23 6 下载量 133 浏览量
2020-02-05
21:44:51
上传
评论
收藏 48KB PDF 举报
温馨提示
使用C++语言完整实现俄罗斯方块游戏,代码完整 main函数如下 int main() { csl.Open(); // 设置标题 csl.SetTitle( "俄罗斯方块 alpha" ); d:\cpp_code\方块\方块\方块.cpp 7 // 去处光标 csl.RemoveCursor(); // 设置窗体尺寸 csl.SetWindowRect( 38-1, 21-1 ); // 设置缓冲尺寸 csl.SetBufSize( 38, 21 ); // 输出背景字符 csl.OutputStringNoMove( 0,0,bg ); // 设置随机种子 srand( time(0) ); next = rand()%7; DrawNext(); { for( char c = (char)_getch(); c!='B'&&c!='b'; c=(char)_getch() ) // 开始 Begin { if( c=='V' || c=='v' ) // 铃声 Vocie { if( voice ) { voice = false; csl.OutputStringNoMove( 35, 3, "No " ); } else { voice = true; csl.OutputStringNoMove( 35, 3, "Yes" ); } } } } x=4, y=-2, c=next, z=0; next = rand()%7; DrawNext(); MessageDeal(); return 0; }
资源推荐
资源详情
资源评论
1 d:\cpp_code\方块\方块\方块.cpp
// 方块.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>
class Console
{
public:
Console()
{
hStdOutput = INVALID_HANDLE_VALUE;
hStdError = INVALID_HANDLE_VALUE;
}
bool Open( void )
{
hStdOutput = GetStdHandle( STD_OUTPUT_HANDLE );
hStdError = GetStdHandle( STD_ERROR_HANDLE );
return INVALID_HANDLE_VALUE!=hStdOutput && INVALID_HANDLE_VALUE!=hStdError;
}
inline bool SetTitle( char* title ) // 设置标题
{
return TRUE==SetConsoleTitle(title);
}
bool RemoveCursor( void ) // 去处光标
{
CONSOLE_CURSOR_INFO cci;
if( !GetConsoleCursorInfo( hStdOutput, &cci ) ) return false;
cci.bVisible = false;
if( !SetConsoleCursorInfo( hStdOutput, &cci ) ) return false;
if( !GetConsoleCursorInfo( hStdError, &cci ) ) return false;
cci.bVisible = false;
if( !SetConsoleCursorInfo( hStdError, &cci ) ) return false;
return true;
}
bool SetWindowRect( short x, short y ) // 设置窗体尺寸
{
SMALL_RECT wrt = { 0, 0, x, y };
if( !SetConsoleWindowInfo( hStdOutput, TRUE, &wrt ) ) return false;
if( !SetConsoleWindowInfo( hStdError, TRUE, &wrt ) ) return false;
return true;
}
bool SetBufSize( short x, short y ) // 设置缓冲尺寸
{
COORD coord = { x, y };
if( !SetConsoleScreenBufferSize( hStdOutput, coord ) ) return false;
if( !SetConsoleScreenBufferSize( hStdError, coord ) ) return false;
return true;
}
bool GotoXY( short x, short y ) // 移动光标
{
COORD coord = { x, y };
if( !SetConsoleCursorPosition( hStdOutput, coord ) ) return false;
if( !SetConsoleCursorPosition( hStdError, coord ) ) return false;
return true;
}
bool SetColor( WORD color ) // 设置前景色/背景色
{
if( !SetConsoleTextAttribute( hStdOutput, color ) ) return false;
if( !SetConsoleTextAttribute( hStdError, color ) ) return false;
return true;
}
bool OutputString( const char* pstr, size_t len=0 ) // 输出字符串
{
DWORD n = 0;
return TRUE==WriteConsole( hStdOutput, pstr, len?len:strlen(pstr), &n, NULL );
}
2 d:\cpp_code\方块\方块\方块.cpp
bool OutputStringNoMove( short x, short y, const char* pstr, size_t len=0 ) // 输出字符串
{
COORD coord = { x, y };
DWORD n = 0;
return TRUE==WriteConsoleOutputCharacter( hStdOutput, pstr, len?len:strlen(pstr), coord, &n );
}
private:
HANDLE hStdOutput;
HANDLE hStdError;
};
const char bg[] =
"┏━━━━━━━━━━━┓ "
"┃■■■■■■■■■■■┃ ←↓→↑ "
"┃■■■■■■■■■■■┃ Begin: F8 "
"┃■■■■■■■■■■■┃ Voice = Yes"
"┃■■■■■■■■■■■┃ Sleep "
"┃■■■■■■■■■■■┃ Quit "
"┃■■■■■■■■■■■┃ "
"┃■■■■■■■■■■■┃ "
"┃■■■■■■■■■■■┃ NEXT "
"┃■■■■■■■■■■■┃┏━━━━┓"
"┃■■■■■■■■■■■┃┃ ┃"
"┃■■■■■■■■■■■┃┃ ┃"
"┃■■■■■■■■■■■┃┗━━━━┛"
"┃■■■■■■■■■■■┃ LEVEL "
"┃■■■■■■■■■■■┃┏━━━━┓"
"┃■■■■■■■■■■■┃┃ 0┃"
"┃■■■■■■■■■■■┃┗━━━━┛"
"┃■■■■■■■■■■■┃ SCORE "
"┃■■■■■■■■■■■┃┏━━━━┓"
"┃■■■■■■■■■■■┃┃ 00000┃"
"┗━━━━━━━━━━━┛┗━━━━┛";
const char bk[7][4][4][4] =
{
{
{ { 0,1,1,0 },{ 1,1,0,0 },{ 0,0,0,0 },{ 0,0,0,0 } },
{ { 1,0,0,0 },{ 1,1,0,0 },{ 0,1,0,0 },{ 0,0,0,0 } },
{ { 0,1,1,0 },{ 1,1,0,0 },{ 0,0,0,0 },{ 0,0,0,0 } },
{ { 1,0,0,0 },{ 1,1,0,0 },{ 0,1,0,0 },{ 0,0,0,0 } }
}
,
{
{ { 1,1,0,0 },{ 0,1,1,0 },{ 0,0,0,0 },{ 0,0,0,0 } },
{ { 0,1,0,0 },{ 1,1,0,0 },{ 1,0,0,0 },{ 0,0,0,0 } },
{ { 1,1,0,0 },{ 0,1,1,0 },{ 0,0,0,0 },{ 0,0,0,0 } },
{ { 0,1,0,0 },{ 1,1,0,0 },{ 1,0,0,0 },{ 0,0,0,0 } }
}
,
{
{ { 1,1,1,0 },{ 1,0,0,0 },{ 0,0,0,0 },{ 0,0,0,0 } },
{ { 1,0,0,0 },{ 1,0,0,0 },{ 1,1,0,0 },{ 0,0,0,0 } },
{ { 0,0,1,0 },{ 1,1,1,0 },{ 0,0,0,0 },{ 0,0,0,0 } },
{ { 1,1,0,0 },{ 0,1,0,0 },{ 0,1,0,0 },{ 0,0,0,0 } }
}
,
{
{ { 1,1,1,0 },{ 0,0,1,0 },{ 0,0,0,0 },{ 0,0,0,0 } },
{ { 1,1,0,0 },{ 1,0,0,0 },{ 1,0,0,0 },{ 0,0,0,0 } },
{ { 1,0,0,0 },{ 1,1,1,0 },{ 0,0,0,0 },{ 0,0,0,0 } },
{ { 0,1,0,0 },{ 0,1,0,0 },{ 1,1,0,0 },{ 0,0,0,0 } }
}
,
{
{ { 1,1,0,0 },{ 1,1,0,0 },{ 0,0,0,0 },{ 0,0,0,0 } },
{ { 1,1,0,0 },{ 1,1,0,0 },{ 0,0,0,0 },{ 0,0,0,0 } },
{ { 1,1,0,0 },{ 1,1,0,0 },{ 0,0,0,0 },{ 0,0,0,0 } },
{ { 1,1,0,0 },{ 1,1,0,0 },{ 0,0,0,0 },{ 0,0,0,0 } }
}
剩余6页未读,继续阅读
资源评论
- 彥爷2023-07-28这个PDF文件介绍了俄罗斯方块C的控制台源代码,对于对于喜欢编程的人来说可以作为学习的参考资料。
- 蒋寻2023-07-28该文件详细介绍了俄罗斯方块C的控制台源代码,对于想要学习该游戏开发的人来说非常有帮助。
- 伯特兰·罗卜2023-07-28能够在这个文件中找到俄罗斯方块C的控制台源代码,对于喜欢研究游戏开发的人来说是一个不错的资源。
- 白小俗2023-07-28该文件提供了俄罗斯方块C的控制台源代码,对于培养编程思维和逻辑能力有着很好的帮助。
- 文润观书2023-07-28这个PDF文件提供了俄罗斯方块C的控制台源代码,适合喜欢挑战自己的程序员朋友们尝试一下。
度心哈
- 粉丝: 0
- 资源: 1
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功