贪吃蛇在线游戏

贪吃蛇在线游戏

求"贪吃蛇"小游戏JAVA源代码一份

贪吃蛇 import java.awt.*; import java.awt.event.*; public class GreedSnake //主类 { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub new MyWindow(); } } class MyPanel extends Panel implements KeyListener,Runnable//自定义面板类,继承了键盘和线程接口 { Button snake[]; //定义蛇按钮 int shu=0; //蛇的节数 int food[]; //食物数组 boolean result=true; //判定结果是输 还是赢 Thread thread; //定义线程 static int weix,weiy; //食物位置 boolean t=true; //判定游戏是否结束 int fangxiang=0; //蛇移动方向 int x=0,y=0; //蛇头位置 MyPanel() { setLayout(null); snake=new Button[20]; food=new int [20]; thread=new Thread(this); for(int j=0;j{ food[j]=(int)(Math.random()*99);//定义20个随机食物 } weix=(int)(food[0]*0.1)*60; //十位*60为横坐标 weiy=(int)(food[0]%10)*40; //个位*40为纵坐标 for(int i=0;i{ snake[i]=new Button(); } add(snake[0]); snake[0].setBackground(Color.black); snake[0].addKeyListener(this); //为蛇头添加键盘监视器 snake[0].setBounds(0,0,10,10); setBackground(Color.cyan); } public void run() //接收线程 { while(t) { if(fangxiang==0)//向右 { try { x+=10; snake[0].setLocation(x, y);//设置蛇头位置 if(x==weix&&y==weiy) //吃到食物 { shu++; weix=(int)(food[shu]*0.1)*60; weiy=(int)(food[shu]%10)*40; repaint(); //重绘下一个食物 add(snake[shu]); //增加蛇节数和位置 snake[shu].setBounds(snake[shu-1].getBounds()); } thread.sleep(100); //睡眠100ms } catch(Exception e){} } else if(fangxiang==1)//向左 { try { x-=10; snake[0].setLocation(x, y); if(x==weix&&y==weiy) { shu++; weix=(int)(food[shu]*0.1)*60; weiy=(int)(food[shu]%10)*40; repaint(); add(snake[shu]); snake[shu].setBounds(snake[shu-1].getBounds()); } thread.sleep(100); } catch(Exception e){} } else if(fangxiang==2)//向上 { try { y-=10; snake[0].setLocation(x, y); if(x==weix&&y==weiy) { shu++; weix=(int)(food[shu]*0.1)*60; weiy=(int)(food[shu]%10)*40; repaint(); add(snake[shu]); snake[shu].setBounds(snake[shu-1].getBounds()); } thread.sleep(100); } catch(Exception e){} } else if(fangxiang==3)//向下 { try { y+=10; snake[0].setLocation(x, y); if(x==weix&&y==weiy) { shu++; weix=(int)(food[shu]*0.1)*60; weiy=(int)(food[shu]%10)*40; repaint(); add(snake[shu]); snake[shu].setBounds(snake[shu-1].getBounds()); } thread.sleep(100); } catch(Exception e){} } int num1=shu; while(num1>1)//判断是否咬自己的尾巴 { if(snake[num1].getBounds().x==snake[0].getBounds().x&&snake[num1].getBounds().y==snake[0].getBounds().y) { t=false; result=false; repaint(); } num1–; } if(x=this.getWidth()||y=this.getHeight())//判断是否撞墙 { t=false; result=false; repaint(); } int num=shu; while(num>0) //设置蛇节位置 { snake[num].setBounds(snake[num-1].getBounds()); num–; } if(shu==15) //如果蛇节数等于15则胜利 { t=false; result=true; repaint(); } } } public void keyPressed(KeyEvent e) //按下键盘方向键 { if(e.getKeyCode()==KeyEvent.VK_RIGHT)//右键 { if(fangxiang!=1)//如果先前方向不为左 fangxiang=0; } else if(e.getKeyCode()==KeyEvent.VK_LEFT) { if(fangxiang!=0) fangxiang=1; } else if(e.getKeyCode()==KeyEvent.VK_UP) { if(fangxiang!=3) fangxiang=2; } else if(e.getKeyCode()==KeyEvent.VK_DOWN) { if(fangxiang!=2) fangxiang=3; } } public void keyTyped(KeyEvent e) { } public void keyReleased(KeyEvent e) { } public void paint(Graphics g) //在面板上绘图 { int x1=this.getWidth()-1; int y1=this.getHeight()-1; g.setColor(Color.red); g.fillOval(weix, weiy, 10, 10);//食物 g.drawRect(0, 0, x1, y1); //墙 if(t==false&&result==false) g.drawString("GAME OVER!", 250, 200);//输出游戏失败 else if(t==false&&result==true) g.drawString("YOU WIN!", 250, 200);//输出游戏成功 } } class MyWindow extends Frame implements ActionListener//自定义窗口类 { MyPanel my; Button btn; Panel panel; MyWindow() { super("GreedSnake"); my=new MyPanel(); btn=new Button("begin"); panel=new Panel(); btn.addActionListener(this); panel.add(new Label("begin后请按Tab键选定蛇")); panel.add(btn); panel.add(new Label("按上下左右键控制蛇行动")); add(panel,BorderLayout.NORTH); add(my,BorderLayout.CENTER); setBounds(100,100,610,500); setVisible(true); validate(); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.exit(0); } }); } public void actionPerformed(ActionEvent e)//按下begin按钮 { if(e.getSource()==btn) { try { my.thread.start(); //开始线程 my.validate(); } catch(Exception ee){} } } }

