/定义全局变量*/ /宏定义**/ #ifndef _MAIN_H int color(int c); void gotoxy(int x, int y) } } for(i=tetris->y-2; iy+2;i++) 一个简单的表格是这么创建的: 使用 SmartyPants将ASCII标点字符转换为“智能”印刷标点HTML实体。例如: 一个具有注脚的文本。1 Markdown将文本转换为 HTML。 您可以使用渲染LaTeX数学表达式 KaTeX: Gamma公式展示 你可以找到更多关于的信息 LaTeX 数学表达式here. 可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图: 这将产生一个流程图。: 我们依旧会支持flowchart的流程图: 如果你想尝试使用此编辑器, 你可以在此篇文章任意编辑。当你完成了一篇文章的写作, 在上方工具栏找到 文章导出 ,生成一个.md文件或者.html文件进行本地保存。 如果你想加载一篇你写过的.md文件,在上方工具栏可以选择导入功能进行对应扩展名的文件导入, 注脚的解释 ↩︎
int i,j,Temp,Temp1,Temp2; //temp,temp1,temp2用于记住和转换方块变量的值
//标记游戏屏幕的图案:2,1,0分别表示该位置为游戏边框、方块、无图案;初始化为无图案
int a[80][80]={0};
int b4; //标记4个“口 ”方块,1表示有方块,0表示无方块
struct Tetris //声明俄罗斯方块的结构体
{
int x; //中心方块的 x轴坐标
int y; //中心方块的 y轴坐标
int flag; //标记方块类型的序号
int next; //下一个俄罗斯方块类型的序号
int speed; //方块的移动速度
int number; //产生俄罗斯方块的个数
int score; //游戏的分数
int level; //游戏的等级
};
HANDLE hOut; //控制台句柄
#define FrameX 13 //游戏窗口左上角的X轴坐标为 13
#define FrameY 3 //游戏窗口左上角的Y轴坐标为 3
#define Frame_height 20 //游戏窗口的高度为20
#define Frame_width 18 //游戏窗口的宽度为18
#define _MAIN_H
void gotoxy(int x, int y); //光标移动到指定位置
void DrwaGameFrame(); //绘制游戏边框
void Flag(struct Tetris * tetris); //随机产生方块类型的序号
void MakeTetris(struct Tetris * tetris); //制作俄罗斯方块
void PrintTetris(struct Tetris * tetris); //打印俄罗斯方块
void CleanTetris(struct Tetris *tetris); //清除俄罗斯方块的痕迹
int ifMove(struct Tetris * tetris); //判断是否可以移动,返回值为 1 时可以移动,否则不能移动
void Del_Fullline(struct Tetris * tetris); //判断是否满行,并删除满行的俄罗斯方块
void Gameplay(); //开始游戏
void regulation(); //游戏规则
void explation(); //按键说明
void welcome(); //欢迎界面
void Replay(); //重新开始游戏
void title(); //欢迎界面上方的标题
void flower(); //欢迎界面上的字符画装饰
void close(); //关闭游戏
#endif
int main(void)
{
title();
flower();
welcome();
return 0;
}
{
COORD pos={0.0};
pos.X = x; //横坐标
pos.Y= y; //纵坐标
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);
}
int color(int c)
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),c); //更改文字颜色
return 0;
}
void title()
{
color(15);
gotoxy(24,3); //亮白色
printf(“趣 味 俄 罗 斯 方 块n”); //输出标题
color(11); //亮蓝色
gotoxy(18,5);
printf(“■”);
gotoxy(18,6);
printf(“■■”);
gotoxy(18,7);
printf(“■”);color(14); //黄色 gotoxy(26,6); printf("■■"); gotoxy(28,7); printf("■■"); color(10); //绿色 gotoxy(36,6); printf("■■"); gotoxy(36,7); printf("■■"); color(13); //粉色 gotoxy(45,5); printf("■"); gotoxy(45,6); printf("■"); gotoxy(45,7); printf("■"); gotoxy(45,8); printf("■"); color(12); //亮红色 gotoxy(56,6); printf("■"); gotoxy(52,7); printf("■■■");
void flower()
{
gotoxy(66,11);
color(12);
printf(“(_)”);gotoxy(64,12); printf("(_)"); gotoxy(68,12); printf("(_)"); gotoxy(66,13); printf("(_)"); gotoxy(67,12); color(6); printf("@"); gotoxy(72,10); color(13); printf("(_)"); gotoxy(76,10); printf("(_)"); gotoxy(74,9); printf("(_)"); gotoxy(74,11); printf("(_)"); gotoxy(75,10); color(6); printf("@"); gotoxy(71,12); printf("|"); gotoxy(72,11); printf("/"); gotoxy(70,13); printf("\|"); gotoxy(70,14); printf("`|/"); gotoxy(70,15); printf("\|"); gotoxy(71,16); printf("| /"); gotoxy(71,17); printf("|"); gotoxy(67,17); color(10); printf("\\\\"); gotoxy(73,17); printf("//"); gotoxy(67,18); color(2); printf("^^^^^^^^"); gotoxy(65,19); color(5); printf("明 日 科 技"); gotoxy(68,20); printf("朱小磊");
void welcome()
{
int n;
int i,j;
for(i=9; i<=20; i++){
for(j=15; j<=60; j++){
gotoxy(j,i);
if(i == 9 || i == 20)
printf(“=”);
else if(j == 15 || j == 59)
printf(“||”);
}
}
color(12);
gotoxy(25,12);
printf(“1.开始游戏”);
gotoxy(40,12);
printf(“2.按键说明”);
gotoxy(25,17);
printf(“3.游戏规则”);
gotoxy(40,17);
printf(“4.退出”);
gotoxy(21,22);
color(3);
printf(“请选择[1 2 3 4]:[ ]bb”);
color(14);
scanf(“%d”, &n);
switch(n)
{
case 1:
system(“cls”);
DrwaGameFrame();
Gameplay();
break;
case 2:
explation();
break;
case 3:
regulation();
break;
case 4:
close();
break;
}
}
//制作游戏窗口
void DrwaGameFrame()
{
gotoxy(FrameX+Frame_width-7,FrameY-2);
color(11);
printf(“趣味俄罗斯方块”);
gotoxy(FrameX+2Frame_width+3,FrameY+7);
color(2);
printf(““);
gotoxy(FrameX+2Frame_width+13,FrameY+7);
color(13);
printf(“下一块方块”);
gotoxy(FrameX+2Frame_width+3,FrameY+13);
color(2);
printf(““);
gotoxy(FrameX+2Frame_width+3,FrameY+17);
color(14);
printf(“上箭头:旋转”);
gotoxy(FrameX+2Frame_width+3,FrameY+19);
printf(“空格:暂停游戏”);
gotoxy(FrameX+2Frame_width+3,FrameY+15);
printf(“Esc;退出游戏”);
gotoxy(FrameX,FrameY);
color(12);
printf(“『”);
gotoxy(FrameX+2Frame_width-2,FrameY);
printf(“﹃”);
gotoxy(FrameX,FrameY+Frame_height);
printf(“﹄”);
gotoxy(FrameX+2Frame_width-2,FrameY+Frame_height);
printf(“』”);
a[FrameX][FrameY+Frame_height]=2;
a[FrameX+2Frame_width-2][FrameY+Frame_height]=2;
for(i=2;i<2Frame_width-2;i+=2){
gotoxy(FrameX+i,FrameY);
printf(““);
}
for(i=2;i<2*Frame_width;i+=2){
gotoxy(FrameX+i,FrameY+Frame_height);
printf(““);
a[FrameX+i][FrameY+Frame_height]=2; //标记下横框为游戏边框,防止方块出界;
}
for(i=1;i<Frame_height;i++){
gotoxy(FrameX,FrameY+i);
printf(“||”);
a[FrameX][FrameY+i]=2; //标记左竖框为游戏边框,防止方块出界
}
for(i=1;i<Frame_height;i++){
gotoxy(FrameX+2Frame_width-2,FrameY+i);
printf(“||”);
a[FrameX+2Frame_width-2][FrameY+i]=2; //标记右竖框为游戏边框,防止方块出界
}
}
void MakeTetris(struct Tetris tetris) //制作俄罗斯方块
{
a[tetris->x][tetris->y]=b[0]; //中心方块位置的图形状态
switch(tetris->flag)
{
case 1://田子方块
{
color(10);
a[tetris->x][tetris->y-1]=b1;
a[tetris->x+2][tetris->y-1]=b2;
a[tetris->x+2][tetris->y]=b3;
break;
}
case 2://直线方块
{
color(13);
a[tetris->x-2][tetris->y]=b1;
a[tetris->x+2][tetris->y]=b2;
a[tetris->x+4][tetris->y]=b3;
break;
}
case 3://直线方块
{
color(13);
a[tetris->x][tetris->y-1]=b1;
a[tetris->x][tetris->y-2]=b2;
a[tetris->x][tetris->y+1]=b3;
break;
}
case 4://梯字方块
{
color(11);
a[tetris->x-2][tetris->y]=b1;
a[tetris->x+2][tetris->y]=b2;
a[tetris->x][tetris->y+1]=b3;
break;
}
case 5://顺时针 90 T 字方块
{
color(11);
a[tetris->x][tetris->y-1]=b1;
a[tetris->x][tetris->y+1]=b2;
a[tetris->x-2][tetris->y]=b3;
break;
}
case 6://瞬时针 180 T 字方块
{
color(11);
a[tetris->x][tetris->y-1]=b1;
a[tetris->x-2][tetris->y]=b2;
a[tetris->x+2][tetris->y]=b3;
break;
}
case 7://顺时针旋转 270 T 字方块
{
color(11);
a[tetris->x][tetris->y-1]=b1;
a[tetris->x][tetris->y+1]=b2;
a[tetris->x+2][tetris->y]=b3;
break;
}
case 8:// Z 字方块
{
color(14);
a[tetris->x][tetris->y+1]=b1;
a[tetris->x-2][tetris->y]=b2;
a[tetris->x+2][tetris->y+1]=b3;
break;
}
case 9://顺时针 Z 字方块
{
color(14);
a[tetris->x][tetris->y-1]=b1;
a[tetris->x-2][tetris->y]=b2;
a[tetris->x-2][tetris->y+1]=b3;
break;
}
case 10://反 Z 字方块
{
color(14);
a[tetris->x][tetris->y-1]=b1;
a[tetris->x-2][tetris->y-1]=b2;
a[tetris->x+2][tetris->y]=b3;
break;
}
case 11://顺时针反 Z 字方块
{
color(14);
a[tetris->x][tetris->y+1]=b1;
a[tetris->x-2][tetris->y-1]=b2;
a[tetris->x-2][tetris->y]=b3;
break;
}
case 12:// 7 字方块
{
color(12);
a[tetris->x][tetris->y-1]=b1;
a[tetris->x][tetris->y+1]=b2;
a[tetris->x-2][tetris->y-1]=b3;
break;
}
case 13://顺时针 90 7 字方块
{
color(12);
a[tetris->x-2][tetris->y]=b1;
a[tetris->x+2][tetris->y-1]=b2;
a[tetris->x+2][tetris->y]=b3;
break;
}
case 14://顺时针 180 7 字 方块
{
color(12);
a[tetris->x][tetris->y-1]=b1;
a[tetris->x][tetris->y+1]=b2;
a[tetris->x+2][tetris->y+1]=b3;
break;
}
case 15://顺时针 270 7 字方块
{
color(12);
a[tetris->x-2][tetris->y]=b1;
a[tetris->x-2][tetris->y+1]=b2;
a[tetris->x+2][tetris->y]=b3;
break;
}
case 16://反 7 字方块
{
color(12);
a[tetris->x][tetris->y+1]=b1;
a[tetris->x][tetris->y-1]=b2;
a[tetris->x+2][tetris->y-1]=b3;
break;
}
case 17://顺时针 90 反 7 字方块
{
color(12);
a[tetris->x-2][tetris->y]=b1;
a[tetris->x+2][tetris->y+1]=b2;
a[tetris->x+2][tetris->y]=b3;
break;
}
case 18://顺时针 180 反 7字 方块
{
color(12);
a[tetris->x][tetris->y-1]=b1;
a[tetris->x][tetris->y+1]=b2;
a[tetris->x-2][tetris->y+1]=b3;
break;
}
case 19: //顺时针 270 反 7 字方块
{
color(12);
a[tetris->x-2][tetris->y]=b1;
a[tetris->x-2][tetris->y-1]=b2;
a[tetris->x+2][tetris->y]=b3;
}
}
}
void PrintTetris(struct Tetris tetris)//打印俄罗斯方块
{
for(i=0;i<4;i++){
b[i]=1;
}
MakeTetris(tetris);// 制作俄罗斯方块
for(i=tetris->x-2; i<=tetris->x+4; i+=2){
for(j=tetris->y-2; j<=tetris->y+1; j++){
if(a[i][j] == 1 && j>FrameY){
gotoxy(i,j);
printf(“■”);
}
}
}
//打印菜单信息
gotoxy(FrameX+2Frame_width+3,FrameY+1);
color(4);
printf(“level : “);
color(12);
printf(”%d”,tetris->level);
gotoxy(FrameX+2Frame_width+3,FrameY+3);
color(4);
printf(“score : “);
color(12);
printf(”%d”,tetris->score);
gotoxy(FrameX+2Frame_width+3,FrameY+5);
color(4);
printf(“speed : “);
color(12);
printf(”%dms”,tetris->speed);
}
int ifMove(struct Tetris tetris)
{
if(a[tetris->x][tetris->y] != 0)//当中心方块位置上有图案时,返回值为 0,不可移动
{
return 0;
}else
{
if(
(tetris->flag==1 && ( a[tetris->x][tetris->y-1]==0 &&
a[tetris->x+2][tetris->y-1]==0 && a[tetris->x+2][tetris->y]0)) ||
(tetris->flag2 && ( a[tetris->x-2][tetris->y]==0 &&
a[tetris->x+2][tetris->y]==0 && a[tetris->x+4][tetris->y]0)) ||
(tetris->flag3 && ( a[tetris->x][tetris->y-1]==0 &&
a[tetris->x][tetris->y-2]==0 && a[tetris->x][tetris->y+1]0)) ||
(tetris->flag4 && ( a[tetris->x-2][tetris->y]==0 &&
a[tetris->x+2][tetris->y]==0 && a[tetris->x][tetris->y+1]0)) ||
(tetris->flag5 && ( a[tetris->x][tetris->y-1]==0 &&
a[tetris->x][tetris->y+1]==0 && a[tetris->x-2][tetris->y]0)) ||
(tetris->flag6 && ( a[tetris->x][tetris->y-1]==0 &&
a[tetris->x-2][tetris->y]==0 && a[tetris->x+2][tetris->y]0)) ||
(tetris->flag7 && ( a[tetris->x][tetris->y-1]==0 &&
a[tetris->x][tetris->y+1]==0 && a[tetris->x][tetris->y-1]0)) ||
(tetris->flag8 && ( a[tetris->x][tetris->y+1]==0 &&
a[tetris->x-2][tetris->y]==0 && a[tetris->x+2][tetris->y+1]0)) ||
(tetris->flag9 && ( a[tetris->x][tetris->y-1]==0 &&
a[tetris->x-2][tetris->y]==0 && a[tetris->x-2][tetris->y+1]0)) ||
(tetris->flag10 && ( a[tetris->x][tetris->y-1]==0 &&
a[tetris->x-2][tetris->y-1]==0 && a[tetris->x+2][tetris->y]0)) ||
(tetris->flag11 && ( a[tetris->x][tetris->y+1]==0 &&
a[tetris->x-2][tetris->y-1]==0 && a[tetris->x-2][tetris->y]0)) ||
(tetris->flag12 && ( a[tetris->x][tetris->y-1]==0 &&
a[tetris->x][tetris->y+1]==0 && a[tetris->x-2][tetris->y-1]0)) ||
(tetris->flag15 && ( a[tetris->x-2][tetris->y]==0 &&
a[tetris->x-2][tetris->y+1]==0 && a[tetris->x+2][tetris->y]0)) ||
(tetris->flag14 && ( a[tetris->x][tetris->y-1]==0 &&
a[tetris->x][tetris->y+1]==0 && a[tetris->x+2][tetris->y+1]0)) ||
(tetris->flag13 && ( a[tetris->x-2][tetris->y]==0 &&
a[tetris->x+2][tetris->y-1]==0 && a[tetris->x+2][tetris->y]0)) ||
(tetris->flag16 && ( a[tetris->x][tetris->y+1]==0 &&
a[tetris->x][tetris->y-1]==0 && a[tetris->x+2][tetris->y-1]0)) ||
(tetris->flag19 && ( a[tetris->x-2][tetris->y]==0 &&
a[tetris->x-2][tetris->y-1]==0 && a[tetris->x+2][tetris->y]0)) ||
(tetris->flag18 && ( a[tetris->x][tetris->y-1]==0 &&
a[tetris->x][tetris->y+1]==0 && a[tetris->x-2][tetris->y+1]0)) ||
(tetris->flag17 && ( a[tetris->x-2][tetris->y]==0 &&
a[tetris->x+2][tetris->y+1]==0 && a[tetris->x+2][tetris->y]==0)))
{
return 1;
}
}
return 0;
}
void CleanTetris(struct Tetris tetris)//擦除俄罗斯方块
{
for(i=0; i<4; i++)
{
b[i]=0;
}
MakeTetris(tetris);
for(i=tetris->x-2;i<=tetris->x+4;i+=2){
for(j=tetris->y-2; j<= tetris->y+1; j++){
if(a[i][j] == 0 && j > FrameY){
gotoxy(i,j);
printf(” “);
}
}
}
}
void Del_Fullline(struct Tetris tetris)//当每行有Frame_width-2个方块时,则满行消除
{
int k,del_rows=0; //分别用来记录某行方块的个数和删除方块的行数的变量
for(j=FrameY+Frame_height-1; j>=FrameY+1; j–){
k=0;
for(i=FrameX+2; i<FrameX+2Frame_width-2; i+=2){
if(a[i][j] == 1)
{
k++; //记录此行方块的个数
if(k == Frame_width-2){
for(k=FrameX+2;k<FrameX+2Frame_width-2; k+=2){
a[k][j]=0;
gotoxy(k,j);
printf(” “);
}
for(k=j-1; k>FrameY; k–){
for(i=FrameX+2; i<FrameX+2Frame_width-2; i+=2){
if(a[i][k] ==1)
{
a[i][k]=0;
gotoxy(i,k);
printf(” “);
a[i][k+1]=1;
gotoxy(i,k+1);
printf(“■”);
}
}
}
j++; //方块下移后判断删除行是否满行;
del_rows++; //记录删除方块的行数
}
}
}
}
tetris->score+=100del_rows;
if(del_rows>0 && ( tetris->score%1000 == 0 || tetris->score/1000 > tetris->level-1)){
tetris->speed -= 20;
tetris->level++;
}
}
void Flag(struct Tetris *tetris) //随机产生俄罗斯方块的类型序号
{
tetris->number++;
srand(time(NULL)); //初始化随机数
if(tetris->number == 1)
{
tetris->flag = rand()%19+1;
}
tetris->next = rand()%19+1;
}
void Gameplay()
{
int n;
struct Tetris t, tetris=&t; //定义结构指针并指向结构体变量
char ch; //接受键盘输入的变量
tetris->number = 0; //初始化俄罗斯方块为0个
tetris->speed = 300;
tetris->score = 0;
tetris->level = 1;
while(1) //循环产生方块,直至游戏结束
{
Flag(tetris); //得到产生俄罗斯方块类型的序号
Temp = tetris->flag; //记住当前俄罗斯方块序号
tetris->x = FrameX+2Frame_width+6; //获得预览界面方块的 X 坐标
tetris->y = FrameY+10; //获得预览界面方块的 Y 坐标
tetris->flag = tetris->next;
PrintTetris(tetris); //获得下一个俄罗斯方块的序号
tetris->x = FrameX+Frame_width; //获得游戏窗口中心方块 X 坐标
tetris->y = FrameY-1; //获得游戏窗口中心方块 Y 坐标
tetris->flag = Temp;
while(1)
{
label:PrintTetris(tetris); //调用打印俄罗斯方块的函数
Sleep(tetris->speed);
CleanTetris(tetris);
Temp1=tetris->x;
Temp2=tetris->flag;
if(kbhit())
{
ch=getch();
if(ch75)
{
tetris->x-=2;
}
if(ch77)
{
tetris->x+=2;
}
if(ch==80)
{
if(ifMove(tetris) != 0)
{
tetris->y+=2;
}
if(ifMove(tetris)0)
{
tetris->y=FrameY+Frame_height-2;
}
}
if(ch72)
{
if(tetris->flag>=2 && tetris->flag <=3)
{
tetris->flag++;
tetris->flag%=2;
tetris->flag+=2;
}
if(tetris->flag>=4 && tetris->flag <= 7)
{
tetris->flag++;
tetris->flag%=4;
tetris->flag+=4;
}
if(tetris->flag>=8 && tetris->flag <= 11)
{
tetris->flag++;
tetris->flag%=4;
tetris->flag+=8;
}
if(tetris->flag>=12 && tetris->flag <= 15)
{
tetris->flag++;
tetris->flag%=4;
tetris->flag+=12;
}
if(tetris->flag>=16 && tetris->flag <= 19)
{
tetris->flag++;
tetris->flag%=4;
tetris->flag+=16;
} } if(ch==32) { PrintTetris(tetris); while(1) { if(kbhit()) { ch = getch(); if(ch == 32) { goto label; } } } } if(ch == 27) { system("cls"); memset(a,0,6400*sizeof(int)); welcome(); } if(ifMove(tetris)==0) { tetris->x = Temp1; tetris->flag = Temp2; } else { goto label; } } tetris->y++; if(ifMove(tetris)==0) { tetris->y--; PrintTetris(tetris); Del_Fullline(tetris); break; } }
{
if(iFrameY)
{
system(“cls”);
gotoxy(29,7);
printf(” n”);
color(12);
printf(“ttt■■■■ ■ ■ ■■ n”);
printf(“ttt■ ■■ ■ ■ ■ n”);
printf(“ttt■■■ ■ ■ ■ ■ ■ n”);
printf(“ttt■ ■ ■■ ■ ■ n”);
printf(“ttt■■■■ ■ ■ ■■ n”);
gotoxy(17,18);
color(14);
printf(“我要重新玩一局——— 1 “);
gotoxy(44,18);
printf(“不玩了,退出游戏——- 2 “);
int n;
gotoxy(32,20);
printf(“选择[1/2]”);
color(11);
scanf(”%d,&n”);
switch(n)
{
case 1:
system(“cls”);
Replay(tetris);
break;
case 2:
close();
break;
}
}
}
tetris->flag = tetris->next;
tetris->x = FrameX+2Frame_width+6;
tetris->y = FrameY+10;
CleanTetris(tetris);
}
}
void Replay()
{
system(“cls”);
memset(a,0,6400sizeof(int));
DrwaGameFrame();
Gameplay();
}
void explation()
{
int i,j = 1;
system(“cls”);
color(13);
gotoxy(32,3);
printf(“按键说明”);
color(2);
for(i=6; i<=16; i++)
{
for(j=15; j<=60; j++)
{
gotoxy(j,i);
if(i6 || i == 16)
printf(“=”);
else if(j15 || j == 59)
printf(“||”);
}
}
color(13);
gotoxy(18,7);
printf(“tip1: 玩家可以通过 左右 方向键来移动方块”);
color(10);
gotoxy(18,9);
printf(“tip2: 通过 上 方向键使得方块旋转”);
gotoxy(18,11);
printf(“tip3: 通过 下 方向键使得方块加速”);
gotoxy(18,13);
printf(“tip4: 通过空格键暂停游戏,再按空格键继续”);
gotoxy(18,15);
printf(“tip5: 按ESC退出游戏”);
getch(); //按任意键返回
system(“cls”);
main();
}
void regulation()
{
int i,j = 1;
system(“cls”);
color(13);
gotoxy(34,3);
printf(“游戏规则”);
color(2);
for(i=6;i<=18;i++)
{
for(j=12; j<=70; j++){
gotoxy(j,i);
if(i6 || i == 18)
printf(“=”);
else if(j==12 || j ==69)
printf(“||”);
}
}
color(12);
gotoxy(16,7);
printf(“tip1: 不同形状的小方块从屏幕上方落下,玩家通过调整”);
gotoxy(22,9);
printf(“方块的位置和方向,使得他们在屏幕底部拼出完整的”);
gotoxy(22,11);
printf(“一行或者几行”);
color(14);
gotoxy(16,13);
printf(“tip2: 每消除一行, 积分增加 100 分”);
color(11);
gotoxy(16,15);
printf(“tip3: 每累计1000分,会提升一个等级”);
color(10);
gotoxy(16,17);
printf(“tip4: 提升等级会使得方块下落速度加快, 游戏难度加大”);
getch();
system(“cls”);
welcome();
}
void close()
{
exit(0);
} # 欢迎使用Markdown编辑器 你好! 这是你第一次使用 **Markdown编辑器** 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。 ## 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 1. **全新的界面设计** ,将会带来全新的写作体验; 2. 在创作中心设置你喜爱的代码高亮样式,Markdown **将代码片显示选择的高亮样式** 进行展示; 3. 增加了 **图片拖拽** 功能,你可以将本地的图片直接拖拽到编辑区域直接展示; 4. 全新的 **KaTeX数学公式** 语法; 5. 增加了支持**甘特图的mermaid语法[^1]** 功能; 6. 增加了 **多屏幕编辑** Markdown文章功能; 7. 增加了 **焦点写作模式、预览模式、简洁写作模式、左右区域同步滚轮设置** 等功能,功能按钮位于编辑区域与预览区域中间; 8. 增加了 **检查列表** 功能。 [^1]: [mermaid语法说明](https://mermaidjs.github.io/) ## 功能快捷键 撤销:<kbd>Ctrl/Command</kbd> + <kbd>Z</kbd> 重做:<kbd>Ctrl/Command</kbd> + <kbd>Y</kbd> 加粗:<kbd>Ctrl/Command</kbd> + <kbd>B</kbd> 斜体:<kbd>Ctrl/Command</kbd> + <kbd>I</kbd> 标题:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>H</kbd> 无序列表:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>U</kbd> 有序列表:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>O</kbd> 检查列表:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>C</kbd> 插入代码:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>K</kbd> 插入链接:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>L</kbd> 插入图片:<kbd>Ctrl/Command</kbd> + <kbd>Shift</kbd> + <kbd>G</kbd> 查找:<kbd>Ctrl/Command</kbd> + <kbd>F</kbd> 替换:<kbd>Ctrl/Command</kbd> + <kbd>G</kbd> ## 合理的创建标题,有助于目录的生成 直接输入1次<kbd>#</kbd>,并按下<kbd>space</kbd>后,将生成1级标题。 输入2次<kbd>#</kbd>,并按下<kbd>space</kbd>后,将生成2级标题。 以此类推,我们支持6级标题。有助于使用`TOC`语法后生成一个完美的目录。 ## 如何改变文本的样式 *强调文本* _强调文本_ **加粗文本** __加粗文本__ ==标记文本== ~~删除文本~~ > 引用文本 H~2~O is是液体。 2^10^ 运算结果是 1024. ## 插入链接与图片 链接: [link](https://www.csdn.net/). 图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw) 带尺寸的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw =30x30) 居中的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center) 居中并且带尺寸的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center =30x30) 当然,我们为了让用户更加便捷,我们增加了图片拖拽功能。 ## 如何插入一段漂亮的代码片 去[博客设置](https://mp.csdn.net/console/configBlog)页面,选择一款你喜欢的代码片高亮样式,下面展示同样高亮的 `代码片`. ```javascript // An highlighted block var foo = 'bar';
生成一个适合你的列表
创建一个表格
项目
Value
电脑
$1600
手机
$12
导管
$1
设定内容居中、居左、居右
:---------:
居中
使用:----------
居左
使用----------:
居右
第一列
第二列
第三列
第一列文本居中
第二列文本居右
第三列文本居左
SmartyPants
TYPE
ASCII
HTML
Single backticks
'Isn't this fun?'
‘Isn’t this fun?’
Quotes
"Isn't this fun?"
“Isn’t this fun?”
Dashes
-- is en-dash, --- is em-dash
– is en-dash, — is em-dash
创建一个自定义列表
如何创建一个注脚
注释也是必不可少的
KaTeX数学公式
Γ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ(z)=∫0∞tz−1e−tdt.新的甘特图功能,丰富你的文章
UML 图表
FLowchart流程图
导出与导入
导出
导入
继续你的创作。
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算