小学现代五子棋“四步八法”教学模式的实践研究活页评审表.doc(首南第一小学 蔡岳伟)

时间:2024.5.9

20##年浙江省教育科学规划课题活页评审表

注:此表可复制和加页。填表后一式六份报送初审单位,其中五份报省教科规划办。


第二篇:五子棋程序。doc


/*=============================================== 五子棋

================================================*/

#include "stdio.h"

#include "graphics.h"

#define LEFT 0x4b00 /*左键值*/

#define RIGHT 0x4d00 /*右键值*/

#define DOWN 0x5000 /*下键值*/

#define UP 0x4800 /*上键值*/

#define ESC 0x011b /* ESC键值*/

#define ENTER 0x1c0d /* 回车键值*/

int x=-1, y = 0; /*纪录棋子移动点的坐标值*/ int max_x, max_y;

int board_flag[15][15]; /*棋盘每格的状态纪录数组*/

void draw_board(); /*画棋盘15*15的棋盘*/ void show_init(int pat); /*棋子出现的初始位置*/ void hide(); /*恢复棋子上一步的状态*/

void show(int pat); /*显示棋子当前状态*/ void move(); /*移动棋子*/

int is_win(int pat); /*判断哪方赢了*/

void main()

{

int driver = DETECT, mode;

int i, j;

for(i=0; i<15; i++)

for(j=0; j<15; j++)

{

board_flag[i][j] = 0;

}

initgraph(&driver, &mode, "");

draw_board();

show_init(0);

move();

getch();

closegraph();

}

/*=======================================================================*/

void draw_board()

{

int i;

max_x = getmaxx();

max_y = getmaxy();

setfillstyle(1, BLUE); /*设置棋盘背景为蓝色*/

bar(0,0, max_x, max_y);

for(i=-7; i<=8; i++)

{

line(max_x/2-7*26, max_y/2 +i*26, max_x/2+8*26, max_y/2+i*26); /*画水平方向的线*/

line(max_x/2+i*26, max_y/2-7*26, max_x/2+i*26, max_y/2+8*26); /*画垂直方向的线*/

}

}

/*==========================================================================*/

void show_init(int pat)

{

setcolor(BLUE);

if(pat == 0)

{

setfillstyle(1, BLACK); /*设置填充的颜色*/

}

else

{

setfillstyle(1,WHITE); /*设置填充的颜色*/

}

x = -1;

y = 0;

fillellipse(max_x/2-8*26+13, max_y/2-7*26+13, 12,12);/*画出初始位值出现的棋子*/

}

/*============================================================================*/

void hide()

{

int m;

m = board_flag[x][y];

switch(m)

{

case 0: /*标志位为零时,说明此处背景色为蓝色*/

setfillstyle(1, BLUE);

break;

case 1: /*标志为1时,说明此处为一黑色棋子*/

setfillstyle(1, BLACK);

break;

case 2: /*标志为2时,说明此处为一白色棋子*/

setfillstyle(1, WHITE);

break;

default:

break;

}

fillellipse(max_x/2+(x-7)*26+13, max_y/2+(y-7)*26+13, 12,12); /*恢复棋子上一步状态*/

}

/*=============================================================================*/

void show(int pat)

{

switch(pat)

{

case 0:

setfillstyle(1, BLACK);

break;

case 1:

setfillstyle(1, WHITE);

break;

default:

break;

}

fillellipse(max_x/2+(x-7)*26+13, max_y/2+(y-7)*26+13, 12,12);/*画出当前位置棋子*/

}

/*=================================================================*/

void move()

{

int key;

int pat = 0;

/*---------------------------------------------------------------*/

for(;;)

{

key = bioskey(0);

switch(key)

{

case LEFT:

if(x == -1)

{

break;

}

hide();

x--;

x = x<0?0:x;

show(pat);

break;

case RIGHT:

if(x == -1)

{

setfillstyle(1, BLUE);

fillellipse(max_x/2 + (x-7)*26+13, max_y/2 + (y-7)*26+13, 12,12); /*上次棋子出现的位置消失*/

}

else

{

hide(); /*隐藏棋子*/

}

x++;

x = x>14?14:x;

show(pat); /*棋子显示*/

break;

case DOWN:

if(x == -1)

{

break;

}

hide();

y++;

y = y>14?14:y;

show(pat);

break;

case UP:

if(x == -1)

{

break;

}

hide();

y--;

y = y<0?0:y;

show(pat);

break;

case ENTER:

if(board_flag[x][y] != 0) /*防止空格处已经放置了棋子,又一次放置*/ {

break;

}

show(pat);

board_flag[x][y] = pat+1;

if(is_win(pat))

{

settextstyle(0, 0, 3);

setcolor(RED);

if(pat == 0)

{

outtextxy(max_x/2-80, max_y/2,"Black Win!");

}

else

{

outtextxy(max_x/2-80, max_y/2,"White Win!");

}

setcolor(BLUE);

getch();

exit(1);

}

if(pat == 0)

{

pat = 1;

}

else

{

pat = 0;

}

show_init(pat);

break;

case ESC:

exit(1);

break;

default:

break;

}

}

}