都有什么大作战游戏有球球,贪吃蛇,丛林,坦克,弓箭手,还有啥?…

这个比较轻松,首先考虑的是,它是贪食蛇,所以,这个得有蛇类,蛇会吃所有的物体(因为它贪吃)。

因此还会有物体类蛇所吃的所有的物体都应该可以画在界面上,那么这些类基本都应该实现一个自定义的超级接口IDraw(随便取名)。

既然可以画出来给人看,又可以被蛇吃掉。

那么这个接口应该定义。

画(Graphics g);和 被吃(蛇对象)的方法游戏里面蛇是由多段的身体组成,比如一个蛇头,多块蛇身(多块是为了增加蛇的机动性),一个蛇尾。

把蛇分成多个段,比如一条蛇初始值为5段,,第一段为蛇头,最后一段为蛇尾,其他中间位蛇身。

因此蛇是由Body类组成,body实现IDraw接口,实现将自己画出来的方法。

包含的属性描述自己的坐标,方向,还有属于蛇头,蛇尾还是蛇体。

被吃的方法,传入蛇对象,将蛇对象的属性蛇尾死亡。

其他的实现idraw接口的物体,比如苹果类,同样要实现画出自己,和被吃的方法。

传入蛇参数,调用蛇的成长方法,让蛇长大。

蛇类,应该由一个list的Body组成,内部肯定有一个List属性,是否死亡等等。

通常会实现移动,吃(Idraw),成长,还有IDraw接口。

成长方法让自己增加一段蛇身。

draw方法基本上就是遍历调用List的draw方法。

吃方法,实现遍历所有的可以在界面上画出来的物体(也就是所有的实现了IDraw接口的对象),如果这些对象和自己碰撞了,就调用该对象的 被吃 方法,将作为参数自己传入,然后由该物体决定,蛇是死亡还是成长。

所有实现了IDraw接口的对象会由Game类传入。

Game类来维护整个游戏,负责响应用户操作,初始化并保存界面上的所有实现IDraw接口的实体类。

蛇的移动方法的参数也将需要用到Game类所维护的用户输入来确定移动方向。

蛇每移动一步,就应该画出自己,蛇的移动轨迹很好算,只需要按照用户输入的方向来判断,蛇头新的方向和坐标,然后蛇身和蛇尾相继获取前一个Body的状态和坐标。

比如所,蛇头body向上移动一格,蛇头有了新坐标,那么第二个蛇身的坐标就是原来蛇头的坐标,第三个蛇身则是第二个蛇身的坐标和方向。

依此类推。

大体上就是这样。

还算简单,如果还不理解的话可以在问。

用C++编写的小游戏源代码

以下是贪吃蛇源代码:#include#include#include#include#include#define N 21void gotoxy(int x,int y)//位置函数{COORD pos;pos.X=2*x;pos.Y=y;SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos);}void color(int a)//颜色函数{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);}void init(int apple[2])//初始化函数(初始化围墙、显示信息、苹果){int i,j;//初始化围墙int wall[N+2][N+2]={{0}};for(i=1;i{for(j=1;jwall[i][j]=1;}color(11);for(i=0;i{for(j=0;j{if(wall[i][j])coutelse cout}cout}gotoxy(N+3,1);//显示信息color(20);coutgotoxy(N+3,2);color(20);coutgotoxy(N+3,3);color(20);coutapple[0]=rand()%N+1;//苹果apple[1]=rand()%N+1;gotoxy(apple[0],apple[1]);color(12);cout}int main(){int i,j;int** snake=NULL;int apple[2];int score=0;int tail[2];int len=3;char ch=’p’;srand((unsigned)time(NULL));init(apple);snake=(int**)realloc(snake,sizeof(int*)*len);for(i=0;isnake[i]=(int*)malloc(sizeof(int)*2);for(i=0;i{snake[i][0]=N/2;snake[i][1]=N/2+i;gotoxy(snake[i][0],snake[i][1]);color(14);cout}while(1)//进入消息循环{tail[0]=snake[len-1][0];tail[1]=snake[len-1][1];gotoxy(tail[0],tail[1]);color(11);coutfor(i=len-1;i>0;i–){snake[i][0]=snake[i-1][0];snake[i][1]=snake[i-1][1];gotoxy(snake[i][0],snake[i][1]);color(14);cout}if(kbhit()){gotoxy(0,N+2);ch=getche();}switch(ch){case ‘w’:snake[0][1]–;break;case ‘s’:snake[0][1]++;break;case ‘a’:snake[0][0]–;break;case ‘d’:snake[0][0]++;break;default: break;}gotoxy(snake[0][0],snake[0][1]);color(14);coutSleep(abs(200-0.5*score));if(snake[0][0]==apple[0]&&snake[0][1]==apple[1])//吃掉苹果后蛇分数加1,蛇长加1{score++;len++;snake=(int**)realloc(snake,sizeof(int*)*len);snake[len-1]=(int*)malloc(sizeof(int)*2);apple[0]=rand()%N+1;apple[1]=rand()%N+1;gotoxy(apple[0],apple[1]);color(12);coutgotoxy(N+5,3);color(20);cout}if(snake[0][1]==0||snake[0][1]==N||snake[0][0]==0||snake[0][0]==N)//撞到围墙后失败{gotoxy(N/2,N/2);color(30);coutfor(i=0;ifree(snake[i]);Sleep(INFINITE);exit(0);}}return 0;}参考资料:从C++吧看来的

