b92902xxx 板


LINE

#include<windows.h> #include <conio.h> #include <stdlib.h> #include <string.h> #include <time.h> #include <iostream> //#include <iomanip.h> //不引出OMANIP时使用 //#include <utilwin32.h> const char ESC = 0x1B; //逸出编码 using namespace std; class snack { //蛇的物件 public: bool visible; //以次代表蛇的长度 int x; int y; snack(void); /*{ //建构元 visible = false; x=0; y=0; }*/ }; snack::snack(void) { visible = false; x=0; y=0; } class Pos { //定义locate private: int x; int y; public: Pos(int x,int y) { Pos::x = x; Pos::y=y; } void locate (ostream & os) { os << ESC << '[' << x << ';' << y << ']'; } }; template <class Type> class OMANIP { //自iomanip.h引出样版 private: Type i; ostream& (*f)(ostream&,Type); public: OMANIP (ostream& (*ff)(ostream&, Type),Type ii) : f(ff), i(ii) {} friend ostream& operator << (ostream& os,OMANIP& m) {return m.f(os,m.i);} }; ostream & locate(ostream& os,Pos xy) //Locate { if (os==cout) xy.locate(os); return(os); } OMANIP<Pos> locate(int x,int y) { Pos xy(x,y); return ( OMANIP<Pos>(locate,xy) ); } ostream& cls (ostream& os) //清除萤幕 { if (os == cout) os << ESC << "[2J"; return(os); } int main () { srand(time(0)); //乱数种子 snack player[100]; //蛇最长可达50个 int direction = 0; //上=1 下=2 左=3 右=4 int c1,c2,i,j; int comx,comy; //东西的座标 //定义 //绘制新东西 j=rand()%40; comx = j*2; j=rand()%24; comy = j; gotoxy(comx,comy); cout << "★"; //蛇定义 player[0].visible = true; player[0].x = 20; player[0].y = 12; gotoxy(player[0].x,player[0].y); cout << "█"; direction = 4; //游戏开始 begin: if (kbhit()) { c1 = getch(); if ((c1 == 0xe0)||(c1==00)) //当按上下左右键时 { c2 = getch(); switch (c2) { case 72:direction = 1;break; //up case 80:direction = 2;break; //down case 75:direction = 3;break; //left case 77:direction = 4;break; //right } } else { gotoxy(40,12); cout <<"离开游戏\n"; return(0); } }//end if for ( i=98;i>=0;i--) { //蛇继续前进 if (player[i].visible == true) { //gotoxy(1,i*5+1); //cout << i ; if (player[i+1].visible == false) { gotoxy(player[i].x,player[i].y); //清原迹 cout << " "; } switch (direction) { case 1: //up if (i==0) {player[0].y = player[0].y-1;} else {player[i].x = player[i-1].x;player[i].y = player[i-1].y;} break; case 2: //down if (i==0) {player[0].y = player[0].y+1;} else {player[i].x = player[i-1].x;player[i].y = player[i-1].y;} break; case 3: //left if (i==0) {player[0].x = player[0].x-2;} else {player[i].x = player[i-1].x;player[i].y = player[i-1].y;} break; case 4: //right if (i==0) {player[0].x = player[0].x+2;} else {player[i].x = player[i-1].x;player[i].y = player[i-1].y;} break; //以上是采後一个等於前一个的座标 } // end case gotoxy(player[i].x,player[i].y); //绘新物 cout << "█"; } // end if } // end for for (j=1;j<100;j++) { //碰到自己身体时 if ((player[0].x == player[j].x)&&(player[0].y == player[j].y)&&(player[j].visible=true)) { gotoxy(40,12); cout << "游戏结束\n"; return (0); } } if ((player[0].x == comx)&&(player[0].y == comy)) { //吃到东西时 for (j=1;j<100;j++) { //蛇加长 if (player[j].visible == false ) { player[j].visible = true; player[j].x = player[j-1].x; player[j].y = player[j-1].y; goto next1; //跳出for } // end if } // end for next1: //绘制新东西 j=rand()%38; comx = j*2+2; j=rand()%23; comy = j+1; gotoxy(comx,comy); cout << "★"; for (j=0;j<100;j++) { //在身体上时 if ((comx==player[j].x)&&(comy==player[j].y)) goto next1; } else if ((player[0].x > 79)||(player[0].x < 1)) { //碰到左右两避时 gotoxy(40,12); cout << "游戏结束\n"; return (0); } else if ((player[0].y > 23)||(player[0].y < 1)) { //碰到上下两避时 gotoxy(40,12); cout << "游戏结束\n"; return (0); } Sleep(100); //游戏延迟 goto begin; //继续游戏直到按ESC离开 // cout <<"direction="<<direction<<'\n'; system("pause"); return 0; } ================================= 跑不出来 我的贪食蛇 (泣) --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.115.49.155
1F:推 lfst:好眼熟..这不是C++嘛= =140.112.246.171 04/13
2F:→ egria:建议你拿去C_and_CPP版 问问看 61.224.64.123 04/13







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:BuyTogether站内搜寻

TOP