第三周学习总结
函数声明
返回值 函数名(类型 变量名,类型 变量名…);
函数定义
返回值类型 函数名(类型 变量名,类型 变量名…)
{
函数体;
return 数据;
}
函数的调用
函数(数据1,数据2…)
返回值会在函数执行完成后放置在调用的位置。
五子棋
#include<stdio.h>
#include<stdbool.h>
#include<stdlib.h>
#include<getch.h>
//定义棋盘
char board[15][15];
//定义棋盘坐标
char key_x=7,key_y=7;
//定义角色变量
char role='@';
//初始化棋盘
void init_board(void);
//显示棋盘
void show_board(void);
//落子
void get_key(void);
//检测是否有五子
bool cheak_key(void);
//切换角色
void change_role(void);
int main()
{
init_board();
while(true)
{
show_board();
get_key();
if(cheak_key())
{
show_board();
printf("恭喜%c获得胜利",role);
break;
}
change_role();
}
}
//定义棋盘
void init_board(void)
{
for(int i=0;i<15;i++)
{
for(int j=0;j<15;j++)
board[i][j]='*';
}
}
//显示棋盘
void show_board(void)
{
system("clear");
for(int i=0;i<15;i++)
{
for(int j=0;j<15;j++)
{
printf("%c ",board[i][j]);
}
printf("\n");
}
}
//落子
void get_key(void)
{/*
printf("请%c输入坐标:",role);
scanf("%hhd%hhd",&key_x,&key_y);
if(key_x<15&&key_x>=0&&key_y<15&&key_y>=0&&board[key_x][key_y]=='*')
{
board[key_x][key_y]=role;
}*/
while(true)
{
printf("\33[%hhd;%hhdH",key_x+1,(key_y+1)*2);
switch(getch())
{
case 183:key_x>0&&key_x--;break;
case 184:key_x<14&&key_x++;break;
case 185:key_y<14&&key_y++;break;
case 186:key_y>0&&key_y--;break;
case 10:if('*'==board[key_x][key_y])
{
board[key_x][key_y]=role;
return;
}
}
}
}
//切换角色
void change_role(void)
{
if('@'==role)
{
role='#';
}
else
{
role='@';
}
}
小结
这周上午考试,所以上午的知识没有充分学习,下午听的有点懵。但是还是有很大的收获,下午我初步掌握了函数的声明,定义以及调用,虽然不是很熟练,但是打开了我对于程序新世界的大门。