C语言模仿文字游戏
? 剛學(xué)了一學(xué)期的C語言,記錄一下
?
#include <stdio.h> #include <Windows.h> #include <conio.h> #include <time.h> #include <stdlib.h> #include <string.h> #define SIZE sizeof(struct chizu) struct de_ta {int ima;//現(xiàn)在的關(guān)卡 }de_ta; struct chizu {int x;struct chizu *tsugi; }; int lianbiao=0;//鏈表是否存在的判斷 int panduanjikann;//判斷函數(shù)中時(shí)間 int npcaiii=time(NULL); bool huanchong=0; //布爾型 HANDLE *houtpoint;//句柄指針 用于雙重緩沖 struct chizu *head; //鏈表首地址 int chizu1[10][10]= { {2,2,2,2,2,2,2,2,2,2}, {2,0,0,0,0,0,0,0,0,2}, {2,-1,9,7,10,6,11,12,0,2}, {2,0,7,7,0,0,5,0,0,2}, {2,0,7,7,0,0,0,0,0,2}, {2,0,0,0,0,0,4,4,0,2}, {2,0,0,0,5,0,4,4,0,2}, {2,0,0,0,0,0,0,0,0,2}, {2,0,1001,1001,1001,1001,1001,1001,0,2}, {2,2,2,2,3,3,2,2,2,2}, }; char setsu[80];//說明對話等 char tenonaka[10]; char data1[10][30]; int chizu2[29][60]=//15木 1002葉 1001草 13瓦 2墻 14窗 8人 17人(npc2) { {0,0,13,13,13,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,13,13,13,13,13,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {13,13,13,13,13,13,13,13,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {13,13,13,13,13,13,13,13,13,0,0,1002,1002,1002,0,0,0,1002,1002,1002,0,0,0,1002,1002,1002,0,0,0,1002,1002,1002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {2,0,0,0,0,0,0,0,2,0,0,1002,1002,1002,0,0,0,1002,1002,1002,0,0,0,1002,1002,1002,0,0,0,1002,1002,1002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {2,0,14,0,0,0,14,0,2,0,0,1002,15,1002,0,0,0,1002,15,1002,0,0,0,1002,15,1002,0,0,0,1002,15,1002,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {2,0,0,0,3,0,0,0,2,0,0,0,15,0,0,0,0,0,15,0,0,0,0,0,15,0,0,0,0,0,15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {2,2,2,2,3,2,2,2,2,0,1001,1001,15,1001,1001,1001,1001,1001,15,1001,1001,1001,1001,1001,15,1001,1001,1001,1001,1001,15,1001,1001,1001,1001,0,0,0,2001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,-1,0,0,0,0,0,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,2002,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,20,0,0,22,0,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,25,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,19,0,0,0,0,0,0,0,0,0,21,0,0,0,0,0,0,0,0,23,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,25,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,226,26,26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,25,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,25,25,0,0,0,0,0,0,0}, {1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,1001,2,2,1001,1001,1001,1001,1001,1001,1001,1001,1001,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,25,25,25,25,0,0,0,0,0,0}, }; char data2[28][122]; char shangyibu='\0'; int chizu3[40][80]={ {0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0}, {0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0}, {13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0}, {13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0}, {2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0}, {2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0}, {2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0}, {2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0}, {2002,0,0,0,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0}, {0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0}, {13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0}, {13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0}, {2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0}, {2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0}, {2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0}, {2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,}, {0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0}, {0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0}, {13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0}, {13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0}, {2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0}, {2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0}, {2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0}, {2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,}, {0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0,0,0,13,13,13,13,13,0,0,0}, {0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0,0,13,13,13,13,13,13,13,0,0}, {13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0}, {13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0,13,13,13,13,13,13,13,13,13,0}, {2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0,2,0,0,0,0,0,0,0,2,0}, {2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0,2,0,14,0,0,0,14,0,2,0}, {2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,0,3,0,0,0,2,0,2,0,0,3,3,3,0,0,2,0}, {2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,2,3,2,2,2,2,0,2,2,2,3,3,3,2,2,2,0}, }; //兩個(gè)句柄用于雙重緩沖 HANDLE gamenn1 = CreateConsoleScreenBuffer(GENERIC_WRITE, //定義進(jìn)程可以往緩沖區(qū)寫數(shù)據(jù)FILE_SHARE_WRITE, //定義緩沖區(qū)可共享寫權(quán)限NULL,CONSOLE_TEXTMODE_BUFFER,NULL); HANDLE gamenn2 = CreateConsoleScreenBuffer(GENERIC_WRITE, //定義進(jìn)程可以往緩沖區(qū)寫數(shù)據(jù)FILE_SHARE_WRITE, //定義緩沖區(qū)可共享寫權(quán)限NULL,CONSOLE_TEXTMODE_BUFFER,NULL); HANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);//標(biāo)準(zhǔn)輸出的字變色 int yakux,yakuy,chizux,chizuy;//玩家坐標(biāo)和地圖大小 int main(void) {void setsume();void guanqia(int x);int shuchu(int x,int y,int z,int guanqia);void iku();int panduan(int x);FILE *fp;int sousa;int panduan0=0;SetConsoleTitle("文字ゲーム----zwk");//更改控制臺文字 setsume();if((fp=fopen("データ.dat","rb"))==NULL) {fp=fopen("データ.dat","wb");de_ta.ima=1;fwrite(&de_ta,sizeof(struct de_ta),1,fp);fclose(fp);fp=fopen("データ.dat","rb");}fread(&de_ta,sizeof(struct de_ta),1,fp);fclose(fp);printf("\n\n\t\t\t\t1.從頭開始 2.從上次開始 3.選擇關(guān)卡\n");koko:sousa=getch();switch(sousa) {case '1':de_ta.ima=1;break;case '2':break;case '3':{int ikuu; printf("\n\t\t\t\t\t輸入要去的關(guān)卡:");scanf("%d",&ikuu);de_ta.ima=ikuu;break;}default:goto koko;}system("cls");//清空標(biāo)準(zhǔn)緩沖區(qū)內(nèi)的數(shù)據(jù)防止退出時(shí)發(fā)現(xiàn)有字 SetConsoleTextAttribute(handle,4);achira:guanqia(de_ta.ima);//接下來一個(gè)循環(huán) 通關(guān)返回初始化地圖 printf("\n\n\n\n\n\n\n\t\t\t\t\t\t\t鬼隠し\n");while(1) {panduan0=shuchu(chizux,chizuy,panduan(de_ta.ima),de_ta.ima);if(panduan0) {de_ta.ima++;goto achira;}iku();} } void setsume() {SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),12);printf("\n\n\t\t\t\t\t 文字游戲(模仿版)\n");SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 15);puts("\n\t\t\t\t\tWSAD移動");puts("\t\t\t\t\tJ鍵交互,K鍵攻擊(攻擊可以打壞某些物品)");printf("\n\n\n\t\t............................按任意鍵繼續(xù)............................");getch(); system("cls"); } void guanqia(int x)//將關(guān)卡地圖給鏈表 用鏈表保證地圖大小可以自適應(yīng) {void mugennnaosu(int i,int j,int z);if(lianbiao) {//鏈表存在的話要先刪除再重新開辟內(nèi)存 struct chizu *p=head;for(int i=0;i<chizux*chizuy;i++) {head=head->tsugi;free(p);p=head;}//刪除鏈表完成 lianbiao=0;for(int i=0;i<28;i++)//清空緩沖區(qū) for(int j=0;j<122;j++)data2[i][j]='\0';}switch (x) {case 1:{yakux=2;yakuy=1;//玩家坐標(biāo) chizux=10;chizuy=10;//地圖大小 struct chizu*p,*p1;head=p=(struct chizu*) malloc(SIZE);for(int i=0;i<99;i++) {p1=(struct chizu*) malloc(SIZE);p->tsugi=p1;p=p1;}p->tsugi=NULL;//創(chuàng)建鏈表 for(int i=0;i<10;i++)for(int j=0;j<10;j++) {mugennnaosu(i,j,chizu1[i][j]);}//給鏈表賦值 lianbiao=1;break;}case 2:{panduanjikann=time(NULL); //時(shí)間用于自動運(yùn)動npc yakux=8;yakuy=4;//玩家坐標(biāo) chizux=29;chizuy=60;//地圖大小 struct chizu*p,*p1;head=p=(struct chizu*) malloc(SIZE);for(int i=0;i<1739;i++) {p1=(struct chizu*) malloc(SIZE);p->tsugi=p1;p=p1;}p->tsugi=NULL;//創(chuàng)建鏈表 for(int i=0;i<29;i++)for(int j=0;j<60;j++) {mugennnaosu(i,j,chizu2[i][j]);}//給鏈表賦值 lianbiao=1;break;}case 3:{panduanjikann=time(NULL); yakux=8;yakuy=4;//玩家坐標(biāo) chizux=40;chizuy=80;//地圖大小 struct chizu*p,*p1;head=p=(struct chizu*) malloc(SIZE);for(int i=0;i<3199;i++) {p1=(struct chizu*) malloc(SIZE);p->tsugi=p1;p=p1;}p->tsugi=NULL;//創(chuàng)建鏈表 for(int i=0;i<40;i++)for(int j=0;j<80;j++) {mugennnaosu(i,j,chizu3[i][j]);}//給鏈表賦值 lianbiao=1;break;} } } void iku()//移動玩家和玩家移動物品 要對鏈表進(jìn)行操作 玩家操作物品 {int mugennmiru(int i,int j);void mugennnaosu(int i,int j,int z);void mugennnaosuc(int i,int j,int z);void gotoxy(int i,int j); char sousa;int wupinx=-1,wupiny=-1;//物品坐標(biāo)為負(fù)時(shí) 不移動物品if(yakuy-1>=0) {if(mugennmiru(yakux,yakuy-1)<0) {wupinx=yakux;wupiny=yakuy-1;}}if(yakuy+1<=chizuy-1) {if(mugennmiru(yakux,yakuy+1)<0) {wupinx=yakux;wupiny=yakuy+1;}}if(yakux-1>=0) {if(mugennmiru(yakux-1,yakuy)<0) {wupinx=yakux-1;wupiny=yakuy;}}if(yakux+1<=chizux-1) {if(mugennmiru(yakux+1,yakuy)<0) {wupinx=yakux+1;wupiny=yakuy;}//中間 }koko:if(kbhit()) {sousa=getch();switch (sousa) {case 27:{FILE*fp;fp=fopen("データ.dat","wb");fwrite(&de_ta,sizeof(struct de_ta),1,fp);fclose(fp);exit(0);break;}case 'j':case 'J':{if(wupinx<0) {switch(shangyibu) {case 'w':{if(yakux-1<0) return;if(mugennmiru(yakux-1,yakuy)<2000) mugennnaosuc(yakux-1,yakuy,-1);break;}case 's':{if(yakux+1>chizux-1) return; if(mugennmiru(yakux+1,yakuy)<2000) mugennnaosuc(yakux+1,yakuy,-1);break;}case 'a':{if(yakuy-1<0) return;if(mugennmiru(yakux,yakuy-1)<2000) mugennnaosuc(yakux,yakuy-1,-1);break;}case 'd':{if(yakuy+1>chizuy-1) return; if(mugennmiru(yakux,yakuy+1)<2000) mugennnaosuc(yakux,yakuy+1,-1);break;}} }else mugennnaosuc(wupinx,wupiny,-1);break;}case 'k':case 'K':{switch(shangyibu) {case 'w':{if(yakux-1<0) return;if(mugennmiru(yakux-1,yakuy)>1000&&mugennmiru(yakux-1,yakuy)<2000) mugennnaosu(yakux-1,yakuy,0);break;}case 's':{if(yakux+1>chizux-1) return; if(mugennmiru(yakux+1,yakuy)>1000&&mugennmiru(yakux+1,yakuy)<2000) mugennnaosu(yakux+1,yakuy,0);break;}case 'a':{if(yakuy-1<0) return; if(mugennmiru(yakux,yakuy-1)>1000&&mugennmiru(yakux,yakuy-1)<2000) mugennnaosu(yakux,yakuy-1,0);break;}case 'd':{if(yakuy+1>chizuy-1) return; if(mugennmiru(yakux,yakuy+1)>1000&&mugennmiru(yakux,yakuy+1)<2000) mugennnaosu(yakux,yakuy+1,0);break;}} break;}case 'w'://要做移動玩家和手里的物品 手里最多拿一個(gè) case 'W':{if(yakux==0) return;if(wupinx>=0) {//需要移動物品和玩家 if(mugennmiru(yakux-1,yakuy)==0&&mugennmiru(wupinx-1,wupiny)==0) {mugennnaosu(yakux-1,yakuy,-1);mugennnaosu(yakux,yakuy,0);yakux-=1;yakuy=yakuy;//移動玩家mugennnaosu(wupinx-1,wupiny,mugennmiru(wupinx,wupiny));mugennnaosu(wupinx,wupiny,0);wupinx-=1;wupiny=wupiny;//移動物品 }else {if(yakux-2<0) goto kokow;if(mugennmiru(yakux-1,yakuy)<0&&mugennmiru(yakux-2,yakuy)==0) {//解決物品在玩家上的移動 mugennnaosu(wupinx-1,wupiny,mugennmiru(wupinx,wupiny));mugennnaosu(wupinx,wupiny,0);wupinx-=1;wupiny=wupiny;//移動物品mugennnaosu(yakux-1,yakuy,-1);mugennnaosu(yakux,yakuy,0);yakux-=1;yakuy=yakuy;//移動玩家}kokow:if(yakux-1<0) return;if(mugennmiru(yakux+1,yakuy)<0&&mugennmiru(yakux-1,yakuy)==0) {//解決物品在玩家下的移動 mugennnaosu(yakux-1,yakuy,-1);mugennnaosu(yakux,yakuy,0);yakux-=1;yakuy=yakuy;//移動玩家mugennnaosu(wupinx-1,wupiny,mugennmiru(wupinx,wupiny));mugennnaosu(wupinx,wupiny,0);wupinx-=1;wupiny=wupiny;//移動物品 }}}else {//如果不需要移動物品 只需要移動玩家 if(mugennmiru(yakux-1,yakuy)==0) {mugennnaosu(yakux-1,yakuy,-1);mugennnaosu(yakux,yakuy,0);yakux-=1;yakuy=yakuy;}}shangyibu='w';break;}case 's':case 'S':{if(yakux==chizux-1) return;if(wupinx>=0) {//需要移動物品和玩家 if(mugennmiru(yakux+1,yakuy)==0&&mugennmiru(wupinx+1,wupiny)==0) {mugennnaosu(yakux+1,yakuy,-1);mugennnaosu(yakux,yakuy,0);yakux+=1;yakuy=yakuy;//移動玩家mugennnaosu(wupinx+1,wupiny,mugennmiru(wupinx,wupiny));mugennnaosu(wupinx,wupiny,0);wupinx+=1;wupiny=wupiny;//移動物品 }else {if(yakux+2>chizux-1) goto kokos;if(mugennmiru(yakux+1,yakuy)<0&&mugennmiru(yakux+2,yakuy)==0) {//物品在玩家下方 mugennnaosu(wupinx+1,wupiny,mugennmiru(wupinx,wupiny));mugennnaosu(wupinx,wupiny,0);wupinx+=1;wupiny=wupiny;//移動物品 mugennnaosu(yakux+1,yakuy,-1);mugennnaosu(yakux,yakuy,0);yakux+=1;yakuy=yakuy;//移動玩家}kokos:if(yakux+1>chizux-1) return;if(mugennmiru(yakux-1,yakuy)<0&&mugennmiru(yakux+1,yakuy)==0) {//物品在玩家上方 mugennnaosu(yakux+1,yakuy,-1);mugennnaosu(yakux,yakuy,0);yakux+=1;yakuy=yakuy;//移動玩家mugennnaosu(wupinx+1,wupiny,mugennmiru(wupinx,wupiny));mugennnaosu(wupinx,wupiny,0);wupinx+=1;wupiny=wupiny;//移動物品 }}}else {//如果不需要移動物品 只需要移動玩家if(mugennmiru(yakux+1,yakuy)==0) {mugennnaosu(yakux+1,yakuy,-1);mugennnaosu(yakux,yakuy,0);yakux+=1;yakuy=yakuy;}}shangyibu='s';break;}case 'a':case 'A':{if(yakuy==0) return;if(wupinx>=0) {//需要移動物品和玩家 if(mugennmiru(yakux,yakuy-1)==0&&mugennmiru(wupinx,wupiny-1)==0) {mugennnaosu(yakux,yakuy-1,-1);mugennnaosu(yakux,yakuy,0);yakux=yakux;yakuy-=1;//移動玩家mugennnaosu(wupinx,wupiny-1,mugennmiru(wupinx,wupiny));mugennnaosu(wupinx,wupiny,0);wupinx=wupinx;wupiny-=1;//移動物品 }else {if(yakuy-2<0) goto kokoa;if(mugennmiru(yakux,yakuy-1)<0&&mugennmiru(yakux,yakuy-2)==0) { //物品在玩家左邊 mugennnaosu(wupinx,wupiny-1,mugennmiru(wupinx,wupiny));mugennnaosu(wupinx,wupiny,0);wupinx=wupinx;wupiny-=1;//移動物品mugennnaosu(yakux,yakuy-1,-1);mugennnaosu(yakux,yakuy,0);yakux=yakux;yakuy-=1;//移動玩家}kokoa:if(yakuy-1<0) return;if(mugennmiru(yakux,yakuy+1)<0&&mugennmiru(yakux,yakuy-1)==0) {//物品在玩家右邊 mugennnaosu(yakux,yakuy-1,-1);mugennnaosu(yakux,yakuy,0);yakux=yakux;yakuy-=1;//移動玩家mugennnaosu(wupinx,wupiny-1,mugennmiru(wupinx,wupiny));mugennnaosu(wupinx,wupiny,0);wupinx=wupinx;wupiny-=1;//移動物品 }} }else {//如果不需要移動物品 只需要移動玩家if(mugennmiru(yakux,yakuy-1)==0) {mugennnaosu(yakux,yakuy-1,-1);mugennnaosu(yakux,yakuy,0);yakux=yakux;yakuy-=1;}}shangyibu='a';break;}case 'd':case 'D':{if(yakuy==chizuy-1) return;if(wupinx>=0) {//需要移動物品和玩家 if(mugennmiru(yakux,yakuy+1)==0&&mugennmiru(wupinx,wupiny+1)==0) {mugennnaosu(yakux,yakuy+1,-1);mugennnaosu(yakux,yakuy,0);yakux=yakux;yakuy+=1;//移動玩家mugennnaosu(wupinx,wupiny+1,mugennmiru(wupinx,wupiny));mugennnaosu(wupinx,wupiny,0);wupinx=wupinx;wupiny+=1;//移動物品 }else {if(yakuy+2>chizuy-1) goto kokod;if(mugennmiru(yakux,yakuy+1)<0&&mugennmiru(yakux,yakuy+2)==0) {//物品在玩家右邊 mugennnaosu(wupinx,wupiny+1,mugennmiru(wupinx,wupiny));mugennnaosu(wupinx,wupiny,0);wupinx=wupinx;wupiny+=1;//移動物品 mugennnaosu(yakux,yakuy+1,-1);mugennnaosu(yakux,yakuy,0);yakux=yakux;yakuy+=1;//移動玩家}kokod:if(yakuy+1>chizuy-1) return;if(mugennmiru(yakux,yakuy-1)<0&&mugennmiru(yakux,yakuy+1)==0) {//物品在玩家左邊 mugennnaosu(yakux,yakuy+1,-1);mugennnaosu(yakux,yakuy,0);yakux=yakux;yakuy+=1;//移動玩家mugennnaosu(wupinx,wupiny+1,mugennmiru(wupinx,wupiny));mugennnaosu(wupinx,wupiny,0);wupinx=wupinx;wupiny+=1;//移動物品 }} }else {//如果不需要移動物品 只需要移動玩家if(mugennmiru(yakux,yakuy+1)==0) {mugennnaosu(yakux,yakuy+1,-1);mugennnaosu(yakux,yakuy,0);yakux=yakux;yakuy+=1;}}shangyibu='d';break;}default:goto koko;}} } int shuchu(int x,int y,int z,int guanqia)//輸出圖像 0是空白 -1是玩家 其他數(shù)為物品 -是可移動物品 { int i,j;void gotoxy(int i,int j);//移動光標(biāo) void setsumei(char a[80]);//輸出說明相關(guān) void strkurasu(char a[3],int i,int guanqia); //輸出圖像相關(guān) int mugennmiru(int x,int y);void te(char a[5]);//手中拿的東西 int ugokuxowari,ugokuyowari,ugokuxhajime,ugokuyhajime;//使地圖和輸出區(qū)域分開 實(shí)現(xiàn)鏡頭隨玩家移動的效果int ue,shita,uey,shitay;//距離上和距離下的距離int d;//用于data2數(shù)據(jù)的行 ue=yakux;shita=x-yakux;uey=yakuy;shitay=y-yakuy;if(x<=28) {ugokuxowari=x;ugokuxhajime=0;}else {if(ue<=shita) {//輸出上半邊 if(ue<14) ugokuxhajime=0;else ugokuxhajime=ue-14;ugokuxowari=ugokuxhajime+28;if(ugokuxowari>x) {ugokuxowari=x;ugokuxhajime=x-28;}}else {//輸出下半邊 if(shita<14) ugokuxowari=x;else ugokuxowari=x-(shita-14);ugokuxhajime=ugokuxowari-28;} }if(y<=60) {ugokuyhajime=0;ugokuyowari=y;}else {if(uey<=shitay) {//輸出左半邊 if(uey<30) ugokuyhajime=0;else ugokuyhajime=uey-30;ugokuyowari=ugokuyhajime+60;if(ugokuyowari>y) {ugokuyowari=y;ugokuyhajime=y-60;}}else {//輸出右半邊 if(shitay<30) ugokuyowari=y;else ugokuyowari=y-(shitay-30);ugokuyhajime=ugokuyowari-60;} }#if 0ugokuyowari=80;ugokuyhajime=20;#endifd=0;for(i=ugokuxhajime;i<ugokuxowari;i++) {for(j=ugokuyhajime;j<ugokuyowari;j++) {switch (mugennmiru(i,j)) {case 0:strkurasu(" ",d,de_ta.ima);break;case -1:strkurasu("我",d,de_ta.ima);break;case 2:strkurasu("墻",d,de_ta.ima);break;case -2:te("墻");strkurasu("墻",d,de_ta.ima);break;case 3:strkurasu("門",d,de_ta.ima);break;case -3:te("門");strkurasu("門",d,de_ta.ima);break;case 4:strkurasu("桌",d,de_ta.ima);break;case -4:te("桌");strkurasu("桌",d,de_ta.ima);break;case 5:strkurasu("凳",d,de_ta.ima);break;case -5:te("凳");strkurasu("凳",d,de_ta.ima);break;case 1001:strkurasu("草",d,de_ta.ima);break;case -1001:te("草");strkurasu("草",d,de_ta.ima);break;case 6:strkurasu("醒",d,de_ta.ima);break;case -6:te("醒");strkurasu("醒",d,de_ta.ima);break;case 7:strkurasu("床",d,de_ta.ima);break;case -7:te("床");strkurasu("床",d,de_ta.ima);break;case 2001:strkurasu("人",d,de_ta.ima);break;case -2001:te("人");strkurasu("人",d,de_ta.ima);break;case 9:strkurasu("從",d,de_ta.ima);break;case -9:te("從");strkurasu("從",d,de_ta.ima);break;case 10:strkurasu("上",d,de_ta.ima);break;case -10:te("上");strkurasu("上",d,de_ta.ima);break;case 11:strkurasu("過",d,de_ta.ima);break;case -11:te("過");strkurasu("過",d,de_ta.ima);break;case 12:strkurasu("來",d,de_ta.ima);break;case -12:te("來");strkurasu("來",d,de_ta.ima);break;case 13:strkurasu("瓦",d,de_ta.ima);break;case -13:te("瓦");strkurasu("瓦",d,de_ta.ima);break;case 14:strkurasu("窗",d,de_ta.ima);break;case -14:te("窗");strkurasu("窗",d,de_ta.ima);break;case 15:strkurasu("木",d,de_ta.ima);break;case -15:te("木");strkurasu("木",d,de_ta.ima);break;case 1002:strkurasu("葉",d,de_ta.ima);break;case -1002:te("葉");strkurasu("葉",d,de_ta.ima);break;case 16:strkurasu("路",d,de_ta.ima);break;case -16:te("路");strkurasu("路",d,de_ta.ima);break;case 8:strkurasu("人",d,de_ta.ima);break;case -8:te("人");strkurasu("人",d,de_ta.ima);break;case 17:strkurasu("屎",d,de_ta.ima);break;case -17:te("屎");strkurasu("屎",d,de_ta.ima);break;case 18:strkurasu("鈕",d,de_ta.ima);break;case -18:te("鈕");strkurasu("鈕",d,de_ta.ima);break;case 2002:strkurasu("牌",d,de_ta.ima);break;case 19:strkurasu("雞",d,de_ta.ima);break;//19-24都是雞 case -19:te("雞");strkurasu("雞",d,de_ta.ima);break;case 20:strkurasu("雞",d,de_ta.ima);break;case -20:te("雞");strkurasu("雞",d,de_ta.ima);break;case 21:strkurasu("雞",d,de_ta.ima);break;case -21:te("雞");strkurasu("雞",d,de_ta.ima);break;case 22:strkurasu("雞",d,de_ta.ima);break;case -22:te("雞");strkurasu("雞",d,de_ta.ima);break;case 23:strkurasu("雞",d,de_ta.ima);break;case -23:te("雞");strkurasu("雞",d,de_ta.ima);break;case 24:strkurasu("雞",d,de_ta.ima);break;case -24:te("雞");strkurasu("雞",d,de_ta.ima);break;case 25:strkurasu("石",d,de_ta.ima);break;case -25:te("石");strkurasu("石",d,de_ta.ima);break;case 26:strkurasu("欄",d,de_ta.ima);break;case -26:te("欄");strkurasu("欄",d,de_ta.ima);break;case 1003:strkurasu("蛋",d,de_ta.ima);break;case -1003:te("蛋");strkurasu("蛋",d,de_ta.ima);break;case 2003:strkurasu("車",d,de_ta.ima);break;}//負(fù)數(shù)為可搬運(yùn) 1-1000為可搬運(yùn) 1000-2000為可搬運(yùn)可破壞 2000以上為不可破壞不可移動 }d++;}switch(z) {case 1:setsumei("我:房間門被草堵住了");break;case 2:setsumei("我:我要怎么打開門?");break;case 3:return 1;break;case 4:setsumei("我:門鎖上了,進(jìn)不去");break;case 5:setsumei("人:讓我成為人上人,我就告訴你怎么離開這里");break;case 6:setsumei("這個(gè)人試圖逃跑");break;case 7:setsumei("有一個(gè)按鈕");break;case 8:setsumei("人上人:告訴你,有一個(gè)草下面藏了東西");break;case 9:setsumei("告示牌:不是所有字都可以被搬運(yùn),比如上面那人");break;case 10:setsumei("別被泥頭車創(chuàng)死了");break;break;}#if 1COORD coord={0,0};DWORD bytes = 0;huanchong=!huanchong;//切換輸出緩沖區(qū) if(!huanchong) {houtpoint = &gamenn1;}else {houtpoint = &gamenn2;}CONSOLE_CURSOR_INFO cci;cci.bVisible = 0;cci.dwSize = 1;SetConsoleCursorInfo(*houtpoint, &cci);//隱藏光標(biāo)WriteConsoleOutputCharacterA(*houtpoint,setsu,80, coord,&bytes);for(int as=0;as<50;as++) setsu[as]='\0';coord.X=60;WriteConsoleOutputCharacterA(*houtpoint,tenonaka,7, coord,&bytes);for(int as=0;as<10;as++) tenonaka[as]='\0';coord={0,1};if(chizux<=28) {for(i = 0; i <chizux; i++) {coord.Y++ ;WriteConsoleOutputCharacterA(*houtpoint,data1[i],20, coord,&bytes);data1[i][0]='\0';}}else {for(i = 0; i <28; i++) {coord.Y++ ;WriteConsoleOutputCharacterA(*houtpoint,data2[i],120, coord,&bytes);data2[i][0]='\0';}}#endifSetConsoleActiveScreenBuffer(*houtpoint);return 0; } int panduan(int x) { int mugennmiru(int i,int j);void mugennnaosu(int i,int j,int z);void npc_kuruma_migi(int x,int jibunn); void npcai(int jibunn);switch(x) {case 1:{struct chizu *p;p=head;while(p!=NULL) {if(p->x==1001||p->x==-1001) return 1;p=p->tsugi;}if(mugennmiru(8,4)==-1||mugennmiru(8,5)==-1) return 2;if(mugennmiru(9,4)==-1||mugennmiru(9,5)==-1) return 3;break;}case 2:{if(panduanjikann+1==time(NULL)) {panduanjikann+=1;npcai(8);npcai(19);npcai(20);npcai(21);npcai(22);npcai(23);npcai(24);}if(yakux<7&&yakuy<8) return 4;if(mugennmiru(7,21)==-18) return 3;if(mugennmiru(7,21)==0) mugennnaosu(7,21,18);if(yakux-1>0) {if(mugennmiru(yakux-1,yakuy)==2001) {if(mugennmiru(yakux,yakuy)==2001) return 8;return 5;}}if(yakux+2<=chizux-1) {if(mugennmiru(yakux+1,yakuy)==2001) {if(mugennmiru(yakux+2,yakuy)==8) return 8;return 5;}}if(yakuy+1<=chizuy-1) {if(mugennmiru(yakux,yakuy+1)==2001) {if(mugennmiru(yakux+1,yakuy+1)==8) return 8;return 5;}}if(yakuy-1>0) {if(mugennmiru(yakux,yakuy-1)==2001) {if(mugennmiru(yakux+1,yakuy-1)==8) return 8;return 5;}}if(yakux-1>0) {if(mugennmiru(yakux-1,yakuy)==8) return 6;}if(yakux+1<chizux-1) {if(mugennmiru(yakux+1,yakuy)==8) return 6;}if(yakuy+1<chizuy-1) {if(mugennmiru(yakux,yakuy+1)==8) return 6;}if(yakuy-1>0) {if(mugennmiru(yakux,yakuy-1)==8) return 6;}if(yakux-1>0) {if(mugennmiru(yakux-1,yakuy)==18) return 7;}if(yakux+1<chizux-1) {if(mugennmiru(yakux+1,yakuy)==18) return 7;}if(yakuy+1<chizuy-1) {if(mugennmiru(yakux,yakuy+1)==18) return 7;}if(yakuy-1>0) {if(mugennmiru(yakux,yakuy-1)==18) return 7;}if(yakux-1>0) {if(mugennmiru(yakux-1,yakuy)==2002) return 9;}if(yakux+1<chizux-1) {if(mugennmiru(yakux+1,yakuy)==2002) return 9;}if(yakuy+1<chizuy-1) {if(mugennmiru(yakux,yakuy+1)==2002) return 9;}if(yakuy-1>0) {if(mugennmiru(yakux,yakuy-1)==2002) return 9;}break;}case 3:{npc_kuruma_migi(9,2003);npc_kuruma_migi(18,2003); npc_kuruma_migi(19,2003);npc_kuruma_migi(20,2003);npc_kuruma_migi(29,2003); npc_kuruma_migi(30,2003);npc_kuruma_migi(31,2003);if(yakux-1>=0) {if(mugennmiru(yakux-1,yakuy)==2002) return 10;}if(yakux+1<=chizux-1) {if(mugennmiru(yakux+1,yakuy)==2002) return 10;}if(yakuy+1<=chizuy-1) {if(mugennmiru(yakux,yakuy+1)==2002) return 10;}if(yakuy-1>=0) {if(mugennmiru(yakux,yakuy-1)==2002) return 10;}if(mugennmiru(yakux,yakuy)!=-1) {yakux=8;yakuy=4;mugennnaosu(yakux,yakuy,-1);}break;}}return 0; } int mugennmiru(int i,int j)//將鏈表作為二維數(shù)組看 返回一個(gè)值 {int kazu;struct chizu *p;p=head;kazu=i*chizuy+j;for(int x=0;x<kazu;x++) p=p->tsugi;return (p->x); } void mugennnaosu(int i,int j,int z)//將鏈表作為二維數(shù)組看 修改鏈表中的數(shù)據(jù) {int kazu;struct chizu *p;p=head;kazu=i*chizuy+j;for(int x=0;x<kazu;x++) p=p->tsugi;p->x=z; } void mugennnaosuc(int i,int j,int z)//將鏈表作為二維數(shù)組看 修改鏈表中的數(shù)據(jù) * {int kazu;struct chizu *p;p=head;kazu=i*chizuy+j;for(int x=0;x<kazu;x++) p=p->tsugi;p->x*=z; } void gotoxy(int x,int y)//光標(biāo)定位函數(shù) {COORD p;//定義結(jié)構(gòu)體變量pHANDLE handle=GetStdHandle(STD_OUTPUT_HANDLE);//獲取當(dāng)前函數(shù)句柄p.X=x;p.Y=y;//將光標(biāo)的目標(biāo)移動位置傳遞給結(jié)構(gòu)體SetConsoleCursorPosition(handle,p);//移動光標(biāo) } void strkurasu(char a[5],int i,int guanqia) {switch(guanqia) {case 1:strcat(data1[i],a);break;case 2:strcat(data2[i],a);break;case 3:{strcat(data2[i],a);break;}} } void setsumei(char a[80]) {setsu[0]='\0';strcat(setsu,a); } void te(char a[5]) {strcat(tenonaka,"手中:");strcat(tenonaka,a); } void npcai(int jibunn) //npc移動ai 隨機(jī)移動靜止且有一個(gè)特殊動作 {int mugennmiru(int i,int j);void mugennnaosu(int i,int j,int z);srand(npcaiii);npcaiii+=3;npcaiii+=shangyibu;int panding,i,j,x=-1,y;panding=rand()%10+1;for(i=0;i<chizux;i++)for(j=0;j<chizuy;j++) if(mugennmiru(i,j)==jibunn) {x=i;y=j;}if(x<0) return;switch(panding) {case 1:{//左 if(y-1>=0&&mugennmiru(x,y-1)==0) {mugennnaosu(x,y,0);mugennnaosu(x,y-1,jibunn);}break;}case 2:{//右 if(y+1<=chizuy-1&&mugennmiru(x,y+1)==0) {mugennnaosu(x,y,0);mugennnaosu(x,y+1,jibunn);}break;}case 3:{//上 if(x-1>=0&&mugennmiru(x-1,y)==0) {mugennnaosu(x,y,0);mugennnaosu(x-1,y,jibunn);}break;}case 4:{//下 if(x+1<=chizux-1&&mugennmiru(x+1,y)==0) {mugennnaosu(x,y,0);mugennnaosu(x+1,y,jibunn);}break;}case 5:break;//靜止case 6:{//特殊動作 if(jibunn==19||jibunn==20||jibunn==21||jibunn==22||jibunn==23||jibunn==24) if(x+1<=chizux-1&&mugennmiru(x+1,y)==0) mugennnaosu(x+1,y,1003); break;}} } void npc_kuruma_migi(int x,int jibunn)//車的ai向右走 {int j,y,i=0;int mugennmiru(int i,int j);void mugennnaosu(int i,int j,int z);srand(npcaiii);npcaiii+=3;npcaiii+=shangyibu;if(rand()%2==0) {srand(npcaiii/4);for(j=0;j<chizuy;j++)if(mugennmiru(x,j)==jibunn) {i=1;y=j;}if(i) {if(y+1<=chizuy-1) mugennnaosu(x,y+1,jibunn);mugennnaosu(x,y,0);}else {if(rand()%5==0) mugennnaosu(x,0,jibunn);}} }?
總結(jié)
- 上一篇: Mbps、Kbps、KBps的关系
- 下一篇: 堆积木——GBQ4.0设置“统一设置安装