博舍

人机猜拳小游戏(类和对象) 人工智能猜拳游戏叫什么

人机猜拳小游戏(类和对象)

首先,创建四个java类分别是用户类User,电脑类Computer,游戏类Game以及测试类Test;

代码如下:

1.用户类

package类和对象;importjava.util.Scanner;

publicclassUser{

//首先定义用户类中的属性,有名字还有积分

 String name; intfen;

//首先来个键盘录入 Scannerinput=newScanner(System.in); //定义用户类中的取名方法 publicvoidsetName(){    System.out.println("请输入你的名字:");    name=input.next(); } //定义用户类中的出拳方法 publicint chu(){        System.out.println("请出拳:1.剪刀2.石头3.布:");    intchoose=input.nextInt();    switch(choose){    case1:       System.out.println("你出拳:剪刀");       break;    case2:       System.out.println("你出拳:石头");       break;    case3:       System.out.println("你出拳:布");       break;       default:          System.out.println("抱歉,没有这个选项");    }   returnchoose;     }}

2.电脑类

package类和对象;

importjava.util.Scanner;

publicclassComputer{

//电脑同样有名字和积分

   Stringname;   intfen;  //来个键盘录入   Scannerinput=newScanner(System.in);

//电脑的名字要我们选择,所有同样有取名方法   publicvoidsetName(){      System.out.println("请选择电脑的角色:1.吕布2.关羽3.秦始皇");      intchoose=input.nextInt();      switch(choose){      case1:         name="吕布";         break;      case2:         name="关羽";         break;      case3:         name="秦始皇";         break;         default:            System.out.println("抱歉,没有这个选项");      }   }     //电脑也有出拳方法   publicintchu(){

   //1~3之间的随机数      intchoose=(int)(Math.random()*3+1);      switch(choose){      case1:         System.out.println("电脑出拳:剪刀");         break;      case2:         System.out.println("电脑出拳:石头");         break;      case3:         System.out.println("电脑出拳:布");         break;      }            returnchoose;         }}

 

3.游戏类

package类和对象;

importjava.util.Scanner;

publicclassGame{Scannerinput=newScanner(System.in);   Useruser;   Computercomputer;   intcount=0;//回合数publicvoidfen(){   user=newUser();   computer=newComputer();   }

  //游戏开始   publicvoidstart(){      System.out.println(" 欢迎来到猜拳小游戏 ");      System.out.println(" ***************** ");      System.out.println(" *****猜拳开始**** ");      System.out.println(" ***************** ");      System.out.println();      System.out.println("猜拳规则:1.剪刀2.石头3.布");      System.out.println();      System.out.println("请选择电脑的角色:1.吕布2.关羽3.秦始皇");      intchoose=input.nextInt();      switch(choose){      case1:         computer.name="吕布";         break;      case2:         computer.name="关羽";         break;      case3:         computer.name="秦始皇";         break;         default:            System.out.println("抱歉,没有这个选择");      }      System.out.println("请输入你的名字:");      user.name=input.next();      System.out.println(user.name+"vs"+computer.name+" 对战开始");      intusechu;//用户出拳      intcomchu;//电脑出拳      System.out.println("要开始吗:y/n");      Strings=input.next();      while(s.equals("y")){         usechu=user.chu();         comchu=computer.chu();         if((usechu==1&&comchu==3)||(usechu==2&&comchu==1)||(usechu==3&&comchu==2)){            System.out.println("恭喜,本局你赢了");            user.fen++;//用户积一分         }elseif((usechu==1&&comchu==1)||(usechu==2&&comchu==2)||(usechu==3&&comchu==3)){            System.out.println("本局平局");         }elseif((usechu==1&&comchu==2)||(usechu==2&&comchu==3)||(usechu==3&&comchu==1)){            System.out.println("你输了,渣渣");            computer.fen++;//电脑积一分         }         count++;//回合数+1         System.out.println("用户积分:"+user.fen);//输出每回合的用户积分         System.out.println("电脑积分:"+computer.fen);//输出每回合的电脑积分         System.out.println("第"+count+"回合 ");//输出回合数                           //判断最终输赢并结束游戏         if(user.fen==3){            System.out.println("最终结果:您获胜");            System.out.println("结束游戏");            break;//结束循环            }elseif(computer.fen==3){               System.out.println("最终结果:您输了");               System.out.println("结束游戏");               break;                        }         System.out.println(" 是否开始下一轮:y/n");      s=input.next();      }      while(s.equals("n")){         System.out.println("退出游戏");         break;            }   }} 

4.测试类

package类和对象;

publicclassTest{publicstaticvoidmain(String[]args){   Gamegame=newGame();   game.fen();   game.start();}}

至此人机猜拳小游戏也就做出来了,需要完善的地方还有很多,比如选择错误的时候并不能重新选择,这点需要改进,本程序可以很好地锻炼switch语句和面向对象方法,熟悉了其实很简单。 

人工智能PK人类:不止下棋碾压 猜拳也能秒杀

新浪科技何畅

2016年3月9日至3月15日,韩国棋手李世石将迎战谷歌人工智能AlphaGo,后者在去年10月曾与欧洲围棋冠军樊麾闭门比赛并取得全胜,震惊了国际棋坛。围棋被称为“人类智慧最后的堡垒”,难道真的如《自然》杂志所说——“面对谷歌围棋AI,人类最后的智力骄傲崩塌了”?

其实,人工智能和人类的PK很久以前就已经开始,从智商到自尊,人类遭遇了全方位多角度的碾压。

棋类屡屡得手

1994年,跳棋程序奇努克(Chinook)击败了人类卫冕冠军马里恩-廷斯利(MarionTinsley),这是机器程序第一次在竞技游戏中获得官方世界冠军。1992年,这款计算机程序就曾向廷斯利发起挑战,但不敌对手。此次再战,在双方打了6局平手之后,廷斯利因患胰腺癌退赛,奇努克最终获得冠军。到2007年,奇努克已完全破解西洋跳棋游戏,就是最顶尖的跳棋选手也只能和它打成平手。

跳棋小试身手,象棋也不甘落后。1997年,IBM生产的超级计算机“深蓝”(DeepBlue)与当时世界排名第一的国际象棋大师加里-卡斯帕罗夫(GaryKasparov)展开对决,卡斯帕罗夫在赛前一直不相信计算机能赢过人类。但是经过6局苦战,他最后还是输了。

如今,“深蓝”已经成了博物馆中的展品。2012年,IBM还把纪念深蓝击败人类15周年的视频放出来提醒人类:你们的智商堪忧啊。

益智游戏来袭

棋坛失意就算了,在益智游戏上也被穷追猛打。

2006年,拼字比赛世界冠军大卫-鲍伊斯(DavidBoys)在经历18轮比赛,击败约100名人类对手后,直接PK电脑,结果以465:482的比分败给了一款名叫“Quackle”的程序。虽然痛失比赛,但鲍伊斯表示:“做人还是要比做电脑好的多。”

2008年,赌城拉斯维加斯,一台名为“北极星2”(Polaris2)的电脑连续击败了6名德州扑克牌顶级职业选手。扑克牌游戏最大的特点就是不确定性,对手的出牌风格很难预料,这个程序的设计难度还真不小。各大赌场声明:我们不需要这样的会员。

2011年,IBM的超级计算机“沃森”(Watson)参加了美国智力竞猜节目《危险边缘》。“沃森”没有丢前辈们的脸,以3倍的巨大分数优势力压该节目有史以来最强的两位选手,赢得比赛。试想,如果你大脑里装满包括辞海和《世界百科全书》等百万份资料,又能在3秒钟之内检索数亿页内容,你也不会输。

不拼智力拼体力

既然拼智力没戏了,比一比体力还是OK的吧?

并不是。

2012年,日本东京工科大学一团队研发出一款名为“Swumanoid”的游泳类人机器人,能够进行仰泳和自由泳。据介绍,研制出理想的双腿后,它在水中前进的速度能够达到每秒钟6米左右,比当时世界纪录保持者的速度还要快30%。

2014年,美国麻省理工学院研发了一款被称作“机器人世界里的法拉利”的机器猎豹(robo-cheetah),不要小看这个由金属、螺母和螺栓组成的机器人,它跑得可比世界著名短跑运动员尤塞恩-博尔特(UsainBolt)还要快。听说它又学会了新技能——跨栏。

运动员泪流满面:我们不想失业。

体力不足靠运气

既然,人工智能已经全面夹击人类了,那我们拼运气总是没错的吧?

然而,现实是一记重锤。连石头剪刀布这种简单的猜拳我们都不幸扑街。2013年,一台猜拳永远不会输的机器人出现了。通过观察,它能在极短的时间内分析出对手的手势,迅速出拳,战无不胜。不怕对手太努力,就怕人家会作弊。

人机再战谁笑傲

PK史回顾完毕,新一战即将打响。李世石与AlphaGo之战自消息公布的那天起就吸引了无数目光。在围棋领域,人工智能一直被认为仅是业余水准,想突破人类高手遥遥无期。即将代表人类高手出战“人机大战”的主角李世石表示:“去年10月和樊麾二段较量的AlphaGo,实力还不足以和我争胜负。现在时间已经过去半年,AlphaGo的实力肯定得到了提高,但这次比赛并不是3比2那种比分的胜负,而是看我会不会输一盘。”

AlphaGo采用了名为“深度学习”的必杀技,可以模仿人类大师的下棋方式。这也意味着,它具备不断学习和进化的功能,这才是它的最可怕之处。100万美元的奖金已经不再重要,人们更关注的是——到底谁会赢。被AlphaGo打败的樊麾目前最大的愿望是“李世石为我平反。”那么,李世石能做到吗?我们拭目以待。

巅峰对决,谁能笑到最后?

为了见证这一场人机终极对决,新浪已成为谷歌授权的比赛直播方,并且受邀前往韩国首尔,将在一线为全球华人带来实时动态。欢迎通过微博、新浪科技、新浪体育和新浪新闻客户端关注此次直播。

担心围棋看不懂?害怕人工智能太深奥?

敞开你的好奇心,收起你多余的担忧。新浪已经邀请到国内最顶尖的一线人工智能专家、围棋国手和教练,在后方为网友实时讲解赛况——他们不仅懂黑科技、懂围棋,还与李世石交过手,一切你所好奇的,都是他们会分析的。

还要做什么呢?3月9日—3月15日,见证#人机围棋对决#,一切尽在新浪网!

相关专题谷歌人工智能破解围棋比赛专题

标签:谷歌李世石人工智能

推荐阅读聚焦应用中心新浪公益新浪游戏新浪视频新浪科技本地吃喝玩乐精品推荐专业手机外卖订餐服务让明星来演绎你的剧本史诗银河战斗排兵布阵打倒邪恶守卫童话世界科学无法解释春节事件随手拍马上能变艺术照最新最丰富的番剧动画汇集全球主流媒体精华爆爽刺激花样探索迷宫清除障碍扑灭熊熊大火钢铁熊大怪兽熊二来袭你的贴身瑜伽健身私教学车人手必备驾考宝典瞬间让你变朋友圈大咖屌丝也能登上人生巅峰解密难题发现世界真相指尖童话挑战手速极限沈阳遭遇六级重度雾霾2万大妈齐跳小苹果禁烟范冰冰传递社会正能量未富先老养老金吃紧益调查:慈善需立法么反虐待动物法制化呼声高涨如何看待广州拟奖拾金不昧环保部即将解决红顶中介明星婚礼上的“善”姿“百名春蕾之星”评选舞剧《画皮》关注孤独症女孩患尿毒症自筹药费互联网发展基金会成立林青霞为慈善参加节目全面实施城乡大病保险儿童安全座椅强制认证办养老院真的是机会么志愿者慰问抗战老兵战舰世界新浪特权礼包乱斗西游2暑假畅玩卡倩女幽魂2夏日特权卡功夫熊猫新手高级礼包梦幻西游2挑战特权卡狩龙战纪新浪白金礼包我是大主宰新浪荣耀礼包大话西游2免费版礼包天谕有约版测试礼包火瀑新浪战神宝箱完美国际2新浪血战卡西游降魔篇3D独家礼包古剑奇谭新浪独家礼包大战神新浪独家礼包热血传奇手机版大礼包NBA梦之队2公测豪华礼包魔域盛夏冰爽新手礼包星际传奇新浪独家礼包极限Girl美与野性结合让萌宠当一天司机亲千万不要手贱啊超级屌的视觉错觉运动地球上最美丽的天堂鸟新一代武林最萌小道士神奇的PS造钱术大开眼界的泡面新吃法让宝宝嘴馋的菠萝炒饭经典电影镜头神级剪辑亲手教你范爷经典妆容盘点全球最糟糕山寨品恶搞:当一骷髅在开车健身是把整容刀三分钟看尽十年成长和TFBOYS一起过暑假不用去医院的牙美白术一分钟识别面试潜台词Windows10升级秘籍净水器的水有多深?识趣毕业季户外特辑用户关注手机哪些功能有曰:国内外展会吐槽三十年经典Moto手机ChinaJoy2015大看点东芝虚增利润财务丑闻紫光集团收购美光科技诺基亚为未来电影造球全球APP开发创意大赛享说第四期主持人李晨猎豹靠近捕食熟睡疣猪非洲血腥动物标本加工相机拍泡腾片遇水冒泡冰岛令人窒息美景懒惰青蛙蜗牛背搭便车美摄影师拍奇怪毛毛虫

陈根:当人工智能与猜拳狭路相逢,石头剪刀布还随机吗

文/陈根

如果说,有一种决策的方法能跨越文化、种族和地域的限制,那么除了抽签这种纯靠运气的方式,恐怕只剩下猜拳了。

猜拳被长久地使用在生活中不需要太多思考的决策里,一般认为,玩家获胜的概率应该是一样的,即恒定的30%左右,从长远来看,这使任意玩家同样有可能赢、平或输。这就是所谓的混合策略纳什均衡,在这种均衡中,每个参与者在每一轮中以相等的概率选择三个行动。

但事实可能并非如此,来自浙江大学的研究团队的研究发现,真正的玩家的策略看起来是随机的,但实际上是由可预测的模式组成的,狡猾的对手可以利用这些模式来获得重要的优势。

具体来说,研究团队开发了一个基于基于n-阶马尔可夫链的人工智能模型——Multi-AI,这意味着Multi-AI拥有记忆性,能够向前追溯最多n个历史状态并加以利用。研究人员将单个模型结合起来,应对人类玩家的不同性格和策略。

如果人类玩家连续胜利,就会促使 Multi-AI转向选择其他人工智能模型的更优解。如果人类玩家连续失败,大概率会转换策略,或者打破之前的出拳规律,这时 Multi-AI也可以随之调整。

这意味着一种不同的博弈策略。即Multi-AI模型更强调针对不同玩家之间的个性差异、出拳策略,来及时的进行调控,选取当下最适宜的博弈策略。

最终实验结果发现,在和52名人类玩家分别大战300回合之后,人工智能击败了95%的玩家。由于比赛规则是赢+2分,平+1分,输不得分,且参与者均知道获胜会获得金钱奖励,总分越高,赢的钱越多,因此玩家故意放水或者随便乱选的可能性极小。

即便如此,人工智能仍然大胜人类。在最悬殊的一场较量中,人工智能获得了198次胜利,55次平手,仅输了47次,胜率超过人类对手4倍。

当然,这项关于猜拳的最新研究,成果不仅仅是一个很厉害的猜拳人工智能,还是一个很厉害的循环制衡模型分析师,这意味着人类的竞争行为确实有规律可循,而通过使用适当的简单模型就能利用这些规律。研究人员认为,该人工智能模型未来有望拓展到其他博弈场景,比如预测竞争对手的下一步举动,规划更有效的竞选策略,或者制定更有利的定价方案等等。 

人工智能在游戏中的应用与未来展望

人工智能在游戏中的应用与未来展望

摘要:人工智能是全球科技发展的一个热点,其在多个领域都有突出的应用。本文主要介绍了人工智能在游戏中的三大应用,并对其发展趋势和前景进行了相关讨论。

关键词:人工智能,游戏,发展应用,前景

一.人工智能概述

人工智能(ArtificialIntelligence),英文缩写为AI。它是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门新的技术科学。人工智能是计算机科学的一个分支,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器,该领域的研究包括机器人、语言识别、图像识别、自然语言处理和专家系统等。人工智能从诞生以来,理论和技术日益成熟,应用领域也不断扩大,在游戏中的应用也极为广泛,对玩家而言,游戏在玩法和开发上的拓展,能带来众多更有趣更精良的游戏;也会让体验变得更特别、更个性化、更令人回味。于整个产业来说,更多的创新和技术进步将推动产业的蓬勃发展,更加良性。

二.人工智能在游戏中的三类应用1.AI智能游戏引擎

游戏AI引擎可以绕过算法,提供“傻瓜式”的创作平台和工具:帮助开发者简化游戏制作流程,降低制作难度,塑造随机地图和创造NPC等等。目前主流的游戏AI引擎有三类:AI渲染引擎、NPC制作引擎和游戏创作引擎。

常见的有3D游戏需要提高游戏画面的表现力度,不断提升3D图形技术的功能,游戏画面在设计时除了重视美术设计质量外,在游戏表现的各个环节需要编辑较多的数据,这个程序员带来较大的挑战,这些问题的解决归根到底是完善游戏引擎。游戏画面设计在引擎中一般采用层次的设计方式,需要不断明确人工智能技术在各个环节的作用。游戏引擎的主要结构包括三个:高层接口、中层接口和低层接口,具体来说,高层接口的作用是能够让用户使用人功智能技术调控中层接口,通过改变算法控制游戏中游戏角色的战术动作、攻击活动等进行操作,中层接口可以通过与底层接口相结合,控制底层接口中的动画和运动等变换速度快的画面,保证游戏中的角色能够做一些高难度的动作,为用户提供高质量的服务,底层接口的作用在于控制角色的动画与基本动作,并提供物理计算与3D渲染等功能,但是底层接口的功能只能操作角色的朝向和位置,不能进行跳跃的动作,这些动作需要由中层接口完成。

2.神经网络算法

要让NPC更聪明一点,目前这方面的AI解决方案主要有这四种:

有限状态机、蒙特卡洛决策树、神经网络、遗传算法。

在传统游戏中,最为广泛使用是有限状态自动机(FSM),这是一种专家型的预编程算法。与FSM相比,蒙特卡洛决策树(MCST)会多步联想做决策,而非只就当前形势。这种多元化的行为能带来玩家更强大的个性化交互游戏体验,但其难度和成本也更大,且无学习能力。MCST模式下的NPC最大的缺陷在于学习能力。他们不能从玩家那里学习任何东西,不会根据玩家的习惯性操作做出相应的变化。

而人工神经网络(ANN)和遗传算法则可以解决机器学习的问题。**但是,神经网络下的NPC是“不可控的”(“非线性”和“非常定性”特征导致),这给游戏的运营与维护带来不少的风险,NPC的行为将在不断学习中变得难以预测,游戏后期的调试变得异常困难,有可能出现脱轨的问题。**另一种技术——遗传算法(GeneticAlgorithm)创造了一个不可击败的敌人。**遗传算法是基于达尔文进化论提出的一种决策计算模型,计算机在模拟自然进化过程中寻求最优解。**体现在游戏上,NPC会根据以往的经验去优化策略,新一轮的进攻的“敌人”会接收“牺牲者”的意志,并针对玩家的过往策略逐个击破。这意味着越强大的玩家将面临越强大的敌人,并且没有尽头。主机游戏SHMUP中,游戏开发者就为玩家置入了运用遗传算法的敌人。他们让玩家反抗经过多代进化敌人的AI,当这一代又被击败时,遗传算法对AI进行排名并使用它们创造新一代的敌人来对抗玩家。在著名进化策略类游戏孢子和怪物系列都在遗传算法上有所突破。

3.AI操作系统

人工智能操作系统的理论前身为20世纪60年代末由斯坦福大学提出的机器人操作系统,应具有通用操作系统所具备的所有功能,并且包括语音识别、机器视觉、执行器系统、和认知行为系统。在游戏中,相对于游戏引擎和算法开发方向而言,它可以直接识别玩家操作,使游戏产业第一次从间接的数字控制转向更自然的模拟控制。人工智能在游戏中的运用甚至帮助现实世界的进步。因为游戏能够为现实世界提供准确数据和测试平台,例如赛车游戏为自动驾驶提供数据支持等等。

三.对人工智能游戏的未来展望

在过去的20年里,AI在游戏中取得了显着的进步。对于今天的游戏开发者来说,创造一个高效的A.I.系统与创造优质游戏和美妙的图像同样重要。每个工作室都开始为A.I.分配一个专门的编程团队。在游戏开发的早期阶段设计游戏。他们花费更多的资源和时间来建立多样化,称职和表现良好的非玩家角色(NPC)。更多的开发人员使用高品质的A.I.设计使他们的游戏在竞争日益激烈的市场中脱颖而出。

理想的目标是让玩家始终沉浸在游戏中。NPC应该让人觉得是活生生会呼吸的人,而且这种错觉在游戏中不会以任何方式被打破。人类的行为很有趣,像对话这种微妙的互动行为,在未来AI可能会实现。如果能在诸如此类的互动上有所突破,那么游戏中更多的部分将有更强的互动性。说不定会产生全新类型的游戏。

四.总结

通过游戏展我们可以看到游戏AI正在向更高的质量,更适应玩家的需求,给玩家带来非凡体验的方向迅猛发展。也许我们所期待的、理想中的、极大拟人化的游戏AI将会很快得以实现,并且给我们的生活增添更多的快乐与色彩。而游戏AI也将为人类在人工智能方面的研究上添上非常重要的一笔!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。

上一篇

下一篇