中国所有网络游戏的名字??

[A]安魂曲 傲世ol 傲神传 ATrix Aeronauts 暗黑之门 Atlantica A3 阿猫阿狗ol [B]霸王 飚车 碧雪情天 部族战争 边缘 宝宝总动员 搏客Ol 宝贝坦克 缤纷学院 布鲁卡卡 北斗神拳OL 宝宝蹦蹦 百战天虫 哔哔曼 冰冰帮 霸业 [C]宠物森林 传奇3G 传奇世界 传奇 超级舞者 传世 超级乒乓 创网大富翁 武林大富翁 穿越 穿越火线 锤锤online 超级乐者 春秋Q传 赤壁 创世之光 彩虹岛 超级跑跑 冲锋OL 传说 彩色江湖 超女世界 苍天 成吉思汗 赤龙剑心 宠物王 重生 彩虹冒险 [D]大富翁OL 地下城与勇士 夺宝旋风 大冒险 刀剑 东方传说 大唐风云 刀OL 帝国崛起 大话战国ol 都市2046 大唐 大话西游3 大话西游II 大唐豪侠 大海战Ⅱ 帝国传奇 大航海Online 第二人生 德州扑克 刀郎剑客 大清帝国 夺宝奇兵 大法师 豆豆秀 帝国在线 第四世界 [E]恶棍城市 EVE Egg Life E块冒险 EQ2 EQ [F]疯狂飚车 疯狂派对 FIFA OL FIFA2 飞天风云 反恐行动 疯狂赛车Ⅱ 凤舞天骄 风云 疯狂卡丁车 反恐炸弹人 疯狂弹头 风火之旅 千年3 飞飞 疯狂赛车 封印传说 风流工作室 疯狂石头 非常三国 封神传说 封神榜2 方便面三国 Free Jack 疯狂坦克II 封神榜 [G]鬼吹灯OL 钢甲洪流 GF大冒险 滚滚球 国威 光荣OL 功夫 光之国度 功夫小子 国粹麻将 光线飞车 功夫世界 光明与黑暗 功夫灌篮 咕噜咕噜 怪兽总动员 [H]航海世纪 辉煌 混乱冒险 魂OL 海天英雄传 海盗王 合金战纪 海之乐章 海之乐章 欢乐君主 黄易群侠传Ol 幻想大陆 幻灵游侠 华夏II 黑暗与光明 幻想之旅 幻想世界 滑板王 海战英豪 红宝石 火线任务 海盗时代 互动武侠 红月 华夏 [J]巨人 剑侠世界 劲乐团 巨商 劲舞团 江湖Online 街头篮球 机甲世纪 惊天动地 极道车神 紧急升空 极速战车 九鼎 劲爆足球 决战 江山 嘉游 金庸群侠传2 机战 激战 精灵复兴 九洲英雄 劲舞世界 机动战士敢达在线 巨星OL 金刚OL 剑网3 劲爆滑板 极限街区 久游GT 绝对女神 骄城 机甲战神 剑网1 金庸群侠传 剑网2 [K]科隆2 快乐西游 科洛斯 卡米洛黑暗时代 昆仑Onweb 抗战online 开心 开创世纪 口袋西游 开天 凯旋[L]绿野仙踪 龙腾世界 洛奇 乱OL 龙Online 龙虎门 乱武天下 龙骑士online 乱舞春秋 六圣 龙与地下城 灵游记 龙影 流星花园 LUNA 恋爱盒子 Lazeska LEVEL-R 洛奇英雄传 浪漫庄园 龙魂 猎人MM 雷霆战队 轮回 领土 乱世演义 [M]梦幻龙族 梦幻古龙 魔咒编年史 梦幻红楼 梦幻国度 密传 美丽世界 命运 魔域 猛将 冒险岛 魔牌 猛将传 魔法精灵 麻吉大冒险 魔幻盛典 魔幻飞板 魔法火枪团 明星斗地主ol 明星3缺1ol 魔法飞球2 魔界 魔力碰碰牌 梦想世界 魔幻大陆 梦幻西游 魔兽世界 魔力宝贝II 牧场OL 梦世界 迷你国 Mythos MDancer 梦幻之星 梦想 魔剑 魔幻森林 魔力宝贝 [N]NES OL NBA OL [O]OGame银河帝国 On Air [P]拍拍部落 跑跑卡丁车 泡泡堂 飘流幻境 Pogo 炮炮火枪手 pp球 泡泡岛 破天一剑 Paper Man 缥缈 POPOMING 破碎银河系 苹果派 飘飘 [Q]圈圈叉叉 龙神传说 奇侠 QQ音速 QQ三国 奇迹世界 QQ炫舞 QQ飞行岛 QQ华夏 QQ自由幻想 QQ飞车 奇迹MU QQ幻想 奇域 抢滩登陆OL 奇缘 七龙珠OL 千年 骑士2.0 [R]R2 热血江湖 热血英豪 如来丢丢球 热血 热舞派对 如来神掌 RUSH-冲锋 Rohan RFC 日月传说 荣耀 人间 RFonline [S]三国传奇 神兵ol 丝路传说 世界领袖 少林传奇 水浒Q传 山河 三国策IV SOS 盛大富翁 三国豪侠传 神话国际 三国争霸 三国风云 上海风暴 三毛欢乐派 生存 蜀山OL 三国策V 神兵ol 食神争霸 水浒历险 十面埋伏 生肖传说 杀手OL 三国帝王战 神泣 盛大动感DJ 时空之泪 神界Online 双月OL 数码精灵 神迹 三国演义 圣战 莎木OL Earthrise 水晶时代 时空 神咒 沙滩排球 生死格斗OL 三国志OL 十二之天2 神话 搜神记 神之领域 神州天戈 使命 赛车OL 三国群英传 [T}Tabula Rasa 天空神话 天地OL 天尊 探索OL 天之炼狱 天之游侠 天方夜谭 跳跳堂 童年ol 推推侠 天黑请闭眼 天羽传奇 天使之恋 天下贰 天山英雄传 天机 特种部队 突袭OL 踢踢球 天上人间 特勤队 投名状 天骄2 天堂Ⅱ 天堂 童话 天下无双 挑战 铁血三国志 The Day Twinkle 图腾三国 跳跃之门 天骄3 天关战纪 天外OL 天翼之链 天地 天煞 天使 天剑 贪吃蛇 坦克宝贝 天之炮炮 吞食天地 [W]唯舞独尊 武侠世界 问鼎 问道 武林外传 武魂II 玩酷 武林群侠传OL 舞街区 完美国际 无厘头快快ol 网络三缺一 完美世界 网络三缺一 武林外史 万王之王2 万王之王 [X]战牌坊 笑闹天宫 新蜀山剑侠 星门世界 星空奇缘 新墨香 侠义道 希望ol 仙界传 新天骄 新石器时代 星钻物语 龙族 小&花OL 仙侣奇缘2 新古龙群侠传 信仰 新天地 新倚天 新郑和 新三国策IV 新星际家园 XBA篮球经理 侠客天下 星空幻想 新破天 仙道 雄霸天下 信长野望OL 新天上碑 侠义道II 新天翼 新英雄年代 新社会 轩辕剑OL 轩辕二 仙侣奇缘 寻仙 Xplay 仙境传说2 星球计划 新仙侣奇缘 仙剑奇侠传OL 星战情缘 星际OL 幸福花园 西游伏魔录 新西游记 新英雄门 仙境传说 [Y]英雄之门 炎龙骑士团OL 英雄岛 由我世界 预言Online 英雄年代 欲望龙之故乡 悠游三国 音乐无限 异域争锋 永恒之塔 炎黄传说 倚天屠龙 游戏人生 永恒 英雄II 英雄OL 雅典娜 伊苏OL 英雄无敌OL 英雄王座 倚天II 一骑当千 羽音 英雄连OL 遗忘传说 [Z]战神传说 自在飞车 征战…

