俄罗斯方块-C语言-完整代码

article/2025/9/25 1:30:37

效果图如下
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

#ifndef _DAY7_H
#define _DAY7_H
#include<windows.h>
#include<time.h>
#include<stdbool.h>
#include<conio.h>//控制台输入输出函数getch通过键盘进行的操作
//游戏区域位置设计
#define COL_BEGIN 2
#define COL_END 14
#define ROW_BEGIN 4
#define ROW_END 26HANDLE Output;//控制台输出句柄//存储游戏相关数据的结构体
typedef struct TetrisManager//俄罗斯管理
{unsigned int pool[28];//游戏池int x;//当前方块的x坐标,左上角坐标int y;//int type[3];//当前,下一个,下下一个方块的类型int orientation[3];//当前,下一个,下下一个方块的旋转状态//左边栏unsigned score;//得分unsigned erasedTotal;//消行总数unsigned erasedCount[4];//消几行数unsigned tetrisTotal;//目前出现方块总数unsigned tetrisCount[7];//目前出现各种方块数bool dead;//挂
}Manager;//结构体别名//构造存储游戏控制相关数据的结构体
typedef struct  TetrisControl
{bool pause;//暂停bool clockwise;//旋转方向;顺时针方向为tureint  direction;//移动方向:0向左移动 1向右移动//游戏池内每格的颜色//此版本是彩色的,仅用游戏池数据无法存储颜色int color[28][16];
}Control;//Control是结构体别名//初始状态的游戏池
//每个元素表示游戏池的一行
//两端各置两个1,底部两行全部为1,便于进行碰撞
//这样一来游戏池的宽度为12列 共16列
//当某个元素为OXFFFF时,说明该行已经填满
//顶部4行用于给方块,不显示
//底部2行不显示,显示出来的游戏池高度为22行
static const unsigned int gs_uInitialTetrisPool[28]=
{0XC003,0XC003,0XC003,0XC003,0XC003,0XC003,0XC003,0XC003,0XC003,0XC003,0XC003,0XC003,0XC003,0XC003,0XC003,0XC003,0XC003,0XC003,0XC003,0XC003,0XC003,0XC003,0XC003,0XC003,0XC003,0XC003,0XFFFF,0XFFFF//C003 1100 0000 0000 0011};//7种方块的4种旋转状态(4位一行)
static const unsigned int TetrisTable[7][4]=
{{ 0x00f0, 0x2222,0x00f0,0x2222 },//I{ 0x0072, 0x0262,0x0270,0x0232 },//T{ 0x0223, 0x0074,0x0622,0x0170 },//L{ 0x0226, 0x0470,0x0322,0x0071 },//J{ 0x0063, 0x0264,0x0063,0x0264 },//Z{ 0x006c, 0x0462,0x006c,0x0462 },//S{ 0x0660, 0x0660,0x0660,0x0660 },//O
};//函数声明
void printPoolBorder();//显示游戏池边界
void gotoxyWithFullwidth(short x,short y);//全角显示鼠标定位函数
void printPrompting();//显示按键提示信息
void printScore(const Manager *manager);void intiGame(Manager* manager,Control*control);//初始化游戏
void startGame(Manager *manager,Control *control);
void printNextTetris(const Manager *manager);
void printTetrisPool(const Manager *manager,Control *control);//显示游戏池
void initTetris(Manager *manager);//初始化方块
void insertTetris(Manager *manager);//插入方块
bool checkCollision(const Manager *manager);//检测碰撞
void setPoolColor(const Manager *manager,Control *control);
void printCurrentTetris(const Manager *manager,const Control *control);
void removeTetris(Manager *manager);//移除当前方块
void moveDownTetris(Manager *manager, Control *control);//向下移动方块
void runGame(Manager *manager, Control *control);//运行游戏
void horzMoveTetris(Manager *manager, Control *control);//水平移动方块
void keydownControl(Manager *manager, Control *control,int key);//按键按下控制
void rotateTetris(Manager *manager, Control *control);//旋转方块
void dropDownTetris(Manager *manager, Control *control);//方块直接落地
bool ifPlayAgain();//是否重玩
bool checkErasing(Manager *manager, Control *control);//消行检测
#endif // _DAY7_H
#include <stdio.h>
#include <stdlib.h>
#include"day7.h"int main()
{Manager manager;Control control;intiGame(&manager,&control);//初始化游戏do{printPrompting();//按键提示信息printPoolBorder();//游戏池runGame(&manager,&control);if(ifPlayAgain()){SetConsoleTextAttribute(Output,0x07);system("cls") ;//清屏startGame(&manager,&control);//从新开始游戏}elsebreak;}while(1);intiGame(&manager,&control);//初始化游戏CloseHandle(Output);return 0;
}//初始化游戏
void intiGame(Manager* manager,Control*control)
{Output=GetStdHandle(STD_OUTPUT_HANDLE);//定义光标隐藏变量并初始化CONSOLE_CURSOR_INFO info;info.bVisible=FALSE;//FAlse为光标隐藏info.dwSize=1;//光标亮度为1-100//设置光标隐藏SetConsoleCursorInfo(Output,&info);//提取光标地址SetConsoleTitle("俄罗斯方块");//控制台句柄startGame(manager,control);//调用游戏
}//游戏池
void printPoolBorder()
{int y;SetConsoleTextAttribute(Output,0xf0);for(y=4;y<26;y++){//两条纵线gotoxyWithFullwidth(10,y-3);//鼠标定位printf("%2s"," ");gotoxyWithFullwidth(23,y-3);//鼠标定位printf("%2s"," ");}gotoxyWithFullwidth(10,y-3);//一条横线printf("%28s"," ");}
//显示全角定位
void gotoxyWithFullwidth(short x,short y)
{static COORD cd;cd.X= x*2;//移动1个坐标乘以2,改变2个像素点的  距离cd.Y=y;//移动光标到指定位置SetConsoleCursorPosition(Output,cd);//输出句柄}
//按键提示信息
void printPrompting()
{//设置文字颜色,高亮SetConsoleTextAttribute(Output,0x0b);//设置文字位置gotoxyWithFullwidth(26,10);printf("█控制:");gotoxyWithFullwidth(27,12);printf("□向左移动: ← A 4");gotoxyWithFullwidth(27,13);printf("□向右移动: → D 6");gotoxyWithFullwidth(27,14);printf("□向下移动: ↓ S 2");gotoxyWithFullwidth(27,15);printf("□顺时针转: ↑ W 8 ");gotoxyWithFullwidth(27,16);printf("□逆时针转: 0 ");gotoxyWithFullwidth(27,17);printf("□直接落地: 空格 ");gotoxyWithFullwidth(27,18);printf("□暂停游戏: 回车 ");gotoxyWithFullwidth(26,23);printf("▉By:briup");
}
//显示得分信息
void printScore(const Manager *manager)
{static const char *tetrisName="ITLJZSO";int i;//设置文字颜色 文字颜色 高亮红+绿=黄色SetConsoleTextAttribute(Output,0x0E);//得分gotoxyWithFullwidth(2,2);printf("█得分:%u",manager->score);//消行总数gotoxyWithFullwidth(1,6);printf("█消行总数:%u",manager->erasedTotal);//一次消1234行数纪录for(i=0;i<4;i++)
{gotoxyWithFullwidth(2,8+i);printf("□消%d:%u",i+1,manager->erasedCount[i]);}//目前出现的方块总数gotoxyWithFullwidth(1,15);printf("█方块总数:%u",manager->tetrisTotal);//目前出现的ITLJZSO类型的方块数纪录for(i=0;i<7;i++)
{gotoxyWithFullwidth(2,17+i);printf("□%c形:%u",tetrisName[i],manager->tetrisCount[i]);}}
//开始游戏
void startGame(Manager *manager,Control *control)
{/*主要是初始化相关游戏值*///初始化结构体内存空间memset(manager,0,sizeof(Manager));//初始化游戏池memcpy(manager->pool,gs_uInitialTetrisPool,sizeof(unsigned [28]) );//使用时间作为种子参数srand((unsigned)time(NULL));//初始化下一个方块manager->type[1]=rand()%7;manager->orientation[1]=rand()%4;manager->type[2]=rand()%7;manager->orientation[2]=rand()%3;memset(control,0,sizeof(Control));//初始化方块initTetris(manager);//给下一个方块setPoolColor(manager,control);//设置颜色
}
//显示下一个,下下一个
void printNextTetris(const Manager *manager)
{int i;unsigned int tetris;//存储下一个,下下一个类型//设置边框SetConsoleTextAttribute(Output,0X0f);//高亮白色gotoxyWithFullwidth(26,1);printf("┏━━━━━━━━━┓ ┏━━━━━━━━━┓");gotoxyWithFullwidth(26,2);printf("┃%8s ┃ ┃%8s ┃"," " ," ");gotoxyWithFullwidth(26,3);printf("┃%8s ┃ ┃%8s ┃"," " ," ");gotoxyWithFullwidth(26,4);printf("┃%8s ┃ ┃%8s ┃"," " ," ");gotoxyWithFullwidth(26,5);printf("┃%8s ┃ ┃%8s ┃"," " ," ");gotoxyWithFullwidth(26,6);printf("┗━━━━━━━━━┛ ┗━━━━━━━━━┛");//下一个方格用相应的颜色显示tetris=TetrisTable[manager->type[1]][manager->orientation[1]];SetConsoleTextAttribute(Output,manager->type[1]|8);//前景高亮for(i=0;i<16;i++){   //x初始位置是27 (i&3)0—15的值为 0123 0123 0123 0123//y初始位置是2 (i>>2)右移两位0—15的值为0000111122223333gotoxyWithFullwidth((i&3)+27,(i>>2)+2);if((tetris>>i)&1)printf("■");elseprintf("%2s","");}tetris=TetrisTable[manager->type[2]][manager->orientation[2]];SetConsoleTextAttribute(Output,8);for(i=0;i<16;i++){  //x初始位置是33 (i&3)0—15的值为 0123 0123 0123 0123//y初始位置是2  (i>>2)右移两位0—15的值为0000111122223333gotoxyWithFullwidth((i&3)+33,(i>>2)+2);if((tetris>>i)&1)printf("■");elseprintf("%2s","");}
}
#define gotoxyInPool(x,y)   gotoxyWithFullwidth(x+9,y-3)
//显示游戏池里的方块
void printTetrisPool(const Manager *manager,Control *control)
{int x,y;for(y=ROW_BEGIN;y<ROW_END;y++)//4,26{   gotoxyInPool(2,y);//2+9=11.游戏池中光标定位// gotoxyWithFullwidth(11,y-3);//定点到游戏池中的方格2 14for(x=COL_BEGIN;x<COL_END;x++){if((manager->pool[y]>>x) &1)//1100 0000 0000 0011 >>2//用相应的颜色,显示一个实心的方块{SetConsoleTextAttribute(Output,control->color[y][x]);//control->color[y][x] 是一个数//一个方块如0X00f0 只有0和1组成 若想有特定的颜色 就要扩展成4*4的数组//有1的地方 就赋值为特定的数 也就是特定的颜色//也就是说这xy坐标所确定的地方 不是1 而是一个特定的颜色数manager->type[0]|8设置高亮printf("■");}else{//没有方块,显示空白SetConsoleTextAttribute(Output,0);printf("%2s","");}}
}
}
//初始化方块
void initTetris(Manager *manager)
{unsigned int tetris;//16当前方块存放manager->type[0]=manager->type[1];//下一个方块置为当前manager->orientation[0]=manager->orientation[1];//下一个方块旋转状态置为当前manager->type[1]=manager->type[2];//下下一个方块manager->orientation[1]=manager->orientation[2];manager->type[2]=rand()%7;//随机生成manager->orientation[2]=rand()%4;//tetris=TetrisTable[manager->type[0]][manager->orientation[0]];//设置当前方块Y坐标,保证刚给出时只显示方块最下面一行 高位//这种方式使得玩家可以以很快的 速度将方块落在不显示出4行的位置if(tetris &0x000F)//俄罗斯方块最先显示最下面一行manager->y=0;elsemanager->y=(tetris &0x00FF)?1:2;manager->x=6;//设置当前方块x坐标// manager->y=4;//设置当前方块y坐标 实际出现游戏池内方块出现坐标6,1if(checkCollision(manager)) //检测碰撞manager->dead=true;//标记游戏结束elseinsertTetris(manager); //将当前方块加入游戏池manager->tetrisTotal++;//方块总数加起来manager->tetrisCount[manager->type[0]]++;//相应方块数printNextTetris(manager);//显示下一个和下下一个方块printScore(manager);//显示得分信息}
//插入方块
void insertTetris(Manager *manager)
{//插入当前方块unsigned int tetris;//16位tetris = TetrisTable[manager->type[0]][manager->orientation[0]];//(tetris >>0x0)&0x0f)当前方块每四位取出,<< manager->x 左移6位 再与0xc003或,最终移到游戏池中央manager->pool[manager->y+0]|=(((tetris >>0x0)&0x0f)<< manager->x);manager->pool[manager->y+1]|=(((tetris>>0x4)&0x0f)<<manager->x);manager->pool[manager->y+2]|=(((tetris >>0x8)&0x0f)<< manager->x);manager->pool[manager->y+3]|=(((tetris>>0xc)&0x0f)<<manager->x);
}
//设置游戏池中方块的颜色
void setPoolColor(const Manager *manager,Control *control)
{//只做设置颜色,不需要清除//当移动方块或给一个方块时候在调用int x,y,i;unsigned int tetris;tetris=TetrisTable[manager->type[0]][manager->orientation[0]];for(i=0;i<16;i++){y=(i>>2)+manager->y;//0000 1111 2222 3333x=(i &3)+manager->x;//0123 0123 0123 0123 x=6 游戏池中间值if(y>ROW_END)//26break;if((tetris>>i) &1)//用相应的颜色,显示一个实心的方块control->color[y][x]=(manager->type[0]|8);//设置当前方块颜色//有四行0 1 2 3 每行有四列0123}
}//显示当前方块(左右下移动)
void printCurrentTetris(const Manager *manager,const Control *control)
{//显示当前的方块是移动后调用的,必须为擦除移动前的方块,需要扩展显示区域int x,y;y=(manager->y>ROW_BEGIN)?manager->y-1:ROW_BEGIN;//下移时向上扩展一格for(;y<ROW_END&&y<manager->y+4;y++){x=(manager->x>COL_BEGIN)?(manager->x-1):COL_BEGIN;//右移向左扩展一格for(;x<COL_END&&x<manager->x+5;x++)//向右扩展一格{gotoxyInPool(x,y);//gotoxyWithFullwidth(2+9,y-3)相对点控制台//定点到游戏池内的方格if((manager->pool[y]>>x)&1){//用相应的颜色,显示一个实心方块SetConsoleTextAttribute(Output,control->color[y][x]);printf("▽");}else{SetConsoleTextAttribute(Output,0);printf("%2s","");}}}
}
//碰撞检测
bool checkCollision(const Manager *manager)//空语句
{ unsigned int dest=0;//16位//获取当前方块unsigned int tetris;tetris=TetrisTable[manager->type[0]][manager->orientation[0]];//获取当前方块在游戏池中的区域//游戏池坐标x,y处小方格信息,由低到高放在16位dest |=((((manager->pool[manager->y+0])>>manager->x)<<0x0)&0x000f);//取出游戏池中区域低4位,//如果碰撞到之前保存在游戏池中的方块,则为1,如果没有方块为0dest |=((((manager->pool[manager->y+1])>>manager->x)<<0x4)&0x00f0);dest |=((((manager->pool[manager->y+2])>>manager->x)<<0x8)&0x0f00);dest |=((((manager->pool[manager->y+3])>>manager->x)<<0xc)&0xf000);return ((dest &  tetris) !=0);
}
//移除当前方块
void removeTetris(Manager *manager)
{unsigned int tetris;tetris=TetrisTable[manager->type[0]][manager->orientation[0]];//当前方块每4位取出按位取反后按位到游戏池相应位置manager->pool[manager->y+0]&=~(((tetris>>0x0)&0x000f)<<manager->x);manager->pool[manager->y+1]&=~(((tetris>>0x4)&0x000f)<<manager->x);manager->pool[manager->y+2]&=~(((tetris>>0x8)&0x000f)<<manager->x);manager->pool[manager->y+3]&=~(((tetris>>0xc)&0x000f)<<manager->x);}
//向下移动方块
void moveDownTetris(Manager *manager, Control *control)
{int y;y=manager->y; //记录原行位置removeTetris(manager);//移走当前方块++manager->y;//向下移动if(checkCollision(manager))//检测到碰撞{manager->y=y;//恢复原行位置insertTetris(manager);//放入当前方块,由于位置没变不需要设置颜色if(checkErasing(manager,control)) //检测到消行printTetrisPool(manager,control);//刷新游戏池}
else
{insertTetris(manager);//放入当前方块setPoolColor(manager,control);//设置颜色printCurrentTetris(manager,control);//显示当前方块,扩展printTetrisPool(manager,control);//显示游戏池
}}
//运行游戏
void runGame(Manager *manager, Control *control)
{clock_t  clocknow,clocklast;//clock_t长整型clocklast=clock();//clock()返回CPU启动到调用clock()时的硬件滴答数while(!manager->dead){   while(_kbhit())//有键按下{keydownControl(manager,control,getch());//处理按键}if(!control->pause)//未暂停{clocknow=clock();if(clocknow-clocklast>0.45*CLOCKS_PER_SEC)//*1000{moveDownTetris(manager,control);clocklast=clocknow;}}}
}
//水平移动方块
void horzMoveTetris(Manager *manager, Control *control)
{int x=manager->x;//记录原列位置removeTetris(manager);//移走当前方块if(control->direction==0)//左移为0,右移为1--manager->x; //左移else++manager->x;  //右移if(checkCollision(manager)){manager->x=x;//恢复为原列位置insertTetris(manager);//还是原行的位置颜色不用设置}else{insertTetris(manager);//放入当前方块setPoolColor(manager,control);//设置颜色printCurrentTetris(manager,control);//显示当前方块,扩展}
}
//旋转方块
void rotateTetris(Manager *manager, Control *control)
{int ori=manager->orientation[0];//记录旋转状态removeTetris(manager);//移走当前方块//顺/逆时针旋转if(control->clockwise)manager->orientation[0]=(ori+1)&3;//顺时针elsemanager->orientation[0]=(ori+3)&3;//逆时针if(checkCollision(manager)){manager->orientation[0]=ori;insertTetris(manager);}else{insertTetris(manager);//插入当前方块setPoolColor(manager,control);//设置颜色printCurrentTetris(manager,control);//显示当前方块}
}
// 方块直接落地
void dropDownTetris(Manager *manager, Control *control)
{// 移走当前方块removeTetris(manager);//从上往下检测,方块下移,最大位置不超过下边界for (;manager->y<ROW_END;manager->y++){//如果检测到碰撞,结束执行函数体if(checkCollision(manager)){//跳出for循环函数break;}}// 由于检测到碰撞,需上移一格没有碰撞的方块manager->y--;   //上移一格insertTetris(manager); // 放入当前方块  函数调用实现setPoolColor(manager,control); // 设置颜色 函数调用实现checkErasing(manager,control); // 检测消行 函数调用实现printTetrisPool(manager,control); // 显示游戏池 函数调用实现
}
// 重玩一次
bool ifPlayAgain()
{//设置按键接收变量int ch;//设置游戏结束提示信息颜色SetConsoleTextAttribute();SetConsoleTextAttribute(Output,0xf0);   //背景颜色//移动到指定位置,打印文字(15,10);gotoxyWithFullwidth(15, 10);printf("游戏结束");gotoxyWithFullwidth(13,11);printf("按Y重玩,按N退出");do {//按键接收字符 getch()实现ch=getch();//判断按键键值,y  返回trueif(ch=='y'||ch=='Y'){return true;}//判断按键键值,n  返回falseelse if(ch=='n'||ch=='N'){return false;}}while (1);
}
//按键按下控制
void keydownControl(Manager *manager, Control *control,int key)
{   if (key == 13)  // 暂停/解除暂停{control->pause = !control->pause;}if (control->pause)  // 暂停状态,不作处理{return;//起到终止语句的作用}switch(key){case 's':case 'S':case '2':case 80:  // 下 扫描键moveDownTetris(manager, control);  // 向下移动方块break;case 'A':case 'a':case '4':case 75 : //左移control->direction=0;horzMoveTetris(manager, control);break;case 'D':case 'd':case '6':case 77 ://右移control->direction=1;horzMoveTetris(manager, control);break;case 'W':case 'w':case '8':case 72 ://上按键,顺时针control->clockwise=true;rotateTetris(manager,control);break;case '0' ://逆时针control->clockwise=false;rotateTetris(manager,control);break;//直接落地 ' 'case ' ':  // 直接落地// 调用直接落地函数dropDownTetris(manager, control);//返回break;default:break;}
}
//消行检测
bool checkErasing(Manager *manager, Control *control)
{static const unsigned scores[5]={0,10,30,90,100};//消行总分int count=0;//从下往上检测int y=manager->y+3;//有效区域内且一行已被填满do{if(y<ROW_END&&manager->pool[y]==0xffff){count++;//消除一行方块memmove(manager->pool+1,manager->pool,sizeof(unsigned int)*y);//颜色数组的元素随之改动memmove(control->color[1],control->color[0],sizeof( int [16])*y);}elsey--;}while(y>=manager->y);manager->erasedTotal+=count; //消行总数manager->score+=scores[count];//得分信息if(count>0){manager->erasedCount[count-1]++;//消行}initTetris(manager);//初始化方块setPoolColor(manager,control);//设置颜色if(count>0)return true;elsereturn false;}

http://chatgpt.dhexx.cn/article/O9wgE8qD.shtml

相关文章

C语言俄罗斯方块(新版本完整代码)

2020博客之星年度总评选进行中&#xff1a;请为74号的狗子投上宝贵的一票&#xff01; 我的投票地址&#xff1a;点击为我投票 写在前面&#xff1a; 大家好&#xff0c;我是 花狗Fdog &#xff0c;来自内蒙古的一个小城市&#xff0c;目前在泰州读书。 很感谢能有这样一个平台…

HTML5俄罗斯方块网页游戏代码

HTML5俄罗斯方块网页游戏代码 非常好用 代码如下 注意 把所有文件放在一个文件夹里! 把所有css文件夹里,命名css 把所有js文件夹里,命名js 先看index.html <!DOCTYPE html> <html> <head><meta charset"utf-8"><title>俄罗斯方块…

俄罗斯方块C++语言代码

大家都知道俄罗斯方块&#xff0c;就是控制不同的方块旋转&#xff0c;通过摆满一行方块消除得分&#xff0c;今天就让我们用C制作一个俄罗斯方块小游戏。 首先定义方块&#xff1a; int block00[4][4] { { 10,0,0,0 },{ 1,1,1,1 },{ 0,0,0,0 },{ 0,0,0,0 } }; int block01[…

c++俄罗斯方块 完整源代码

文章目录 1. 功能描述2. 源代码3. 运行截图4. 结尾 1. 功能描述 2. 源代码 #include<iostream> #include<string> #include<cstdlib> #include<windows.h> #include<ctime> #include<conio.h> #include<cstdio> using namespace st…

俄罗斯方块游戏代码

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a;小刘主页 ♥️每天分享云计算网络运维课堂笔记&#xff0c;努力不一定有回报&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️夕阳下&#xff0c;是最美的&#xff0c;绽…

C语言实现俄罗斯方块

目录 一、游戏效果展示 二、完整代码&#xff0c;可以直接拷贝运行 三、所需开发环境 四、具体项目实现 ①游戏欢迎界面 welcome( ) ②游戏背景 initGameScreen( ) ③方块表示 int block[ ][ ][ ] ④新方块表示nextBlock( ) ⑤设计游戏循环main( ) ⑥搭建用户操作框…

❤️VS Code❤️,cmd终端窗口运行,解决中文乱码问题

目录 问题归纳VS Code默认终端配置window窗口弹出相关解释 解决中文乱码问题运行俄罗斯方块程序 问题归纳 在软件Visual Studio中一切都是配置好的&#xff0c;默认终端运行采用弹出cmd窗口形式。而在VS Code中除了一些默认的配置设置外&#xff0c;所有环境配置、界面显示等操…

俄罗斯方块(C语言实现)

文章目录 游戏说明游戏效果展示游戏代码游戏代码详解游戏框架构建隐藏光标光标跳转初始化界面初始化方块信息颜色设置画出方块空格覆盖合法性判断判断得分与结束游戏主体逻辑函数从文件读取最高分更新最高分到文件主函数 游戏说明 俄罗斯方块相信大家都知道&#xff0c;这里就…

IDEA 设置类注释模板

效果展示 步骤&#xff1a;File-->settings-->Editor-->File and Code Templates-->Files 选择Class文件&#xff08;当然你要设置接口的还也可以选择Interface文件&#xff09;

设置idea类注释模板

1.File-->Settings...&#xff0c;或者直接按快捷键CtrlAltS. 2. Editor-->File and Code Templates-->Includes-->File Header,根据右下角Description的提示&#xff0c;添加自己需要的注释。 3.在右侧空白处设置自己的模板&#xff0c;若提示cant parse class.可…

IDEA 创建类注释模板设置

1.idea类注释 打开&#xff1a;file->setting->Editor->Filr and Code Templates->Includes->File Header 类注释模板&#xff1a; /** * title: ${NAME}* projectName ${PROJECT_NAME}* description: TODO* author ${USER}* date ${DATE}${TIME}*/ 2.方法注释…

java idea 配置注释模板

java idea 配置注释模板 最近项目组在加强代码规范管理。代码优雅从代码注释开始。奥力给&#xff01;&#xff01;&#xff01; 类注释的 File >> Settings >> Editor >> File and code Templates >> Files >> class 上图中的模板内容如下&…

idea类注释模板,方法注释模板。

idea设置--实时模板 新建组 类模板 /*** description $description$* author YJJ* date $date$ $time$* version 1.0*/ 方法模板 ** * description $description$ $params$ $return$* author YJJ* date $date$ $time$*/ params脚本&#xff1a; groovyScript("def r…

IDEA代码注释模板

存在问题: 每次写代码&#xff0c;新建类都没有注释&#xff0c;这对一个拥有代码强迫症患者来说&#xff0c;是多么不爽的一件事&#xff0c;不利于开发和后期问题排查 举个例子&#xff1a; 上次写代码的时候&#xff0c;这一段只有我和上帝知道&#xff0c;而现在&#xff0…

idea添加注释模板

自动添加描述 class // 创建时间有的也没有 仅仅就是class的描述信息&#xff0c;看个人公司情况吧&#xff0c;描述信息最好创建时间有一个空行&#xff0c;我忘记了/** * 描述信息 * * create: ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE} */method // 一会要写入模板的内…

【idea生成类注释模板快捷键设置】

idea类注释模板快捷键 设置在方法上生成注释的快捷键1&#xff0c;ctrlaltS打开idea设置设置模板中的参数取值来源使用效果展示 设置在方法上生成注释的快捷键 1&#xff0c;ctrlaltS打开idea设置 设置模板中的参数取值来源 使用效果展示

IntelliJ IDEA类和方法注释模板配置

1、设置文件注释 设置Java类的注释模板&#xff0c;创建Java类自动生成该注释模板。 先看文件注释效果&#xff1a; 1.1、选择 IntelliJ IDEA —> 选择 Preferences... 打开IDEA属性设置面板 1.2、选择 File Code Templates—>选择 Includes 选项卡—>选择 File He…

IDEA配置方法类注释模板

IDEA配置方法类注释模板 IDEA20.1配置方法注释注释的种类注释使用规范 摘自阿里开发手册 IDEA方法模板注释一、打开idea 点击菜单File->Setting-Editor->Live Template二、选择Live Template 添加快键键缩写注释模板代码三、配置Edit variables四、配置入参和返回字段的d…

IDEA类和方法注释模板配置

1、类的注释模板配置 File-->Settings-->Editor-->File and Code Templates-->File --->Class: 模板代码下所示&#xff1a; /*** ClassName: ${NAME}* Author : ${USER}* Date :${DATE} ${TIME}* Description: TODO* Version :1.0*/ 上述${NAME}为类名&…

IDEA方法注释模板设置

IDEA类和方法注释模板设置 1、File–>Settings–>Editor–>Live Templates &#xff08;1&#xff09;新建组&#xff1a;命名为userDefine &#xff08;2&#xff09;新建模板&#xff1a;选中你刚才创建的组&#xff0c;然后右上角新建模板&#xff0c;命名为* &…