/*===============================================================*/

int is_win(int pat)

{

int i, j;

int cnt = 0;

/*判断是否五子连在一起*/

/*------------------------------------------------------------*/

/*判断水平方向*/

cnt = 0;

i = x;

while(i<15)

{

if(board_flag[i][y] == pat+1)

{

cnt++;

}

else

{

break;

}

i++;

}

i = x-1;

while(i>=0)

{

if(board_flag[i][y] == pat+1)

{

cnt++;

}

else

{

break;

}

i--;

}

if(cnt >= 5)

{

return 1;

}

/*-------------------------------------------------------*/ /*判断45度直线方向*/

cnt = 0;

i = x;

j = y;

while(i<15)

{

if(j<0)

{

break;

}

if(board_flag[i][j] == pat+1)

{

cnt++;

}

else

{

break;

}

i++;

j--;

}

i = x-1;

j = y+1;

while(i>=0)

{

if(j>14)

{

break;

}

if(board_flag[i][j] == pat+1)

{

cnt++;

}

else

{

break;

}

i--;

j++;

}

if(cnt >=5)

{

return 1;

}

/*----------------------------------------------------------------------------*/ /*判断垂直方向*/

cnt = 0;

j = y;

while(j>=0)

{

if(board_flag[x][j] == pat+1)

{

cnt++;

}

else

{

break;

}

j--;

}

j = y+1;

while(j<15)

{

if(board_flag[x][j] == pat+1)

{

cnt++;

}

else

{

break;

}

j++;

}

if(cnt>=5)

{

return 1;

}

/*----------------------------------------------------------------*/ /*判断135度直线方向*/

cnt = 0;

i = x;

j = y;

while(i>=0)

{

if(j<0)

{

break;

}

if(board_flag[i][j] == pat+1) {

cnt++;

}

else

{

break;

}

i--;

j--;

}

i = x+1;

j = y+1;

while(i<15)

{

if(j>14)

{

break;

}

if(board_flag[i][j] == pat+1) {

cnt++;

}

else

{

break;

}

i++;

j++;

}

if(cnt >= 5)

{

return 1;

}

return 0;

}

更多相关推荐:
教学实践评语

教学实践表评语教研室组评语该生在教学实践过程中能够刻苦钻研虚心请教积极施行新的教育理念探索新的教学方法在教学实践过程中认真钻研教学大纲和教材备课认真态度负责其助教工作受到学生的支持与称赞总体上较好地完成了教学实...

研究生教学实践评语表

桂林理工大学研究生教学实践评语表

山西师范大学硕士研究生教学实践评语表

山西师范大学硕士研究生教学实践评语表

教学实践评语表

桂林理工大学研究生教学实践评语表注此表在教学实践结束时由负责指导教学工作的教师填写

研究生教学实践和社会实践报告书

青岛大学研究生教学实践和社会实践报告书背面附研究生个人总结研究生依据青岛大学关于制定博士硕士学位研究生培养方案的总体要求填写此表负责人要对该生教学实践社会实践是否合格签署明确意见此表存学院备查毕业前随学位档案上...

硕士研究生教学实践考核表和学术研讨与学术报告考核 个人总结

硕士研究生教学实践考核表和学术研讨与学术报告考核个人总结自从20xx年9月我进入大学思想政治教育学院学习以来开始了一段对我来说尤为重要的研究生生活随着科学技术的迅猛发展社会的不断进步传统的研究生教育观念内容和方...

辽宁大学研究生专业实践鉴定表

辽宁大学研究生专业实践鉴定表注提交校内导师审查时应附专业实践报告字数不少于3000字

华中农业大学全日制专业学位研究生实践单位意见反馈表

华中农业大学全日制专业学位研究生实践单位意见反馈表

人文化评语的教学实践

人文化评语的教学实践伊春市友好第三小学陈小英人的精神生命中最本质的需要就是渴望得到赏识尊重激励儿童是感情容易冲动的小群体很容易融入周围的环境中教师的一举一动一言一行无不对他们产生强烈的吸引力和号召力因此在教学中...

北方工业大学教学实践评语表

研究生教学实践评语表备注全日制学术型研究生填写此表

电子科技大学全日制专业硕士研究生实践教学环节报告

电子科技大学全日制专业硕士研究生实践教学环节报告实践内容无人机姿态控制系统的仿真平台搭建实践时间20xx520xx7实践地点kb338实践主要内容及过程1引言无人机是指具有动力装置不载操作人员的飞行器现在对无人...

重庆师范大学研究生教学实践实践(专业实习)登记表

重庆师范大学研究生教学实践专业实习登记表

研究生教学实践评语(11篇)