oppo手机玩游戏怎么才能不用自带oppo账号登陆

下载其他平台的手机游戏不就可以了。

1、所谓手机游戏就是可以在手机上进行的游戏。

2、随着科技的发展,现在手机的功能也越来越多,越来越强大.而手机游戏也远远不是我们印象中的什么“俄罗斯方块”“贪吃蛇”之类画面简陋,规则简单的游戏,进而发展到了可以和掌上游戏机媲美,具有很强的娱乐性和交互性的复杂形态了。

3、2011年,随着智能手机和3G网络的普及进一步深化,移动互联网迎来爆发式增长。

业界普遍认为,移动互联网是一个比互联网大数倍的万亿级产业,手机将作为未来人类线上生活娱乐的最主要载体而存在。

现在有什么游戏好玩? 免费的

QQ音速 音乐竞技 下载区 QQ号登陆 韩Seed9 腾讯 凤舞天骄 MMORPG – – 目标软件 目标软件 – 万王之王2 MMORPG – – 雷爵 亚洲互动 – 骑士2.0 MMORPG – – Mgame、Noah 搜狐 评论 传奇世界 MMORPG 690MB 游戏中注册 盛大 盛大 – 热血传奇 MMORPG 483MB 游戏中注册 韩Wemade 盛大 – 仙侣奇缘II MMORPG 553MB – 游戏巅峰 金山 评论/评测 傲世 3D·MMSRPG 1G 注册 目标软件 目标软件 – 魂online MMORPG 447MB 注册 烽火游戏 网捷信 – 超级舞者 MMOETC 709MB 注册 久游 久游 – 飘流幻境 MMORPG 486MB 注册 中华网龙 中广网 评论 新石器时代 MMORPG 1G 注册 华义 金山 – 跑跑卡丁车 MMORAC 103MB 注册 Nexon 世纪天成 评论 金庸群侠传 MMORPG 1.57GB 注册 游龙在线 智冠电子 – 辉煌 MMORPG 下载 注册 韩HAANSOFT 海科数码 …展开QQ音速 音乐竞技 下载区 QQ号登陆 韩Seed9 腾讯 凤舞天骄 MMORPG – – 目标软件 目标软件 – 万王之王2 MMORPG – – 雷爵 亚洲互动 – 骑士2.0 MMORPG – – Mgame、Noah 搜狐 评论 传奇世界 MMORPG 690MB 游戏中注册 盛大 盛大 – 热血传奇 MMORPG 483MB 游戏中注册 韩Wemade 盛大 – 仙侣奇缘II MMORPG 553MB – 游戏巅峰 金山 评论/评测 傲世 3D·MMSRPG 1G 注册 目标软件 目标软件 – 魂online MMORPG 447MB 注册 烽火游戏 网捷信 – 超级舞者 MMOETC 709MB 注册 久游 久游 – 飘流幻境 MMORPG 486MB 注册 中华网龙 中广网 评论 新石器时代 MMORPG 1G 注册 华义 金山 – 跑跑卡丁车 MMORAC 103MB 注册 Nexon 世纪天成 评论 金庸群侠传 MMORPG 1.57GB 注册 游龙在线 智冠电子 – 辉煌 MMORPG 下载 注册 韩HAANSOFT 海科数码 GF大冒险 MMOPUZ 186MB 注册 联众 联众 评论 飞飞 MMORPG 225MB 注册 AEONSOFT 网易 评论 魔牌online MMOPUZ 42MB 注册 希奇信息 久游 评论 凯旋 MMORPG 710MB QQ号登陆 IMAZIC 腾讯 评论 科隆2 MMORPG 550MB 注册 Esofnet 久游 – 奇侠 MMORPG 359MB 注册 XiahStudio 赛维创世 评论 武林外史 MMORPG 391MB 注册 CR-SPACE 盛大 – 贪吃蛇 MMOPUZ 36MB 注册 久游 久游 – 图形江湖 MMORPG 142MB 注册 天云阁 新易科技 – 希望OL MMORPG 398MB 注册 GRIGON 光宇华夏 评论 江湖OL MMORPG 844MB 注册 八八科技 八八科技 评论 征途 MMORPG 1.06GB 注册 征途网络 征途网络 评论 锤锤 休闲类 38.73MB 注册 掌上灵通 – 星钻物语 MMORPG 345MB 注册 Ntreev 游戏米果 评论 仙界传 MMORPG 582MB 注册 IGS 宏象 评论 天方夜谭 MMORPG 900MB 游戏中注册 唯晶科技 中广网 评论 天之游侠 MMORPG 756MB 注册 天之图 天之图 评论 热血英豪 MMORPG – 注册 维亚泰克 盛大 – 美丽世界 MMORPG 266MB 注册 韩国eSofnet 清华同方 – 街头篮球 MMOSPG 131MB 注册 JC 天联世纪 评论 梦幻国度 MMORPG 587MB 注册 上海盛大 上海盛大 评论 龙族 MMORPG 600MB 韩Esoft – – 海盗王 MMORPG 289MB 注册 嘉思华 嘉思华 评论 泡泡堂 MMOPUZ 40MB 游戏中注册 – 盛大网络 – 盛大富翁 MMOTAB – 注册 盛大网络 盛大网络 评论 冒险岛 MMOACT 283MB 游戏中注册 韩国WIZET 盛大网络 – 天骄 MMORPG 300M 注册 目标软件 目标软件 – 劲舞团 音乐MMO 252MB 注册 – 久游 评论 热血江湖 MMORPG 261MB 注册 Mgame 一起玩 评论 飚车 MMORAC(3D) 220MB 注册 SEGA 天纵 评测 劲乐团 休闲音乐 97MB 注册 O2-MEDIA 久游 评测 命运Ⅱ MMORPG 163MB 注册 韩Joy Impact 欢乐数码 – 密传 MMORPG 244MB 注册 韩Hanbit soft 欢乐数码 – 猎人MM MMORPG 153MB 注册 韩XAI MEDIA 久游网 – 彩虹冒险 休闲动作 133MB 注册 韩hanbitsoft 欢乐数码 -收起

