小游戏
- 格式:doc
- 大小:101.00 KB
- 文档页数:17
1、冰冻肥皂泡:你喜欢吹肥皂吧?你知道吗?那飘浮在空中的美丽的肥皂泡,是可以冻成五颜六色的水晶玻璃球的。
1)把冰箱温度调到强档;2)用吸管在盘子上吹一个球形的肥皂泡;3)将装肥皂泡的盒子快速放入冰箱,冷冻20分钟。
大博士解谜科学原理:肥皂泡大部分是由水构成的,所以在破裂之前迅速冷却了摄氏0度以下,就会冻结,我们就会看到美丽的冰冻泡泡了。
2、自动绽放的肥皂泡泡:吹个肥皂泡放在锡箔花中央,锡箔花的瓣会自动抬起来,银白色的花簇拥着七彩的肥皂泡,非常美丽。
1)剪一个直径8厘米大的六瓣锡箔花;2)把木塞放在盘中;3)再把锡箔花浸泡在肥皂液中,放在木塞上使花瓣下垂;4)把吸管的一端剪成四瓣,用它吹个大肥皂泡泡;5)把肥皂泡放在花心中,低垂的花瓣就会抬起来,吸附在肥皂泡上。
大博士解谜科学原理:肥皂泡表面的薄膜具有一定的牵引力,当把肥皂泡放在锡箔花的中心时,这种牵引力就把花瓣拉起来了。
3、超级肥皂泡:用金属丝衣架,可以做出巨大的肥皂泡泡,大泡泡还会包着小泡泡。
1)先将金属衣架或弄成圈形,用胶带包在圆圈上;2)在盆中放入1升水、100毫升清洗剂和500毫升洗涤剂;3)把衣架放出盆中,慢慢向上提;4)做出巨大的泡泡啦!大博士解谜科学原理:关键在于洗涤液的放入,只不过在硬水的条件下,实验不容易进行,自来水通常是硬水,用蒸馏水就比较容易成功。
4、空中立正的肥皂泡:飘浮在空中的五颜六色的肥皂泡,我们可以让它静止不动,如同在空中立正似的。
将鸡蛋壳浸泡在大半杯醋里,然后盖上杯子盖;2)杯内会产生气体;3)等杯中不见气泡后,吹个肥皂泡放在杯中;4)肥皂泡在杯中飘来飘去,最后静止不动。
!大博士解谜科学原理:蛋壳的主要成分是碳酸钙,与醋酸反应生成二氧化碳。
因为二氧化碳密度比空气大,而吹入杯中的肥皂泡密度小,所以会浮在上层,好象停在了空中。
5、听话的火柴:可以给小朋友做这样一个魔术:在水中的火柴,任你指挥。
1)把木片和火柴放在水面上;2)把方糖放入水中,火柴和木片就会向方糖方向靠拢;3)如果把肥皂放入水中,火柴和木片就会向四周散开。
最能活跃气氛的70个小游戏在各种聚会、团队建设活动、家庭聚会或者课堂上,玩一些小游戏能够迅速活跃气氛,让大家更加投入和愉快。
以下为您列举 70 个最能活跃气氛的小游戏,希望能给您带来欢乐和美好的回忆。
1、猜谜语准备一些有趣的谜语或者脑筋急转弯,让大家猜猜看。
这既能锻炼思维,又能带来欢笑。
2、词语接龙用上一个人说的词语的最后一个字,作为自己要说的词语的开头,依次接力。
3、猜数字在心中想一个 1 到 100 之间的数字,其他人通过猜测来逐渐缩小范围,直到猜出正确数字。
4、击鼓传花参与者围成圆圈坐下,其中一人拿花;另有一人背着大家或蒙眼击鼓,鼓响时众人开始依次传花,至鼓停止为止。
此时花在谁手中,谁就上台表演节目。
5、正话反说出题人说一个词语或短语,参与者要将其反着说出来,比如“新年好”要说成“好年新”。
6、心有灵犀分组进行,每组两人。
一个人比划词语或句子,另一个人猜,限时内猜对多的组获胜。
7、抢凳子准备比参与人数少一个的凳子,音乐响起时大家围绕凳子慢走,音乐停止时抢凳子坐下,没抢到的淘汰。
8、照镜子两人一组,一个人当镜子,另一个人做动作,镜子要模仿对方的动作。
9、大风吹把比人数少一张椅子数目的椅子围成一圈。
一人当裁判,除了裁判以外,其余的人分别坐在不同的椅子上。
每张椅子限坐一人。
裁判站在中央,他可以随意说大小风吹。
如果他说大风吹,他说有某个特征的人必须起来换位置。
如果说小风吹,则是相反,没有某个特征的人起来换位置。
换位置时不能持续两人互换或坐回原位。
没抢到位置的人则是新裁判。
10、萝卜蹲参与者每人代表一种颜色的萝卜,被叫到的萝卜蹲下,依次进行。
11、你划我猜一人通过比划动作和表情来描述词语或成语,其他人猜。
12、谁是卧底每人拿到一张卡片,其中有几个人的卡片内容相同,有一到两人的卡片不同,通过描述来找出卧底。
13、数字炸弹在一个范围内确定一个数字作为炸弹,参与者猜测,根据提示缩小范围,直到猜出炸弹数字。
99个团队互动小游戏1、集体造句分成3小组,发小纸条第一小组写人名(大家都知道的),第二组写地点(稀奇古怪的地儿都可以),第三小组写事件(例如打高尔夫球,潜水,发呆,讲故事,)。
然后随机抽取念出来,xx人和xx人(第一小组)在x地(第二小组)做x事(第三小组),会有意想不到的效果。
2、合力玩气球每组限六人,通过六人合作先将一个气球吹大,然后用屁股压破。
主持人给每组各六张签,上写:嘴巴;手(二张);屁股;脚(二张),另有汽球一个。
主持人请每组每人抽签。
之后,先由抽到嘴巴的人借着抽到手的两人帮助来汽球给吹大(抽到嘴巴的人不能用手自已吹起汽球);然后二个抽到脚的人抬起抽到屁股的人去把汽球给坐破。
数量最多的获胜,音乐要激昂3、七拼八凑主持人要求每组先选出一名接收者,手持托盘站在舞台上。
其它小组人员按照主持人的要求提供物品放到托盘中。
最先集齐物品的小组获胜。
物品将是一些相当有难度寻找的东西。
例如:5米长的鞋带,2000年版的1元硬币,1根2米长的头发,国产手机3部,牛仔裤3条,18.88元等4、纸杯传水7人一组,同时进行比赛。
另有二名人员辅助每组第一名人员倒水至衔着的纸杯内,再一个个传递至下一个人的纸杯内,最后一人的纸杯内的水倒入一个小缸内,最后在限定的五分钟内,看哪个组的缸内的水最多,哪个组就获胜。
5、吸管运输同上一个游戏一样要分出若干人一组,每人嘴里叼一支吸管,第一个人在吸管上放一个有一定重量的钥匙环之类的东西,当比赛开始时,大家不能用手接触吸管和钥匙环,而是用嘴叼吸管的姿势把钥匙环传给下个人,直到传到最后一个人嘴叼的吸管上。
6、正话反说选几个口齿伶俐的人参加游戏,主持人要事先准备好一些词语。
主持人说一个词语,要参加游戏的人反着说一遍,比如“新年好”,游戏者要立刻说出“好年新”,说错或者猛住的人即被淘汰。
从三个字开始说起,第二轮四个字,第三轮五个字,以此类推,估计到五个字以上的时候游戏者就所剩无几了。
带动气氛的小游戏活跃气氛的70个小游戏
团体活动或是聚会总是需要些小游戏来调节气氛,热闹场面。
下文小编给大家整理了一些能够在活动中带动气氛的小游戏,供参考!
哪些小游戏可以带动气氛1、傻瓜拳
两人同时出拳(剪刀、石头、布),如果相同,则喊”他傻瓜”;如甲方赢,乙方输,则甲喊”你傻瓜”,乙喊”我傻瓜”,谁喊错则为负方。
此游戏好玩之处在于考你的反应速度,越喊的快,越容易出错。
另外这个游戏适合于人数较少的聚会,否则不易于实施。
另外这款游戏重点在于及时反应,所以如果每一局都要经过较长时间思考,就会使趣味性大打折扣。
2、萝卜蹲
这款游戏由来已久,也堪称经典,适用于各种人数的聚会,如果聚会场地充分大,可以大家站成一排或者围作一圈;如果场地比较拥挤,那幺坐在各自的座位上也可以。
规则就是游戏前为每个分配一个“萝卜名”,比如“红萝卜”,“胡萝卜”,“粉萝卜”等等,然后比赛开始后指定第一个开始的游戏者,如红萝卜,边下蹲边喊出“红萝卜蹲,红萝卜蹲,红萝卜蹲完,胡萝卜蹲”,那幺被点名的“萝卜”就需要继续扣好并且指明下一个下蹲的“萝卜”,如果口号重复失败或者没有正确下蹲,则为负方。
3、以嘴传物游戏
顾名思义,就是将物品通过嘴巴进行传递。
比如说筷子,游戏双方各自咬住筷子的两端,然后将筷子传给下一个游戏者,如果发生笑场,或者错失传递物则游戏失败。
这款游戏比较适合比较亲近的聚会者之间,否则如此近距离面对面的游戏可能会让原本就不太亲密的关系更加尴尬。
后面这款游戏还。
活跃气氛的70个小游戏带动气氛的小游戏《活跃气氛的 70 个小游戏带动气氛的小游戏》在各种聚会、团队活动、课堂教学或者家庭聚会中,小游戏总是能够起到活跃气氛、拉近人与人之间距离的作用。
下面就为您介绍 70 个有趣的小游戏,让气氛瞬间高涨起来!一、语言类小游戏1、词语接龙由一个人先说出一个词语,下一个人接着说出由前一个词语最后一个字开头的词语,依次类推。
例如:“书包”——“包租”——“租房”。
2、猜谜语准备一些有趣的谜语或者脑筋急转弯,让大家来猜。
可以设置小奖品增加趣味性。
3、故事接龙一个人开始讲一个故事的开头,然后其他人依次接着往下编,共同创造一个有趣的故事。
4、绕口令比赛选择一些经典的绕口令,让大家比赛谁能说得又快又准。
5、知识问答准备一些涵盖各种领域的知识问题,进行抢答。
6、你说我猜一个人描述词语或者事物,其他人通过描述来猜测。
7、飞花令给定一个字,参与者依次说出含有这个字的诗句。
二、动作类小游戏1、模仿秀一个人做动作,其他人模仿,看谁模仿得最像。
2、接力比赛例如传递物品、跳绳接力等,考验团队协作和速度。
3、盲人摸象蒙上眼睛,通过触摸来猜测物品或人物。
4、抢凳子准备比人数少一个的凳子,播放音乐,音乐停止时抢凳子,没抢到的淘汰。
5、动作猜谜一个人通过动作表演一个词语或成语,其他人猜测。
6、折纸游戏给定一个折纸任务,看谁折得又快又好。
7、投球游戏设定一个目标,参与者投球,计算得分。
三、团队协作类小游戏1、两人三足两人一组,将腿绑在一起,共同前进,比速度。
2、接力拼图将一幅拼图分成若干块,小组接力完成拼图。
3、搭建高塔使用规定的材料,团队合作搭建尽可能高的塔。
4、传递气球通过身体的部位传递气球,不能用手,看哪个小组最快。
5、集体跳绳多人一起跳绳,考验默契和节奏感。
6、背靠背运球两人背靠背,将球夹在中间运输,不能用手。
7、团队拔河两队人进行拔河比赛,增强团队凝聚力。
四、创意类小游戏1、创意绘画给定一个主题,在规定时间内自由创作绘画。
以下是一些简单的趣味小游戏活动方案:1.爆气球:将气球吹大,放在一张桌子上,由两个人同时用一根牙签尽可能快地戳破气球,看谁先戳破。
2.翻牌子:在桌子上放置若干张扑克牌,参赛者需要在规定时间内翻开尽可能多的牌子,看谁翻开的牌子最多。
3.传水球:参赛者站成一圈,手里拿着水球,参赛者需要尽快地将水球传给下一个人,看哪一组传的最快。
4.推杯子:将纸杯排成一排,参赛者需要用手中的小球推动杯子,看谁的杯子最先到终点。
5.大象走路:参赛者手脚用绳子绑在一起,像大象一样走路,看谁的速度最快。
6.拍气球:参赛者一人拿一只拍子,将气球拍向对手,看谁拍掉对手的气球最快。
7.石头剪刀布:参赛者两两对决,用石头剪刀布的方式决定胜负。
8.简单问答:主持人提出一些简单的问题,参赛者抢答,回答正确者得分。
9.转圈游戏:在场地上放置一圈圆形的物品,比如纸板、饼干等,让参与者们一个接一个地在圆圈上跳跃,每次跳跃后要拿起一个圆形物品,直到圆圈里的物品都被拿完,最后留在圆圈外的人即为胜者。
10.猜词游戏:将各种物品的名称写在小纸条上,放入一个容器中,让参与者们依次抽取小纸条并不出声地描述出这个物品,其他人要猜出该物品的名称。
可以设置时间限制和记分规则,最后得分最高者获胜。
11.手绘狂欢游戏:给每个参与者准备一张白纸和一支笔,让他们先用笔在纸上画出一个简单的图形或者几个字,然后将自己的纸传给旁边的人,让他们根据前一个人的图形或文字,继续画下去,如此循环下去,直到纸张上的内容变得非常丰富,最后让大家一起看看最初的图形和最终的结果有多大的差异。
12.瞎子接球:将参与者分成两组,每组一名参与者被蒙上眼睛,其他人围成一个圈在他们中间,将一个充气球或软球传给圈内的人,最后看哪个团队的瞎子先接到球即获胜。
13.猜谜语:准备一些简单的谜语,比如“用四条直线连接起来,构成一个正方形”等,让参与者们轮流猜谜语的答案,答对者可以得到一定的分数或者奖励。
14.站起来1.玩家在一个圆圈内,当领导说“站起来”的时候,玩家必须站起来。
1、“海内存知己,天涯若比邻”游戏规则:7或8个人一组(通过分发扑克牌随机组合),以小组为单位,自行选出自己的组长,然后顺时针依次介绍自己(包括姓名、家乡、性格、爱好),最后由组长来总结发言并介绍自己小组所有成员的基本情况。
(看哪个小组组长介绍得生动有特色,能让大家都记住他们的组员)游戏意义:让大家对彼此有一份最基本的了解。
2、“找零钱”游戏规则:男生代表1元钱,女生代表5毛钱。
由主持人说出具体价格数目,由男女生自由组合,最快组合完毕的即为获胜者,落单或者组合错误的则视为失败。
游戏意义:让大家都了解每个人都有其存在的价值,要懂得互相尊重和珍惜。
3、“大风吹,吹大风”游戏规则:现场所有同学手牵手围成一个大圈,主持人站在圈内开始喊口令:“大风吹,吹大风,吹穿白色衣服的……”,其他同学围着主持人转动,一旦听到吹什么样的人,这些人就得立马反应过来,然后进行位置互换。
(重复或者站错的都将受到惩罚,要当场表演节目)游戏意义:一是考验同学们的反应能力,二是考查换位双方的沟通和协调能力。
4、“情有千千结”游戏规则:现场所有同学分两组,手牵手围成两个大圈,主持人站在圈外指挥。
每个同学都要记住自己左右两边的人,听到主持人说解散的口令后开始随便相圈内走动,然后主持人会叫停,大家都得停止运动,然后找到刚开始在自己身边的人,保持原地不动,重新牵手。
紧接着就是要想尽一切办法恢复到正常的牵手状态。
(最快恢复原状的小组即为胜者,落后的小组则需要受到惩罚,可集体表演节目或者派代表表演)游戏意义:考察大家的团队协作能力,考察部分同学具有的组织领导能力。
5、“传递呼啦圈”游戏规则:现场所有同学分两组,手牵手围成两个大圈,主持人站在圈外指挥。
每个圈内放入一个呼啦圈,由主持人宣布开始计时,看两个小组顺时针传递速度的快慢,一般记为三圈一轮且中途不允许把手放开。
(快的一组即为胜者,落后的依旧要给予惩罚)游戏意义:考察大家的团队协作能力以及随机应变的能力。
适合全班人玩的小游戏(精选10篇)1.适合全班人玩的小游戏篇一递书大家围坐成一圈,主持人拿一本书,先向大家介绍:“这是一本奇妙的书,有时它明明是合着,但却要说开着才正确。
”使现场充满悬念。
接着,他一边说:“我把书本合起来交给你”或“我把书本打开交给你”,一边开始按逆时针方向传给下一人。
每个人将书传给下一人的时候,都要说明书本是合着还是打开。
一圈后,由主持人评判各人的对错。
对的不得声张,保守秘密,做错或仍未觉察其中奥妙的,可再传着玩。
后,主持人才公布答案:原来,判断书本的合开并不是依据书本,而是看传递者的双脚/交替或张开,书本只是遮眼法罢了。
2.适合全班人玩的小游戏篇二蝙蝠和蚊虫利用空间较大的室内场地,大家先目测走步,熟悉环境。
大家都当蚊虫闭上眼睛,双手前摸,慢慢行走,与别人相遇时就说:“我是蚊虫!”互击一下掌,再继续闭目行走。
游戏者中,只有一人事先被主持人暗中确定为蝙蝠,每当他与蚊虫相遇击掌,这个蚊虫就算被吃掉,并且马上重新投胎变成了蝙蝠。
这样,越进行到后来,可能蝙蝠变得越多了。
但是,当二个蝙蝠相遇时,那都得同时变为蚊虫。
主持人宣布游戏结束后,大家可畅谈生态平衡的体会。
3.适合全班人玩的小游戏篇三输电参加者20人以上,围成圆圈而坐,互相靠紧并在身后手拉手。
选一人当猜者居中。
圈内选三至四人作为电站,间距要求差不多。
游戏开始,任选一电站负责发电,按顺(逆)时针方向用握手紧压的方式输电,下一人收到讯号,也用同样方式传输,每当传至下一电站时,此人要发出“波!”的响声,同时再往下传。
猜者要根据自己的细心观察,及时判断电流的到某一电站的时间、位置,如果用手一指正巧“波”声响,则与该电站互换角色,三次失误要表演一个小节目。
为了增加悬疑和欢乐,电流可以在任何人手中停留片刻,电站有权使电实然倒流传送。
4.适合全班人玩的小游戏篇四斗鸡游戏不需要任何运动器具,把一条腿抬起来,放到另一条大腿上,用手抱着抬起的脚,单腿在地上蹦。
1、蚂蚁搬豆1. 请幼儿三个三个组成一组,扮成蚂蚁。
(第一个幼儿站立,两手作触角;第二、第三个幼儿分别弯腰,双手抱住前面一个孩子的腰)2. 请一组组的“蚂蚁”排好队行走,注意互相的配合,不摔跤,不踩到别人。
3. 设置一定的距离,在终点放置一些物品作“豆子”。
请“蚂蚁”从起点到终点,再返回,比赛搬豆,看谁搬得快。
2、贴鼻子玩法:将家长的眼睛蒙上,原地转三圈,请小朋友用语言指挥家长将鼻子贴到动物的准确位置即获成功。
规则:家长要将眼睛蒙好不能偷看。
幼儿只能用语言指挥。
3、我的宝宝在哪里准备:布带若干玩法:每个家庭由一名家长和一名幼儿参加,请幼儿手拉手围成圆圈,相应的家长蒙上眼睛站在圈内,幼儿手拉手边唱歌边绕着家长转,唱完歌曲立定,然后请家长去寻找自己的宝宝。
要求:幼儿不能发出声音,去找父母,父母通过触摸找到自己的宝宝。
4、我给爸爸(妈妈)穿鞋子玩法:每个家庭由一名家长和一名幼儿参加,首先让幼儿认识家长的鞋子,然后让家长将鞋子脱下后放入圆圈内,老师将鞋子打乱,游戏开始,幼儿从圆圈内找出自己爸爸(妈妈)的鞋子,并帮家长穿好,先穿好的为胜利者5、踩气球准备:气球若干玩法:每个家庭由一名家长和一名幼儿参加,老师给每个家庭发一个气球和一根细绳,请家长将气球吹大绑在自己的脚腕,身背幼儿。
听到老师的口令游戏开始,家长就背着宝宝踩其他家庭的气球,气球被踩爆即被淘汰,比一比谁是冠军。
6、小脚踩大脚玩法:每个家庭由一名家长和一名幼儿参加,幼儿双脚踩在家长的脚上,家长和幼儿手拉手,听到口令后,家长带着幼儿向前跑,幼儿双脚不能离开家长的脚,看看谁先到终点。
7、揪尾巴准备:尾巴若干玩法:每个家庭由一名家长和一名幼儿参加,家长将孩子抱在怀里,在幼儿的屁股上挂一条尾巴,听到口令后开始游戏,在保护好自己的尾巴的同时将别人的尾巴揪下来。
8、两人三足准备:绳子若干、玩法:一家长与一幼儿将相邻的两条腿用绳子绑在一起,听到口令后,两人一齐向前跑,看谁先跑到终点为胜。
package cxd.java;import java.awt.*;public class Blood {int x, y, w, h;TankClient tc;private int[][] pos = {{350, 300}, {350, 270}, {300, 280}, {290, 280}, {300, 310}, {280, 340}, {320, 300}, {300, 300}};public Blood() {x = pos[0][0];y = pos[0][1];w = 10;h = 10;}int step = 0;private boolean live = true;public void draw(Graphics g) {if(!live) return;Color c = g.getColor();g.setColor(Color.MAGENTA);g.fillRect(x, y, w, h);g.setColor(c);move();}private void move() {step ++;if(step == pos.length) {step = 0;}x = pos[step][0];y = pos[step][1];}public Rectangle getRect() {return new Rectangle(x, y, w, h);public boolean isLive() {return live;}public void setLive(boolean live) {this.live = live;}}Explode.javapackage cxd.java;import java.awt.*;public class Explode {int x, y;int[] diameter = {4, 7, 12, 18, 26, 32, 49, 14, 6};int step = 0;private boolean live = true;private TankClient tc;public Explode(int x, int y, TankClient tc) { this.x = x;this.y = y;this.tc = tc;}public void draw(Graphics g) {if(!live) {tc.explodes.remove(this);return;}if(step == diameter.length) {live = false;step = 0;return;}Color c = g.getColor();g.setColor(Color.YELLOW);g.fillOval(x, y, diameter[step], diameter[step]);g.setColor(c);step ++;}}Missile.javapackage cxd.java;import java.awt.*;import java.util.List;public class Missile {public static final int XSPEED = 10;public static final int YSPEED = 10;int x, y;Tank.Direction dir;private boolean live = true;private boolean good;private TankClient tc;public static final int WIDTH = 10;public static final int HEIGHT = 10;public Missile(int x, int y, Tank.Direction dir) {this.x = x;this.y = y;this.dir = dir;}public Missile(int x, int y, boolean good, Tank.Direction dir, TankClient tc) {this(x, y, dir);this.good = good;this.tc = tc;}public void draw(Graphics g) {if(!live) {tc.missiles.remove(this);return;}Color c = g.getColor();if(!good) g.setColor(Color.WHITE);else g.setColor(Color.BLACK);g.fillOval(x, y, WIDTH, HEIGHT);g.setColor(c);move();}private void move() {switch(dir) {case L:x -= XSPEED;break;case LU:x -= XSPEED;y -= YSPEED;break;case U:y -= YSPEED;break;case RU:x += XSPEED;y -= YSPEED;break;case R:x += XSPEED;break;case RD:x += XSPEED;y += YSPEED;break;case D:y += YSPEED;break;case LD:x -= XSPEED;y += YSPEED;break;case STOP:break;}if(x < 0 || y < 0 || x > TankClient.GAME_WIDTH || y > TankClient.GAME_HEIGHT) {live = false;}}public boolean isLive() {return live;}public Rectangle getRect() {return new Rectangle(x, y, WIDTH, HEIGHT);}public boolean hitTank(Tank t) {if(this.live && this.getRect().intersects(t.getRect())&& t.isLive() && this.good != t.isGood()) {if(t.isGood()) {t.setLife(t.getLife() - 20);if(t.getLife() <= 0) t.setLive(false);} else {t.setLive(false);}this.live = false;Explode e = new Explode(x, y, tc);tc.explodes.add(e);return true;}return false;}public boolean hitTanks(List<Tank> tanks) {for(int i=0; i<tanks.size(); i++) {if(hitTank(tanks.get(i)))return true;}return false;}public boolean hitWall(Wall w) {if(this.live && this.getRect().intersects(w.getRect())) { this.live = false;return true;}return false;}}Wall.javapackage cxd.java;import java.awt.*;public class Wall {int x, y, w, h;TankClient tc;public Wall(int x, int y, int w, int h, TankClient tc) { this.x = x;this.y = y;this.w = w;this.h = h;this.tc = tc;}public void draw(Graphics g) {g.fillRect(x, y, w, h);}public Rectangle getRect() {return new Rectangle(x, y, w, h);}}Tank.javapackage cxd.java;import java.awt.*;import java.awt.event.*;import java.util.*;//import java.math.*;public class Tank {public static final int XSPEED = 5;public static final int YSPEED = 5;public static final int WIDTH = 30;public static final int HEIGHT = 30;TankClient tc;private int x, y;private int oldX;private int oldY;public boolean good ;private int life = 100;private BloodBar bb = new BloodBar();public static Random r = new Random();int step = r.nextInt(12) + 3;private boolean live = true;private boolean bL = false, bU = false, bR = false, bD = false;enum Direction {L, LU, U, RU, R, RD, D, LD, STOP};private Direction dir = Direction.STOP;private Direction ptdir = Direction.D;public Tank(int x, int y, boolean good) {this.x = x;this.y = y;this.oldX = oldX;this.oldX = oldX;this.good = good;}public Tank(int x, int y, boolean good, Direction dir, TankClient tc) {this(x, y, good);this.dir = dir;this.tc = tc;}public void draw(Graphics g) {if(!live) {if(!good) {tc.tanks.remove(this);}return ;}Color c = g.getColor();if(good) {g.setColor(Color.RED);} else g.setColor(Color.BLUE);g.fillOval(x, y, WIDTH, HEIGHT);g.setColor(c);if(good) bb.draw(g);switch(ptdir) {case L:g.drawLine(x + Tank.WIDTH/2, y + Tank.HEIGHT/2, x, y + Tank.HEIGHT/2);break;case LU:g.drawLine(x + Tank.WIDTH/2, y + Tank.HEIGHT/2, x, y);break;case U:g.drawLine(x + Tank.WIDTH/2, y + Tank.HEIGHT/2, x +Tank.WIDTH/2, y);break;case RU:g.drawLine(x+ Tank.WIDTH/2, y+ Tank.HEIGHT/2, x+ Tank.WIDTH, y);break;case R:g.drawLine(x+ Tank.WIDTH/2, y+ Tank.HEIGHT/2, x+ Tank.WIDTH, y + Tank.HEIGHT/2);break;case RD:g.drawLine(x+ Tank.WIDTH/2, y+ Tank.HEIGHT/2, x+ Tank.WIDTH, y + Tank.HEIGHT);break;case D:g.drawLine(x + Tank.WIDTH/2, y + Tank.HEIGHT/2, x +Tank.WIDTH/2, y + Tank.HEIGHT);break;case LD:g.drawLine(x + Tank.WIDTH/2, y + Tank.HEIGHT/2, x, y + Tank.HEIGHT);break;}move();}void move() {this.oldX = x;this.oldY = y;switch(dir) {case L:x -= XSPEED;break;case LU:x -= XSPEED;y -= YSPEED;break;case U:y -= YSPEED;break;case RU:x += XSPEED;y -= YSPEED;break;case R:x += XSPEED;break;case RD:x += XSPEED;y += YSPEED;break;case D:y += YSPEED;break;case LD:x -= XSPEED;y += YSPEED;break;case STOP:break;}if(this.dir != Direction.STOP) {this.ptdir = this.dir;}if(x < 0) x = 0;else if(y < 30) y = 30;else if(x + Tank.WIDTH > TankClient.GAME_WIDTH) x = TankClient.GAME_WIDTH - Tank.WIDTH;else if(y + Tank.HEIGHT > TankClient.GAME_HEIGHT) y = TankClient.GAME_HEIGHT - Tank.HEIGHT;if(!good) {Direction[] dirs = Direction.values();if(step == 0) {step = r.nextInt(12) + 3;int rn = r.nextInt(dirs.length);dir = dirs[rn];}step--;if(r.nextInt(40) > 36) fire();}}private void stay() {x = oldX;y = oldY;}public void keyPressed(KeyEvent e) {int key = e.getKeyCode();switch(key) {if(!this.live) {this.live = true;this.life = 100;}break;case KeyEvent.VK_LEFT:bL = true;break;case KeyEvent.VK_UP:bU = true;break;case KeyEvent.VK_RIGHT:bR = true;break;case KeyEvent.VK_DOWN:bD = true;break;}locateDirection();}void locateDirection() {if(bL && !bU && !bR && !bD) dir = Direction.L;else if(bL && bU && !bR && !bD) dir = Direction.LU;else if(!bL && bU && !bR && !bD) dir = Direction.U;else if(!bL && bU && bR && !bD) dir = Direction.RU;else if(!bL && !bU && bR && !bD) dir = Direction.R;else if(!bL && !bU && bR && bD) dir = Direction.RD;else if(!bL && !bU && !bR && bD) dir = Direction.D;else if(bL && !bU && !bR && bD) dir = Direction.LD;else if(!bL && !bU && !bR && !bD) dir = Direction.STOP; }public void keyReleased(KeyEvent e) {int key = e.getKeyCode();switch(key) {case KeyEvent.VK_SPACE:fire();break;case KeyEvent.VK_LEFT:bL = false;break;bU = false;break;case KeyEvent.VK_RIGHT:bR = false;break;case KeyEvent.VK_DOWN:bD = false;break;case KeyEvent.VK_A:superFire();break;}locateDirection();}public Missile fire() {if(!live) return null;int x = this.x + Tank.WIDTH/2 - Missile.HEIGHT/2;int y = this.y + Tank.HEIGHT/2 - Missile.HEIGHT/2;Missile m = new Missile(x, y, good, ptdir,this.tc);tc.missiles.add(m);return m;}public Missile fire(Direction dir) {if(!live) return null;int x = this.x + Tank.WIDTH/2 - Missile.HEIGHT/2;int y = this.y + Tank.HEIGHT/2 - Missile.HEIGHT/2;Missile m = new Missile(x, y, good, dir,this.tc);tc.missiles.add(m);return m;}public Rectangle getRect() {return new Rectangle(x, y, WIDTH, HEIGHT);}public boolean isLive() {return live;}public void setLive(boolean live) {this.live = live;}public boolean isGood() {return good;}public int getLife() {return life;}public void setLife(int life) {this.life = life;}public boolean collidesWithWall(Wall w) {if(this.live && this.getRect().intersects(w.getRect())) { this.stay();return true;}return false;}public boolean collidesWithTanks(java.util.List<Tank> tanks) { for(int i=0; i<tanks.size(); i++) {Tank t = tanks.get(i);if(this != t) {if(this.live && t.isLive() &&this.getRect().intersects(t.getRect())) {this.stay();t.stay();return true;}}}return false;}private void superFire() {Direction[] dirs = Direction.values();for(int i=0; i<8; i++) {fire(dirs[i]);}}private class BloodBar {public void draw(Graphics g) {Color c = g.getColor();g.setColor(Color.RED);g.drawRect(x, y-10, WIDTH, 10);int w = WIDTH * life/100;g.fillRect(x, y-10, w, 10);g.setColor(c);}}public boolean eat(Blood b) {if(this.live && b.isLive() &&this.getRect().intersects(b.getRect())) {this.life = 100;b.setLive(false);return true;}return false;}}Tankclient.javapackage cxd.java;import java.awt.*;import java.awt.event.*;import java.util.ArrayList;import java.util.List;//import Tank.Direction;public class TankClient extends Frame {public static final int GAME_WIDTH = 800;public static final int GAME_HEIGHT = 600;Tank myTank = new Tank(50, 50, true, Tank.Direction.STOP, this);Wall w1 = new Wall(100, 200, 20, 150, this) ;Wall w2 = new Wall(300, 100, 300, 20, this);List<Explode> explodes = new ArrayList<Explode>();List<Missile> missiles = new ArrayList<Missile>();List<Tank> tanks = new ArrayList<Tank>();Image offScreenImage = null;Blood b = new Blood();public void paint(Graphics g) {g.drawString("missiles count: " + missiles.size(), 10, 50);g.drawString("explodes count: " + explodes.size(), 10, 70);g.drawString("tanks count: " + tanks.size(), 10, 90);g.drawString("tanks life: " + myTank.getLife(), 10, 110);if(tanks.size() <= 0) {for(int i=0; i<5; i++) {tanks.add(new Tank(700, 50 + 40*(i+1), false,Tank.Direction.D, this));}}for(int i=0; i<missiles.size(); i++) {Missile m = missiles.get(i);m.hitTanks(tanks);m.hitTank(myTank);m.hitWall(w1);m.hitWall(w2);if(!m.isLive()) {missiles.remove(m);}w1.draw(g);w2.draw(g);m.draw(g);}for(int i=0; i<explodes.size(); i++) {Explode e = explodes.get(i);e.draw(g);}for(int i=0; i<tanks.size(); i++) {Tank t = tanks.get(i);t.collidesWithWall(w1);t.collidesWithWall(w2);t.collidesWithTanks(tanks);t.draw(g);}myTank.draw(g);w1.draw(g);myTank.eat(b);w2.draw(g);b.draw(g);//y += 5;}public void update(Graphics g) {if(offScreenImage == null) {offScreenImage = this.createImage(GAME_WIDTH, GAME_HEIGHT);}Graphics gOffScreen = offScreenImage.getGraphics();Color c = gOffScreen.getColor();gOffScreen.setColor(Color.GREEN);gOffScreen.fillRect(0, 0, GAME_WIDTH, GAME_HEIGHT);gOffScreen.setColor(c);paint(gOffScreen);g.drawImage(offScreenImage, 0, 0, null);}public static void main(String[] args) {TankClient tc = new TankClient();unchFrame();}public void launchFrame() {for(int i=0; i<10; i++) {tanks.add(new Tank(700, 50 + 40*(i+1), false, Tank.Direction.D, this));}this.setLocation(200, 150);setSize(GAME_WIDTH, GAME_HEIGHT);this.setTitle("TankWar");this.setBackground(Color.GREEN);this.addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0);}});this.setResizable(false);this.addKeyListener(new KeyMonitor());setVisible(true);new Thread(new PaintThread()).start();}private class PaintThread implements Runnable {public void run() {while(true) {repaint();try {Thread.sleep(50);} catch (InterruptedException e) {e.printStackTrace();}}}}private class KeyMonitor extends KeyAdapter {public void keyReleased(KeyEvent e) {myTank.keyReleased(e);}public void keyPressed(KeyEvent e) {myTank.keyPressed(e);}}}。