系统:linux
语言:C
源码如下
#include<stdio.h>
#include<stdlib.h>
//whether to allow to pull box
#define PULL_BOX 1
//whether to move only one step at a time
#define ONE_STEP 0
struct box{
int *level;
int row;
int col;
int num;
};
int p_row,p_col; //person location
int perfect_box;
/*ASCII detects the input value,up(w) down(s) left(a) right(d) return "1 2 3 4"
*pulls the box return "5678"
*q returns -1, u returns -2,n returns -3,
*and the others returns -99
*/
int scanf_dire(){
char a;
a=getchar();
for(;a==10;){
a=getchar();
}
switch(a){
case 113:
return -1;
case 117:
return -2;
case 110:
return -3;
case 119:
return 1;
case 97:
return 3;
case 115:
return 2;
case 100:
return 4;
#if PULL_BOX
case 105:
return 5;
case 107:
return 6;
case 106:
return 7;
case 108:
return 8;
#endif
}
if(a==27 && (a=getchar())==91){
a=getchar();
switch(a){
case 65:
return 1;
case 66:
return 2;
case 67:
return 4;
case 68:
return 3;
default:
break;
}
}
return -99;
}
//get a number
int scanf_number(){
int num;
for(;!scanf("%d",&num);){
char ch;
while((ch = getchar()) != '\n' && ch != EOF);
printf("please input right number:");
}
return num;
}
/*print level information(including level,steps,...), count the number of perfect boxes,
*locate person
*/
void printf_map(struct box* level_tmp,int level,int steps){
int i,j,k;
printf("\033[2J");
printf("\033[H");
printf("---------------------------------------\n");
printf("level:%d",level);
if(steps>0){
printf(" steps:%d",steps);
}
printf("\n---------------------------------------\n");
perfect_box=0;
for(i=0;i<level_tmp->row;i++){
for(j=0;j<level_tmp->col;j++){
k=*(level_tmp->level+i*level_tmp->col+j);
switch(k){
case -1:
printf("▓");//wall
break;
case 1:
printf("☺");//person
p_row=i;
p_col=j;
break;
case 2:
printf("●");//box
break;
case 3:
printf("◎");//box's aim
break;
case 4:
printf("☺");//person on box's aim
p_row=i;
p_col=j;
break;
case 5:
printf("◉");//perfect box
perfect_box++;
break;
default:
printf(" ");//none
break;
}
}
printf("\n");
}
}
//pull box
int p_move_oppo(struct box* level_tmp,int option){
int k,k_d,k_dd,offset,offset_d;
switch(option){
case 5:
offset=(p_row-1)*level_tmp->col+p_col;
offset_d=(p_row+1)*level_tmp->col+p_col;
break;
case 6:
offset=(p_row+1)*level_tmp->col+p_col;
offset_d=(p_row-1)*level_tmp->col+p_col;
break;
case 7:
offset=p_row*level_tmp->col+p_col-1;
offset_d=p_row*level_tmp->col+p_col+1;
break;
case 8:
offset=p_row*level_tmp->col+p_col+1;
offset_d=p_row*level_tmp->col+p_col-1;
break;
default:
break;
}
k=*(level_tmp->level+(p_row)*level_tmp->col+p_col);
k_d=*(level_tmp->level+offset);
k_dd=*(level_tmp->level+offset_d);
switch(k_d){
case 0:
case 3:
(*(level_tmp->level+(p_row)*level_tmp->col+p_col))--;
(*(level_tmp->level+offset))++;
switch(k_dd){
case 2:
case 5:
*(level_tmp->level+offset_d)-=2;
*(level_tmp->level+(p_row)*level_tmp->col+p_col)+=2;
break;
default:
break;
}
return 1;
break;
default:
return 0;
break;
}
}
//push box
int p_move(struct box* level_tmp,int option){
int k,k_d,k_dd,offset,offset_d;
switch(option){
case 1:
offset=(p_row-1)*level_tmp->col+p_col;
offset_d=(p_row-2)*level_tmp->col+p_col;
break;
case 2:
offset=(p_row+1)*level_tmp->col+p_col;
offset_d=(p_row+2)*level_tmp->col+p_col;
break;
case 3:
offset=p_row*level_tmp->col+p_col-1;
offset_d=p_row*level_tmp->col+p_col-2;
break;
case 4:
offset=p_row*level_tmp->col+p_col+1;
offset_d=p_row*level_tmp->col+p_col+2;
break;
default:
break;
}
k=*(level_tmp->level+(p_row)*level_tmp->col+p_col);
k_d=*(level_tmp->level+offset);
k_dd=*(level_tmp->level+offset_d);
switch(k_d){
case 2:
case 5:
switch(k_dd){
case 0:
case 3:
*(level_tmp->level+offset_d)+=2;
(*(level_tmp->level+offset))-=2;
break;
default:
break;
}
if(k_dd!=0&&k_dd!=3){
break;
}
case 0:
case 3:
(*(level_tmp->level+(p_row)*level_tmp->col+p_col))--;
(*(level_tmp->level+offset))++;
return 1;
break;
default:
return 0;
break;
}
}
//printf menu
void printf_menu(){
printf("\033[2J");
printf("\033[H");
printf("************************************************\n\n");
printf(" 1->start game\n");
printf(" 2->reading instruction\n");
printf(" 99->exit game\n");
printf("\n************************************************\n");
}
//printf caption
void printf_cap(){
printf("\033[2J");
printf("\033[H");
printf("************************************************\n");
printf("1.You should push boxes to right destination\n");
printf("2.The move regulations:\n");
printf(" use w or ↑ to push boxes \n");
printf(" a s d ← ↓ → \n\n");
printf(" i to pull boxes\n");
printf(" j k l\n");
printf(" (The reason is that I didn't set back keys!\n");
printf(" you can close this function at start of\n");
printf(" the source code.)\n\n");
printf(" q:return to main menu\n");
printf(" u:restart this level\n");
printf(" n:go to the next level\n");
printf("\n3.When choosing [y/n],key 'y' for [y],others for [n]\n");
printf("\n4.I hope you have a good time!\n");
printf("************************************************\n");
printf("press any key to return main menu!\n");
getchar();
getchar();
}
int main(){
int option,op_menu,op_menu_2,start_level,level_over;
struct box box_level;
struct box* level_tmp;
int level_1[11][19]={
{ 0, 0, 0, 0,-1,-1,-1,-1,-1,},
{ 0, 0, 0, 0,-1, 0, 0, 0,-1,},
{ 0, 0, 0, 0,-1, 2, 0, 0,-1,},
{ 0, 0,-1,-1,-1, 0, 0, 2,-1,-1,},
{ 0, 0,-1, 0, 0, 2, 0, 2, 0,-1,},
{-1,-1,-1, 0,-1, 0,-1,-1, 0,-1, 0, 0, 0,-1,-1,-1,-1,-1,-1,},
{-1, 0, 0, 0,-1, 0,-1,-1, 0,-1,-1,-1,-1,-1, 0, 0, 3, 3,-1,},
{-1, 0, 2, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3,-1,},
{-1,-1,-1,-1,-1, 0,-1,-1,-1, 0,-1, 1,-1,-1, 0, 0, 3, 3,-1,},
{ 0, 0, 0, 0,-1, 0, 0, 0, 0, 0,-1,-1,-1,-1,-1,-1,-1,-1,-1,},
{ 0, 0, 0, 0,-1,-1,-1,-1,-1,-1,-1,},
};
int level_2[10][14]={
{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,},
{-1, 3, 3, 0, 0,-1, 0, 0, 0, 0, 0,-1,-1,-1,},
{-1, 3, 3, 0, 0,-1, 0, 2, 0, 0, 2, 0, 0,-1,},
{-1, 3, 3, 0, 0,-1, 2,-1,-1,-1,-1, 0, 0,-1,},
{-1, 3, 3, 0, 0, 0, 0, 1, 0,-1,-1, 0, 0,-1,},
{-1, 3, 3, 0, 0,-1, 0,-1, 0, 0, 2, 0,-1,-1,},
{-1,-1,-1,-1,-1,-1, 0,-1,-1, 2, 0, 2, 0,-1,},
{ 0, 0,-1, 0, 2, 0, 0, 2, 0, 2, 0, 2, 0,-1,},
{ 0, 0,-1, 0, 0, 0, 0,-1, 0, 0, 0, 0, 0,-1,},
{ 0, 0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,},
};
int level_3[10][17]={
{ 0, 0, 0, 0, 0, 0, 0, 0,-1,-1,-1,-1,-1,-1,-1,-1,},
{ 0, 0, 0, 0, 0, 0, 0, 0,-1, 0, 0, 0, 0, 0, 1,-1,},
{ 0, 0, 0, 0, 0, 0, 0, 0,-1, 0, 2,-1, 2, 0,-1,-1,},
{ 0, 0, 0, 0, 0, 0, 0, 0,-1, 0, 2, 0, 0, 2,-1,},
{ 0, 0, 0, 0, 0, 0, 0, 0,-1,-1, 2, 0, 2, 0,-1,},
{-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 2, 0,-1, 0,-1,-1,-1,},
{-1, 3, 3, 3, 3, 0, 0,-1,-1, 0, 2, 0, 0, 2, 0, 0,-1,},
{-1,-1, 3, 3, 3, 0, 0, 0, 0, 2, 0, 0, 2, 0, 0, 0,-1,},
{-1, 3, 3, 3, 3, 0, 0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,},
{-1,-1,-1,-1,-1,-1,-1,-1,},
};
int level_4[14][19]={
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-1,-1,-1,-1,-1,-1,-1,-1,},
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-1, 0, 0, 3, 3, 3, 3,-1,},
{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 3, 3, 3, 3,-1,},
{-1, 0, 0, 0, 0,-1, 0, 0, 2, 0, 2, 0, 0, 0, 3, 3, 3, 3,-1,},
{-1, 0, 2, 2, 2,-1, 2, 0, 0, 2, 0,-1, 0, 0, 3, 3, 3, 3,-1,},
{-1, 0, 0, 2, 0, 0, 0, 0, 0, 2, 0,-1, 0, 0, 3, 3, 3, 3,-1,},
{-1, 0, 2, 2, 0,-1, 2, 0, 2, 0, 2,-1,-1,-1,-1,-1,-1,-1,-1,},
{-1, 0, 0, 2, 0,-1, 0, 0, 0, 0, 0,-1,},
{-1,-1, 0,-1,-1,-1,-1,-1,-1,-1,-1,-1,},
{-1, 0, 0, 0, 0,-1, 0, 0, 0, 0,-1,-1,},
{-1, 0, 0, 0, 0, 0, 2, 0, 0, 0,-1,-1,},
{-1, 0, 0, 2, 2,-1, 2, 2, 0, 0, 1,-1,},
{-1, 0, 0, 0, 0,-1, 0, 0, 0, 0,-1,-1,},
{-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,},
};
int level_5[13][17]={
{ 0, 0, 0, 0, 0, 0, 0, 0,-1,-1,-1,-1,-1,},
{ 0, 0, 0, 0, 0, 0, 0, 0,-1, 0, 0, 0,-1,-1,-1,-1,-1,},
{ 0, 0, 0, 0, 0, 0, 0, 0,-1, 0,-1, 2,-1,-1, 0, 0,-1,},
{ 0, 0, 0, 0, 0, 0, 0, 0,-1, 0, 0, 0, 0, 0, 2, 0,-1,},
{-1,-1,-1,-1,-1,-1,-1,-1,-1, 0,-1,-1,-1, 0, 0, 0,-1,},
{-1, 3, 3, 3, 3, 0, 0,-1,-1, 0, 2, 0, 0, 2,-1,-1,-1,},
{-1, 3, 3, 3, 3, 0, 0, 0, 0, 2, 0, 2, 2, 0,-1,-1,},
{-1, 3, 3, 3, 3, 0, 0,-1,-1, 2, 0, 0, 2, 0, 1,-1,},
{-1,-1,-1,-1,-1,-1,-1,-1,-1, 0, 0, 2, 0, 0,-1,-1,},
{ 0, 0, 0, 0, 0, 0, 0, 0,-1, 0, 2, 0, 2, 0, 0,-1,},
{ 0, 0, 0, 0, 0, 0, 0, 0,-1,-1,-1, 0,-1,-1, 0,-1,},
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-1, 0, 0, 0, 0,-1,},
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-1,-1,-1,-1,-1,-1,},
};
int level_6[11][12]={
{-1,-1,-1,-1,-1,-1, 0, 0,-1,-1,-1,},
{-1, 3, 3, 0, 0,-1, 0,-1,-1, 1,-1,-1,},
{-1, 3, 3, 0, 0,-1,-1,-1, 0, 0, 0,-1,},
{-1, 3, 3, 0, 0, 0, 0, 0, 2, 2, 0,-1,},
{-1, 3, 3, 0, 0,-1, 0,-1, 0, 2, 0,-1,},
{-1, 3, 3,-1,-1,-1, 0,-1, 0, 2, 0,-1,},
{-1,-1,-1,-1, 0, 2, 0,-1, 2, 0, 0,-1,},
{ 0, 0, 0,-1, 0, 0, 2,-1, 0, 2, 0,-1,},
{ 0, 0, 0,-1, 0, 2, 0, 0, 2, 0, 0,-1,},
{ 0, 0, 0,-1, 0, 0,-1,-1, 0, 0, 0,-1,},
{ 0, 0, 0,-1,-1,-1,-1,-1,-1,-1,-1,-1,},
};
int level_7[12][13]={
{ 0, 0, 0, 0, 0, 0, 0,-1,-1,-1,-1,-1,},
{ 0,-1,-1,-1,-1,-1,-1,-1, 0, 0, 0,-1,-1,},
{-1,-1, 0,-1, 0, 1,-1,-1, 0, 2, 2, 0,-1,},
{-1, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0,-1,},
{-1, 0, 0, 2, 0, 0,-1,-1,-1, 0, 0, 0,-1,},
{-1,-1,-1, 0,-1,-1,-1,-1,-1, 2,-1,-1,-1,},
{-1, 0, 2, 0, 0,-1,-1,-1, 0, 3, 3,-1,},
{-1, 0, 2, 0, 2, 0, 2, 0, 3, 3, 3,-1,},
{-1, 0, 0, 0, 0,-1,-1,-1, 3, 3, 3,-1,},
{-1, 0, 2, 2, 0,-1, 0,-1, 3, 3, 3,-1,},
{-1, 0, 0,-1,-1,-1, 0,-1,-1,-1,-1,-1,},
{-1,-1,-1,-1,},
};
int level_8[16][16]={
{ 0, 0,-1,-1,-1,-1,},
{ 0, 0,-1, 0, 0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,},
{ 0, 0,-1, 0, 0, 0, 0, 2, 0, 0, 0, 2, 0, 2, 0,-1,},
{ 0, 0,-1, 0, 2,-1, 0, 2, 0,-1, 0, 0, 2, 0, 0,-1,},
{ 0, 0,-1, 0, 0, 2, 0, 2, 0, 0,-1, 0, 0, 0, 0,-1,},
{-1,-1,-1, 0, 2,-1, 0,-1, 0, 0,-1,-1,-1,-1, 0,-1,},
{-1, 1,-1, 2, 0, 2, 0, 2, 0, 0,-1,-1, 0, 0, 0,-1,},
{-1, 0, 0, 0, 0, 2, 0,-1, 2,-1, 0, 0, 0,-1, 0,-1,},
{-1, 0, 0, 0, 2, 0, 0, 0, 0, 2, 0, 2, 0, 2, 0,-1,},
{-1,-1,-1,-1,-1, 0, 0,-1,-1,-1,-1,-1,-1,-1,-1,-1,},
{ 0, 0,-1, 0, 0, 0, 0, 0, 0,-1,},
{ 0, 0,-1, 0, 0, 0, 0, 0, 0,-1,},
{ 0, 0,-1, 3, 3, 3, 3, 3, 3,-1,},
{ 0, 0,-1, 3, 3, 3, 3, 3, 3,-1,},
{ 0, 0,-1, 3, 3, 3, 3, 3, 3,-1,},
{ 0, 0,-1,-1,-1,-1,-1,-1,-1,-1,},
};
int level_9[14][17]={
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-1,-1,-1,-1,-1,-1,-1,},
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-1, 0, 0, 3, 3, 3,-1,},
{ 0, 0, 0, 0, 0, 0,-1,-1,-1,-1,-1, 0, 0, 3, 3, 3,-1,},
{ 0, 0, 0, 0, 0, 0,-1, 0, 0, 0, 0, 0, 0, 3, 0, 3,-1,},
{ 0, 0, 0, 0, 0, 0,-1, 0, 0,-1,-1, 0, 0, 3, 3, 3,-1,},
{ 0, 0, 0, 0, 0, 0,-1,-1, 0,-1,-1, 0, 0, 3, 3, 3,-1,},
{ 0, 0, 0, 0, 0,-1,-1,-1, 0,-1,-1,-1,-1,-1,-1,-1,-1,},
{ 0, 0, 0, 0, 0,-1, 0, 2, 2, 2, 0,-1,-1,},
{ 0,-1,-1,-1,-1,-1, 0, 0, 2, 0, 2, 0,-1,-1,-1,-1,-1,},
{-1,-1, 0, 0, 0,-1, 2, 0, 2, 0, 0, 0,-1, 0, 0, 0,-1,},
{-1, 1, 0, 2, 0, 0, 2, 0, 0, 0, 0, 2, 0, 0, 2, 0,-1,},
{-1,-1,-1,-1,-1,-1, 0, 2, 2, 0, 2, 0,-1,-1,-1,-1,-1,},
{ 0, 0, 0, 0, 0,-1, 0, 0, 0, 0, 0, 0,-1,},
{ 0, 0, 0, 0, 0,-1,-1,-1,-1,-1,-1,-1,-1,},
};
int level_10[16][19]={
{ 0,-1,-1,-1, 0, 0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,},
{-1,-1, 1,-1,-1,-1,-1, 0, 0, 0, 0, 0, 0, 0,-1, 0, 0, 0,-1,},
{-1, 0, 2, 2, 0, 0, 0, 2, 2, 0, 0, 2, 0, 2, 0, 3, 3, 3,-1,},
{-1, 0, 0, 2, 2, 2,-1, 0, 0, 0, 0, 2, 0, 0,-1, 3, 3, 3,-1,},
{-1, 0, 2, 0, 0, 0,-1, 0, 2, 2, 0, 2, 2, 0,-1, 3, 3, 3,-1,},
{-1,-1,-1, 0, 0, 0,-1, 0, 0, 2, 0, 0, 0, 0,-1, 3, 3, 3,-1,},
{-1, 0, 0, 0, 0, 0,-1, 0, 2, 0, 2, 0, 2, 0,-1, 3, 3, 3,-1,},
{-1, 0, 0, 0, 0,-1,-1,-1,-1,-1,-1, 0,-1,-1,-1, 3, 3, 3,-1,},
{-1,-1, 0,-1, 0, 0,-1, 0, 0, 2, 0, 2, 0, 0,-1, 3, 3, 3,-1,},
{-1, 0, 0,-1,-1, 0,-1, 0, 2, 2, 0, 2, 0, 2,-1,-1, 3, 3,-1,},
{-1, 0, 3, 3,-1, 0,-1, 0, 0, 2, 0, 0, 0, 0, 0, 0,-1, 3,-1,},
{-1, 0, 3, 3,-1, 0,-1, 0, 2, 2, 2, 0, 2, 2, 2, 0,-1, 3,-1,},
{-1,-1,-1,-1,-1, 0,-1, 0, 0, 0, 0, 0, 0, 0,-1, 0,-1, 3,-1,},
{ 0, 0, 0, 0,-1, 0,-1,-1,-1,-1,-1,-1,-1,-1,-1, 0,-1, 3,-1,},
{ 0, 0, 0, 0,-1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,-1, 3,-1,},
{ 0, 0, 0, 0,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,},
};
for(;;){
printf_menu();
op_menu=scanf_number();
switch(op_menu){
case 2:
printf_cap();
break;
case 1:
printf("choose level[1-10]:");
op_menu_2=scanf_number();
for(;op_menu_2<1 || op_menu_2>10;){
printf("please choose rihgt level![1-10]:");
op_menu_2=scanf_number();
}
for(start_level=1;start_level==1;){
switch(op_menu_2){
case 1:
box_level.level=&level_1[0][0];
box_level.row=11;
box_level.col=19;
box_level.num=6;
break;
case 2:
box_level.level=&level_2[0][0];
box_level.row=10;
box_level.col=14;
box_level.num=10;
break;
case 3:
box_level.level=&level_3[0][0];
box_level.row=10;
box_level.col=17;
box_level.num=11;
break;
case 4:
box_level.level=&level_4[0][0];
box_level.row=14;
box_level.col=19;
box_level.num=20;
break;
case 5:
box_level.level=&level_5[0][0];
box_level.row=13;
box_level.col=17;
box_level.num=12;
break;
case 6:
box_level.level=&level_6[0][0];
box_level.row=11;
box_level.col=12;
box_level.num=10;
break;
case 7:
box_level.level=&level_7[0][0];
box_level.row=12;
box_level.col=13;
box_level.num=11;
break;
case 8:
box_level.level=&level_8[0][0];
box_level.row=16;
box_level.col=16;
box_level.num=18;
break;
case 9:
box_level.level=&level_9[0][0];
box_level.row=14;
box_level.col=17;
box_level.num=14;
break;
case 10:
box_level.level=&level_10[0][0];
box_level.row=16;
box_level.col=19;
box_level.num=32;
break;
default:
break;
}//the end of switch(op_menu_2)
int level_999[box_level.row][box_level.col];
int i,j;
for(i=0;i<box_level.row;i++){
for(j=0;j<box_level.col;j++){
level_999[i][j]=*(box_level.level+i*box_level.col+j);
}
}//copy the level_* to level_999
box_level.level=&level_999[0][0];
level_tmp=&box_level;
printf_map(level_tmp,op_menu_2,0);
for(level_over=0;perfect_box<level_tmp->num && level_over!=-1;){
option=scanf_dire();
#if ONE_STEP
char ch;
while((ch = getchar()) != 10 && ch != EOF);//move one step at a time
#endif
switch(option){
case 1:
case 2:
case 3:
case 4:
if(p_move(level_tmp,option)){
level_over++;
}
break;
case 5:
case 6:
case 7:
case 8:
if(p_move_oppo(level_tmp,option)){
level_over++;
}
break;
case -1:
printf("---------------------------------------\n");
printf("Do you want to return to main menu?[y/n]\n");
getchar();
if(getchar()=='y'){
start_level=-2;
level_over=-1;
}
break;
case -2:
printf("---------------------------------------\n");
printf("Do you want to restart this level?[y/n]\n");
getchar();
if(getchar()=='y'){
level_over=-1;
}
break;
case -3:
if(op_menu_2<10){
printf("---------------------------------------\n");
printf("Do you want to start next level?[y/n]\n");
getchar();
if(getchar()=='y'){
op_menu_2++;
level_over=-1;
}
}
else{
printf("---------------------------------------\n");
printf("This is the last level!\n");
printf("press any key to continue!\n");
getchar();
getchar();
}
break;
default:
break;
}
if(level_over!=-1){
printf_map(level_tmp,op_menu_2,level_over);
}
}
if(perfect_box==level_tmp->num && op_menu_2<=10){
if(op_menu_2==10){
printf("You win!congratulation!!!\n");
start_level=-1;
}
else{
printf("---------------------------------------\n");
printf("Do you want to start next level?[y/n]\n");
getchar();
if(getchar()=='y'){
op_menu_2++;
}
else{
start_level=-1;
}
}
}
}//the end of for(;start_level;)
break; //the end of switch(op_menu) -> case 1
case 99:
printf("EXIT GAME!\n");
return 0;//the only way to exit the game
break;
default:
break;
}//the end of switch(op_menu)
}//the end of for(;;)
}