求一C++小游戏源代码 简单点的?!!谢谢

#include#include#include#define LEFT 0x4b00 #define RIGHT 0x4d00 #define DOWN 0x5000 #define UP 0x4800 #define ESC 0x011b int i,key; int score=0; int gamespeed=32000; struct Food /*食物的结构体*/ { int x; /*食物的横坐标*/ int y; /*食物的纵坐标*/ int yes; /*食物是否出现的变量*/ }food; struct Snack /*蛇的结构体*/ { int x[N]; int y[N]; int node; /*蛇的节数*/ int direction; /*蛇的方向*/ int life; /*蛇的生命,0活着,1死亡*/ }snake; void Init(void); /*图形驱动*/ void Close(void); /*关闭游戏函数*/ void DrawK(void); /*画图函数*/ void GameOver(void);/*输出失败函数*/ void GamePlay(); /*游戏控制函数 主要程序*/ void PrScore(void); /*分数输出函数*/ DELAY(char ch)/*调节游戏速度*/ { if(ch==’3′) { delay(gamespeed); /*delay是延迟函数*/ delay(gamespeed); } else if(ch==’2′) { delay(gamespeed); } } Menu()/*游戏开始菜单*/ { char ch; printf("Please choose the gamespeed:\n"); printf("1-Fast 2-Normal 3-Slow\n"); printf("\nPlease Press The numbers..\n"); do {ch=getch();} while(ch!=’1’&&ch!=’2’&&ch!=’3′); clrscr(); return(ch); } /*主函数*/ void main(void) { int ch; ch=Menu(); Init(); DrawK(); GamePlay(ch); Close(); } void Init(void) { int gd=DETECT,gm; initgraph(&gd,&gm,"c:\\tc"); cleardevice(); } void DrawK(void) { setcolor(11); setlinestyle(SOLID_LINE,0,THICK_WIDTH); for(i=50;i{ rectangle(i,40,i+10,49); /*画出上边框*/ rectangle(i,451,i+10,460); /*画出下边框*/ } for(i=40;i{ rectangle(50,i,59,i+10); /*画出左边框*/ rectangle(601,i,610,i+10); /*画出右边框*/ } } void GamePlay(char ch) { randomize(); /*随机数发生器*/ food.yes=1; /*1代表要出现食物,0表示以存在食物*/ snake.life=0; snake.direction=1; snake.x[0]=100;snake.y[0]=100; snake.x[1]=110;snake.y[1]=100; snake.node=2; PrScore(); while(1) /*可以重复游戏*/ { while(!kbhit()) /*在没有按键的情况下蛇自己移动*/ { if(food.yes==1) /*需要食物*/ { food.x=rand()%400+60; food.y=rand()%350+60; /*使用rand函数随机产生食物坐标*/ while(food.x%10!=0) food.x++; while(food.y%10!=0) food.y++; /*判断食物是否出现在整格里*/ food.yes=0; /*现在有食物了*/ } if(food.yes==0) /*有食物了就要显示出来*/ { setcolor(GREEN); rectangle(food.x,food.y,food.x+10,food.y-10); } for(i=snake.node-1;i>0;i–) /*贪吃蛇的移动算法*/ { snake.x[i]=snake.x[i-1]; snake.y[i]=snake.y[i-1]; /*贪吃蛇的身体移动算法*/ } switch(snake.direction) /*贪吃蛇的头部移动算法,以此来控制移动*/ { case 1:snake.x[0]+=10;break; case 2:snake.x[0]-=10;break; case 3:snake.y[0]-=10;break; case 4:snake.y[0]+=10;break; } for(i=3;i{ if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0]) { GameOver(); snake.life=1; break; } } /*下面是判断是否撞到墙壁*/ if(snake.x[0]595||snake.y[0]455) { GameOver(); snake.life=1; } if(snake.life==1) /*如果死亡就退出循环*/ break; if(snake.x[0]==food.x&&snake.y[0]==food.y) /*判断蛇是否吃到食物*/ { setcolor(0); rectangle(food.x,food.y,food.x+10,food.y-10); /*吃的食物后用黑色将食物擦去*/ snake.x[snake.node]=-20;snake.y[snake.node]=-20; /*现把增加的一节放到看不到的地方去*/ snake.node++; food.yes=1; score+=10; PrScore(); } setcolor(4); /*每次移动后将后面的身体擦去*/ for(i=0;irectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10); delay(gamespeed); DELAY(ch); setcolor(0); rectangle(snake.x[snake.node-1],snake.y[snake.node-1],snake.x[snake.node-1]+10,snake.y[snake.node-1]-10); } if(snake.life==1) break; key=bioskey(0); /*接受按键*/ if(key==ESC) break; else if(key==UP&&snake.direction!=4)/*判断是否改变方向*/ snake.direction=3; else if(key==RIGHT&&snake.direction!=2) snake.direction=1; else if(key==LEFT&&snake.direction!=1) snake.direction=2; else if(key==DOWN&&snake.direction!=3) snake.direction=4; } } void GameOver(void) { cleardevice(); setcolor(RED); settextstyle(0,0,4); outtextxy(200,200,"GAME OVER"); getch(); } void PrScore(void) { char str[10]; setfillstyle(SOLID_FILL,YELLOW); bar(50,15,220,35); setcolor(6); settextstyle(0,0,2); sprintf(str,"scord:%d",score); outtextxy(55,20,str); } void Close(void) { getch(); closegraph(); } 贪吃蛇

