c语言:
#include <stdio.h>//是键盘的右下角的上下左右键 #include <stdlib.h> #include <windows.h> #include <conio.h> int main() { char a[50][50]={"####################",//x=0 "# # # #",//x=1 "# ## # # #### ## ###",//x=2 "# # # # #### ## ###",//x=3 "##H# # # ## ###",//x=4 "######## #* ## ####",//x=5 "# ###*### ## #",//x=6 "### ### # ###",//x=7 "#### ## ## # ##",//x=8 "## O O # O ## ##",//x=9 "## # O # # ##",//x=10 "## ## ### ##",//x=11 "# #*### # ####",//x=12 "## ######## # # ####",//x=13 "## ##* # #",//x=14 "#### ##### ## #### #",//x=15 "#### # ## # #",//x=16 "#### ########### # #",//x=17 "#### ####### #",//x=18 "########O###########" //x=19 };//y=0123456789qwertyuiop int i,x,y,p,q,b,v=0,v1=0;//x是x轴,y是y轴,p是终点x轴,q是终点y轴。 char ch;//每次输入 x=4; y=2; p=19; q=8; for(i=0;i<=19;i++) puts(a[i]); while(x!=p||y!=q) { ch=getch(); if(ch==80)//下 { if(a[x+1][y]!='#') { if(a[x+1][y]=='O' && a[x+2][y]!='#') { a[x+1][y]=' '; a[x+2][y]='O'; system("cls"); for(i=0;i<=19;i++)//要再打印一次,因为continue语句直接跳回开头了。 puts(a[i]); continue; } if(a[x+1][y]=='O' && a[x+2][y]=='#' || a[x+2][y]=='O' &&a[x+1][y]=='O' ) { continue; } a[x][y]=' '; x++; a[x][y]='H'; } } if(ch==72)//上 { if(a[x-1][y]!='#') { if(a[x-1][y]=='O' && a[x-2][y]!='#' && a[x-2][y]!='O') { a[x-1][y]=' '; a[x-2][y]='O'; system("cls"); for(i=0;i<=19;i++) puts(a[i]); continue; } if(a[x-1][y]=='O' && a[x-2][y]=='#' || a[x-1][y]=='O' &&a[x-2][y]=='O' ) { continue; } a[x][y]=' '; x--; a[x][y]='H'; } } if(ch==75)//左 { if(a[x][y-1]!='#') { if(a[x][y-1]=='O' && a[x][y-2]!='#' && a[x][y-2]!='O') { a[x][y-1]=' '; a[x][y-2]='O'; system("cls"); for(i=0;i<=19;i++) puts(a[i]); continue; } if(a[x][y-1]=='O' && a[x][y-2]=='#' || a[x][y-2]=='O' &&a[x][y-1]=='O' ) { continue; } a[x][y]=' '; y--; a[x][y]='H'; } } if(ch==77)//右 { if(a[x][y+1]!='#') { if(a[x][y+1]=='O' && a[x][y+2]!='#') { a[x][y+1]=' '; a[x][y+2]='O'; system("cls"); for(i=0;i<=19;i++) puts(a[i]); continue; } if(a[x][y+1]=='O' && a[x][y+2]=='#' || a[x][y+2]=='O' &&a[x][y+1]=='O' ) { continue; } a[x][y]=' '; y++; a[x][y]='H'; } } if(a[6][7] == 'O' && a[12][6] == 'O' && a[5][10] == 'O' && a[14][9] == 'O') { a[19][8] = ' '; } system("cls"); for(i=0;i<=19;i++) puts(a[i]); v++; printf("%d步",v/2); } system("cls"); printf("你赢了!!点击任意键后进入下一关。\n"); system("pause"); char a2[50][50]={ "#########################",//x=0 "# # # ######",//x=1 "# ## # # #### ## ########",//x=2 "# # # # #### ## ########",//x=3 "##H# # # # ########",//x=4 "## ##### #* # #########",//x=5 "# ###*### # ######",//x=6 "### ### # ########",//x=7 "#### ## ## ### #######",//x=8 "## O O # O ## #######",//x=9 "## # # # # #######",//x=10 "## ## # # ### #######",//x=11 "# #*### O # #########",//x=12 "## ######## # # #########",//x=13 "## * ##* # ######",//x=14 "# ##### ####### ######",//x=15 "# # # ## # ######",//x=16 "# # #### ###### # ######",//x=17 "# O ###### ######",//x=18 "## # ##O################",//x=19 "### ##OO###############",//x=20 "#########O###############",//x=21 "########OO###############",//x=22 "########O################",//x=23 "########x################" //x=24 };//y=0123456789qwertyuiopasdfg x=4; y=2; p=24; q=8; for(i=0;i<=24;i++) puts(a2[i]); while(x!=p||y!=q) { ch=getch(); if(ch==80)//下 { if(a2[x+1][y]!='#') { if(a2[x+1][y]=='O' && a2[x+2][y]!='#') { a2[x+1][y]=' '; a2[x+2][y]='O'; system("cls"); for(i=0;i<=24;i++)//要再打印一次,因为continue语句直接跳回开头了。 puts(a2[i]); continue; } if(a2[x+1][y]=='O' && a2[x+2][y]=='#' || a2[x+2][y]=='O' &&a2[x+1][y]=='O' ) { continue; } a2[x][y]=' '; x++; a2[x][y]='H'; } } if(ch==72)//上 { if(a2[x-1][y]!='#') { if(a2[x-1][y]=='O' && a2[x-2][y]!='#' && a2[x-2][y]!='O') { a2[x-1][y]=' '; a2[x-2][y]='O'; system("cls"); for(i=0;i<=24;i++) puts(a2[i]); continue; } if(a2[x-1][y]=='O' && a2[x-2][y]=='#' || a2[x-1][y]=='O' &&a2[x-2][y]=='O' ) { continue; } a2[x][y]=' '; x--; a2[x][y]='H'; } } if(ch==75)//左 { if(a2[x][y-1]!='#') { if(a2[x][y-1]=='O' && a2[x][y-2]!='#' && a2[x][y-2]!='O') { a2[x][y-1]=' '; a2[x][y-2]='O'; system("cls"); for(i=0;i<=24;i++) puts(a2[i]); continue; } if(a2[x][y-1]=='O' && a2[x][y-2]=='#' || a2[x][y-2]=='O' &&a2[x][y-1]=='O' ) { continue; } a2[x][y]=' '; y--; a2[x][y]='H'; } } if(ch==77)//右 { if(a2[x][y+1]!='#') { if(a2[x][y+1]=='O' && a2[x][y+2]!='#') { a2[x][y+1]=' '; a2[x][y+2]='O'; system("cls"); for(i=0;i<=24;i++) puts(a2[i]); continue; } if(a2[x][y+1]=='O' && a2[x][y+2]=='#' || a2[x][y+2]=='O' &&a2[x][y+1]=='O' ) { continue; } a2[x][y]=' '; y++; a2[x][y]='H'; } } system("cls"); for(i=0;i<=24;i++) puts(a2[i]); v1++; printf("%d步",v1); if(b==2) { continue; } if(a2[6][7] == 'O' && a2[12][6] == 'O' && a2[5][10] == 'O' && a2[14][9] == 'O') { a2[19][8] = ' '; a2[20][8] = ' '; a2[22][8] = ' '; a2[23][8] = ' '; b++; } if(a2[14][3]=='O') { a2[20][9] = ' '; a2[21][9] = ' '; a2[22][9] = ' '; b++; } } return 0; printf("你赢了!!!") system("pause"); }