
1、重置配置的方法:
2、编辑系,代码提示:Ctrl+J激活VS默认代码提示功能。ReSharper等插件会建议你修改快捷键。
3、导入命名空间:
Ctrl + 是最方便的,复杂点的是Alt + Shift + F10,更复杂的是右键菜单Resolve,更复杂的是Edit->IntelliSense->Resolve,最复杂的是前面的 *** 作用鼠标完成。
另外,vs没有eclipse的一键导入所有依赖项(如一键导入所有当前代码使用到的java包功能。
4、区域代码选择:按Shift选择整(行)块代码,可配合四个方向键(左右键:选择单个字符,上下键:上下行的当前列)、Home(当前行首)、End(当前行尾)、PgUp(当前页首)和PgDn(当前页尾)使用。
5、单词(逐词)选择:Ctrl+Shift+方向键(左键、右键)可一次选择整个单词。
6、代码删除:如果为删除某个函数或类名而使用单词(逐词)选择技能,Ctrl+Delete键,删除光标右边的块(整个单词或一个标点)。
7、如果要删除整行,那上一个技能显然不方便,此时,按下Ctrl+L,删除当前行。
8、代码移动:Alt+方向上或下箭头,可把当前行代码与上一行或下一行互换位置,如按下多次方向上箭头,可向上移动数行,也可移动整块代码。
我写好的,你看你要不要:
/贪吃蛇/
/重要思想/
//以二维数组为游戏界面。
//通过改变二维数组中指定元素的值实现对事物和蛇的显示和变化
#include<stdioh>
#include<stdlibh>
#include<timeh>
#include<conioh>
#define SHEAD '@'
#define SBODY '&'
#define FOOD ''
/关键变量全局声明/
const int L=20;
const int H=20; //定义界面的长 和 高
char view[20][20]={' '};//定义界面
int botton; //记录上下左右的 *** 作
int length=1; //蛇的长度,默认为1只有蛇头(蛇头用@表示)
int end=0; //游戏结束条件,1是结束
int sbl=0; //定义蛇身的长度
int speed_time=300; //sleep(speed_time)
int speed_point=0; //用作速度增加提示
int pause_point=-1; //暂停标识,为1代表暂停
struct snake
{
int s_x;
int s_y;
int direction;//存蛇该节点运动的方向 上1 下2 左3 右4
}snake[2020];
/函数声明/
void display(); //界面显示主菜单
void instruct(); //界面显示介绍
void runit(); //游戏启动
void init_view();//游戏界面初始化。就是把二维数组的所有元素都赋值为空格,并显示出来
void Creat_food(); //创建一个食物
void Get_button(); //获取方向键
void start();
void move();
void Check_bound();
void Check_self();
void choose_diff();//选择难度
void display()
{
int i;
printf("贪吃蛇v20(第一版升级版)\n");
printf(" 1游戏说明 \n");
printf(" 2开始吧 \n");
printf(" 3残忍的离开 \n");
printf("----------------------------------------------------------\n");
printf("你要做什么呢: ");
scanf("%d",&i);
switch(i)
{
case 1:instruct();break;
case 2:choose_diff();break;
case 3:exit(0);break;
default:
system("cls");
printf("都不知道你在说什么--\n");
display();
}
}
void instruct()
{
system("cls");
printf("------------------------------------------------------\n");
printf("游戏名称:贪吃蛇(v20)\n");
printf("版本:v20(功能实现版)");
printf("BY 申济铨\n");
printf("开发开始日期:2014-4-17\n");
printf("-------------------版本说明------------------------\n");
printf("1游戏中可以暂停\n");
printf("2游戏中蛇的移动速度回增加并有提示\n");
printf("3实现难度选择\n");
// printf("4截屏分享\n");
printf("4为后续版本提供支持\n");
printf("输入回车以返回主菜单?");
if(getchar()=='\n');
while(getchar()=='\n')
{
system("cls");
display();
}
}
void choose_diff()
{
int c;
printf("----------------难度选择------------------------\n");
printf("1初级\n");
printf("2中级\n");
printf("3高级\n");
printf("4骨灰级\n");
printf("请输入序号:\n");
scanf("%d",&c);
while(c>4||c<1)
{
printf("不识数啊。。。重新输:\n");
scanf("%d",&c);
}
speed_time-=(50(c-1));
runit();
}
void init_view()
{
int i=0;
int j=0;
printf("----------------------\n");
for(i;i<L;i++)
{
printf("|");
for(j;j<H;j++)
{
printf("%c",view[i][j]);
}
j=0;
printf("|");
if(i==L/2)
{
printf(" 回车可以暂停!");
}
printf("\n");
}
printf("----------------------\n");
}
void Creat_food()
{
int x;
int y;
while(1)
{
x=rand()%(L-1);
y=rand()%(H-1);
if(view[x][y]==' ');
{
break;
}
}
view[x][y]=FOOD;
}
void Get_button() //前提是必须先读入一个字符
{
while(kbhit()!=0)
{
botton=getch();
switch (botton)
{
case 75:snake[0]direction=1;break; //上
case 77:snake[0]direction=2;break; //下
case 72:snake[0]direction=3;break; //左
case 80:snake[0]direction=4;break; //右
case 13:pause_point=-1;
}
if(pause_point!=-1) //游戏暂停
{
pause_point=-1;
system("pause");
}
}
}
void runit()
{
int sx,sy;
int i,j;
for(i=0;i<H;i++) //界面初始化
{
for(j=0;j<L;j++)
{
view[H][L]=' ';
}
}
system("cls");
srand(time(0));
sx=rand()%(L-1);
sy=rand()%(H-1);
snake[0]s_x=sx;
snake[0]s_y=sy;
snake[0]direction=1; //默认假设蛇头向上运动
view[sx][sy]=SHEAD;
Creat_food();
init_view();
printf("任意方向键开始!\n");
getch(); //先读一个字符,骗他,不然执行到Get_button()的时候跳过去按默认值执行,为了让程序一开始不自动动
}
/关键的3个函数/
void Check_bound()
{
if((snake[0]s_x<0)||(snake[0]s_x>=H))
{
end=1;
}
if((snake[0]s_y<0)||(snake[0]s_y>=L))
{
end=1;
}
}
void Check_self()
{
if(view[snake[0]s_x][snake[0]s_y]==SBODY)//结束条件。全局变量。作用在start函数。
{
end=1;
}
}
void move()
{
int i=1;
int tmp_x=snake[sbl]s_x;
int tmp_y=snake[sbl]s_y;
int x_0=snake[0]s_x;
int y_0=snake[0]s_y;
view[snake[0]s_x][snake[0]s_y]=' ';
switch(snake[0]direction)//判断蛇移动的方向并改变蛇头位置
{
case 1:snake[0]s_y-=1;break;
case 2:snake[0]s_y+=1;break;
case 3:snake[0]s_x-=1;break;
case 4:snake[0]s_x+=1;break;
}
Check_bound();
Check_self();
if(end==1)
{
printf("你死了\n");
return ;
}
if(view[snake[0]s_x][snake[0]s_y]==FOOD)
{
length++;
sbl+=1;
snake[sbl]direction=snake[0]direction;
snake[sbl]s_x=x_0;
snake[sbl]s_y=y_0;
view[snake[sbl]s_x][snake[sbl]s_y]=SBODY;
Creat_food();
}
else
{
if(sbl!=0)
{
if(sbl==1)
{
view[snake[1]s_x][snake[1]s_y]=' ';
snake[1]s_x=x_0;
snake[1]s_y=y_0;
view[snake[1]s_x][snake[1]s_y]=SBODY;
}
else
{view[snake[1]s_x][snake[1]s_y]=' ';
for(i;i<sbl;i++)
{
snake[i]s_x=snake[i+1]s_x;
snake[i]s_y=snake[i+1]s_y;
view[snake[i]s_x][snake[i]s_y]=SBODY;
}
snake[sbl]s_x=x_0;
snake[sbl]s_y=y_0;
view[snake[sbl]s_x][snake[sbl]s_y]=SBODY;
}
}
else
{
view[snake[sbl]s_x][snake[sbl]s_y]=' ';
}
}
view[snake[0]s_x][snake[0]s_y]=SHEAD;
}
void start()
{
int i=0;//后续版本使用
int j=0;
while(1)
{
_sleep(speed_time-5(length/5));
if(speed_point!=(length/5))
{
speed_point=(length/5);
printf("速度增加了哦!\n");
_sleep(1000);
}
Get_button();
move();
if(end==1)
{
system("cls");
printf("死得好!!\n");
printf("再见!!\n");
_sleep(2000);
for(i=0;i<L;i++)
{
for(j=0;j<H;j++)
{
view[i][j]=' ';
}
}
for(i=0;i<length;i++)
{
snake[i]s_x=0;
snake[i]s_y=0;
}
length=0;
sbl=0;
end=0;
speed_time=300;
display();
}
system("cls");
init_view();
printf("任意方向键开始!");
}
}
int main()
{
display();
start();
return 0;
}
键盘上的每个按键都有扫描码和ASCII码组成的组合码,函数getchar()不会读出扫描码,只能读出ASCII码,C语言中函数_getch()conioh,不回显可以读出扫描码。
方向键、INSERT、DELETE、END、HOME、PgUp、PgDn的扫描码是224(0XE0)
F1 -- F11的扫描码是0。
if(_kbhit()) //如果按下的是方向键或功能键, _getch()要调用两次,第一次返回0XE0或0
{
fflush(stdin);
c=_getch(); //上: 72 下:80 左:75 右:77
if(c==0XE0 || c==0)
{
c=_getch();
if(c==72 && direct!=1 && direct!=3)
{
direct=3;
}
以上就是关于c语言执行命令快捷键是什么全部的内容,包括:c语言执行命令快捷键是什么、怎么改这个贪食蛇代码(c语言),有点变化,并能解释通就行。、c语言方向键ASCII码的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)