单机游戏的分类

■RPG= Role-playing Game=角色扮演游戏 由玩家控制单个或多个角色(比如FF和SM),,该类型主要要强调玩家个人角色的成长及故事(可以理解成小说中的主角) 代表作品:最终幻想、勇者斗恶龙等 ————————-分支 S.RPG:战略角色扮演游戏.这种游戏类型类似于下棋,所以也可以说是战棋类游戏.角色都在一个有固定范围的棋盘状地图上进行战斗,你如果选中其中1个角色,会出现"移动","攻击","特技"等选择,这就是最明显的标志.(三国志和其他同系列的游戏有些不同,,在下边会为大家解释) 代表作品:很有名气的,中国故事改编的等 2007-5-11 15:07 贝 里 克 物 语 A.RPG:动作角色扮演游戏.这种游戏类型是以动作为主的RPG游戏,主要是强调角色战斗场面,是即时动作游戏。

例子: PC上的神作等 MMO.RPG:大型的多人在线角色扮演游戏, 这个范围很广,几乎所有的多人在线游戏都是. 代表作品:,等 moshoshijie.jpg (14.31 KB) 2007-5-10 21:30 魔 兽 世 界 ———————–分支结束 ■ACT= Action Game=动作游戏 这种游戏虽然看上去和A.RPG有很大相似之处,但是…也是有细微差别的(要不就没有ACT了,都叫A.RPG了…),主要是这类游戏以动作过关为最主要的,不是太注重情节,追求的是打斗时的爽快感. 代表作品:系列,等 san4.jpg (16.86 KB) 2007-5-10 21:22 真 三 国 无 双 4 猛 将 传 ■AVG= Adventure Game=冒险游戏 这种类型也是和RPG相似的(哎…怎么都和它相似…)不同的是这类游戏往往以解迷的形式来追求故事的发展,并以此为重点.和ACT不同的是ACT没有解迷的成份. ————————–分支 A.AVG:就是以动作为主的解迷冒险游戏,其中的密题一般都很简单,主要追求动作. AVG:同3.其实AVG游戏的分支个人感觉不是这么重要,都是在动作的前提下的…比如严格的说它是A.AVG但你说它AVG也可以的…比较纯正的解迷游戏是系列和〈零〉系列等.. 代表作品:(生化,恐龙,时间…)—-A.AVG —–解迷AVG 200662618461838932.jpg (14.23 KB) 2007-5-10 23:12 生 化 危 机 4 —————–分支结束 ■SLG= Strategy Game=策略游戏 这种类型游戏是依靠玩家的策略,大多数以征服对方为目的,一般分为回合和即时制. 代表作品:系列等 san11.jpg (27.27 KB) 2007-5-10 21:22 三 国 志 11 ————————-分支 RTS=Real-Time Strategy Game=即时战略游戏:本来想单独说的…后来想想…还是和SLG一起说方便理解….其实早些时候它是SLG的一个分支…后来"独立:了….是取了SLG中的即时战斗部分. 代表作品:系列等… 115326.jpg (18.35 KB) 2007-5-11 15:13 魔 兽 争 霸 3 ———————-分支结束 ■RAC= Racing Game=竞速游戏 竞速游戏–也可以叫RCG不过这种说法不常见。

这个太广泛啦!不管是赛车,飞机,自行车等等等等比赛速度的游戏都是. 代表作品:超级经典的,系列(山脊赛车),等 gt4.jpg (16.61 KB) 2007-5-10 21:38 G R A N T U R I S M O 4 ■CAG=Card Game=卡片游戏 玩家通过卡片战斗模式来进行的游戏的。

代表作品:等 youxiwang.jpg (30.81 KB) 2007-5-10 21:38 游 戏 王 D X 灵 魂 的 召 唤 者 ■TAB=Table Game=桌面游戏 以菜单方式游戏的游戏。

代表作品:系列等 dafuweng.jpg (26.13 KB) 2007-5-11 04:19 大 富 翁 6 ■.MUG=Music Game=音乐游戏 ……顾名思义…不用多说了……….. 代表作品:,系列等 jinyuetuan.jpg (15.35 KB) 2007-5-10 21:50 劲 乐 团 ■FTG= Fighting Game=格斗游戏 还是不用说了吧…………………….. 代表作品:系列等 5_701463c2cdea838e346107310e1582dd.jpg (19.98 KB) 2007-5-10 21:50 拳 皇 97 ■STG= SHOTING GAME=射击类游戏 所有类型的射击游戏的总称…不管是横着竖着射…不管开飞机还是开坦克都是。

代表作品:(竖着打),(横着打),(开飞机),开坦克…等 nushoulingfeng.jpg (14.38 KB) 2007-5-10 21:50 怒 首 领 峰 大 往 生 —————-分支 FPS=First Personal Shooting Game=第一人称视角射击游戏:专指为第一人称视角射击的游戏…原来是STG的分支…现在早以"自立门户了"…. 代表作品:等 sasasa.jpg (26.46 KB) 2007-5-11 04:08 C S 反 恐 精 英 ————–分支结束 ■PZL= Puzzle Game=益智类游戏 感觉比较常见的说法是PUZ 这个还是不多说了………………. 代表作品:,等 eluosifangkuai.jpg (21.62 KB) 2007-5-10 22:05 俄 罗 斯 方 块 D S ■SPT= Sports Game=体育类游戏 只要是体育运动都是这类的,我的最爱! 代表作品:系列等 pes6.jpg (15.56 KB) 2007-5-10 22:05 实 况 足 球 11 D S ? ■EDU=education= 育成游戏 ——–也叫TCG 养成类的游戏,通常玩家…

贪吃蛇 java代码

自己写着玩的,很简单,你试一试哦…主要用了javax.swing.Timer这个类:import java.awt.*;import javax.swing.*;@SuppressWarnings("serial")public class MainClass extends JFrame { ControlSnake control; Toolkit kit; Dimension dimen; public static void main(String[] args) { new MainClass("my snake"); } public MainClass(String s) { super(s); control = new ControlSnake(); control.setFocusable(true); kit = Toolkit.getDefaultToolkit(); dimen = kit.getScreenSize(); add(control); setLayout(new BorderLayout()); setLocation(dimen.width / 3, dimen.height / 3);// dimen.width/3,dimen.height/3 setSize(FWIDTH, FHEIGHT); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setResizable(false); setVisible(true); } public static final int FWIDTH = 315; public static final int FHEIGHT = 380;}import java.util.*;import java.awt.*;import java.awt.event.*;import javax.swing.*;import javax.swing.Timer;import java.util.Random;@SuppressWarnings("serial")public class ControlSnake extends JPanel implements ActionListener { Random rand; ArrayList list, listBody; String str, str1; static boolean key; int x, y, dx, dy, fx, fy, flag; int snakeBody; int speed; public ControlSnake() { snakeBody = 1; str = "上下左右方向键控制 P键暂停…"; str1 = "现在的长度为:" + snakeBody; key = true; flag = 1; speed = 700; rand = new Random(); list = new ArrayList(); listBody = new ArrayList(); x = 5; y = 5; list.add(new Point(x, y)); listBody.add(list.get(0)); dx = 10; dy = 0; fx = rand.nextInt(30) * 10 + 5;// 2 fy = rand.nextInt(30) * 10 + 5;// 2 setBackground(Color.WHITE); setSize(new Dimension(318, 380)); final Timer time = new Timer(speed, this); time.start(); addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent e) { if (e.getKeyCode() == 37) { dx = -10; dy = 0; } else if (e.getKeyCode() == 38) { dx = 0; dy = -10; } else if (e.getKeyCode() == 39) { dx = 10; dy = 0; } else if (e.getKeyCode() == 40) { dx = 0; dy = 10; } else if (e.getKeyCode() == 80) { if (flag % 2 == 1) { time.stop(); } if (flag % 2 == 0) { time.start(); } flag++; } } }); } public void paint(Graphics g) { g.setColor(Color.WHITE); g.fillRect(0, 0, 400, 400); g.setColor(Color.DARK_GRAY); g.drawLine(3, 3, 305, 3); g.drawLine(3, 3, 3, 305); g.drawLine(305, 3, 305, 305); g.drawLine(3, 305, 305, 305); g.setColor(Color.PINK); for (int i = 0; i g.fillRect(listBody.get(i).x, listBody.get(i).y, 9, 9); } g.fillRect(x, y, 9, 9); g.setColor(Color.ORANGE); g.fillRect(fx, fy, 9, 9); g.setColor(Color.DARK_GRAY); str1 = "现在的长度为:" + snakeBody; g.drawString(str, 10, 320); g.drawString(str1, 10, 335); } public void actionPerformed(ActionEvent e) { x += dx; y += dy; if (makeOut() == false) { JOptionPane.showMessageDialog(null, "重新开始……"); speed = 700; snakeBody = 1; x = 5; y = 5; list.clear(); list.add(new Point(x, y)); listBody.clear(); listBody.add(list.get(0)); dx = 10; dy = 0; } addPoint(x, y); if (x == fx && y == fy) { speed = (int) (speed * 0.8);//速度增加参数 if (speed speed = 100; } fx = rand.nextInt(30) * 10 + 5;// 2 fy = rand.nextInt(30) * 10 + 5;// 2 snakeBody++;// 2 } // 2 repaint(); } public void addPoint(int xx, int yy) { // 动态的记录最新发生的50步以内的移动过的坐标 // 并画出最新的snakeBody if (list.size() list.add(new Point(xx, yy)); } else { list.remove(0); list.add(new Point(xx, yy)); } if (snakeBody == 1) { listBody.remove(0); listBody.add(0, list.get(list.size() – 1)); } else { listBody.clear(); if (list.size() for (int i = list.size() – 1; i > 0; i–) { listBody.add(list.get(i)); } } else { for (int i = list.size() – 1; listBody.size() listBody.add(list.get(i)); } } } } public boolean makeOut() { if ((x 305 || y > 305)) { return false; } for (int i = 0; i for (int j = i + 1; j if (listBody.get(i).equals(listBody.get(j))) { return false; } } } return true; }}

970797游戏攻略网 » 贪吃蛇在线游戏

赞 (0)