问个java塔防小游戏,全是药丸,杀菌那种的
药丸大作战。英文名Doctris Deluxe
一个经典的消除类游戏。游戏的背景大致如下:史密斯博士的实验室被多个病毒污染,它们隐藏在实验室的玻璃器皿内,你的任务是消灭这些病毒。游戏玩法简单,将彩色药丸放在瓶子中对应颜色的病毒身上,形成一列,病毒就会被消除。
最少是要求2个方格可以进行消除,至多没有上线,可以连续多少个相投色的方格即可一次性消除多少个方格。
方块消消乐,是以同色方格相连之后点击进行消除,属于休闲单机小游戏,消除过程中需要获得通关要求分值方可继续下一关,失败则需要重新从第一关开始挑战。
小小乐作为休闲类游戏,以其清新的配色,简单的方格界面,带给用户舒适的游戏体验,过程中想要获得高分,则需要有策略的调整几种颜色方格连接消除位置。
具体如下:
连连看的小源码
package Lianliankan
import javax.swing.*
import java.awt.*
import java.awt.event.*
public class lianliankan implements ActionListener
{
JFrame mainFrame//主面板
Container thisContainer
JPanel centerPanel,southPanel,northPanel//子面板
JButton diamondsButton[][] = new JButton[6][5]//游戏按钮数组
JButton exitButton,resetButton,newlyButton//退出,重列,重新开始按钮
JLabel fractionLable=new JLabel("0")//分数标签
JButton firstButton,secondButton//
分别记录两次62616964757a686964616fe59b9ee7ad9431333335326239被选中的按钮
int grid[][] = new int[8][7]//储存游戏按钮位置
static boolean pressInformation=false//判断是否有按钮被选中
int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV//游戏按钮的位置坐标
int i,j,k,n//消除方法控制
代码(code)是程序员用开发工具所支持的语言写出来的源文件,是一组由字符、符号或信号码元以离散形式表示信息的明确的规则体系。
对于字符和Unicode数据的位模式的定义,此模式代表特定字母、数字或符号(例如 0x20 代表一个空格,而 0x74 代表字符“t”)。一些数据类型每个字符使用一个字节;每个字节可以具有 256 个不同的位模式中的一个模式。
在计算机中,字符由不同的位模式(ON 或 OFF)表示。每个字节有 8 位,这 8 位可以有 256 种不同的 ON 和 OFF 组合模式。对于使用 1 个字节存储每个字符的程序,通过给每个位模式指派字符可表示最多 256 个不同的字符。2 个字节有 16 位,这 16 位可以有 65,536 种唯一的 ON 和 OFF 组合模式。使用 2 个字节表示每个字符的程序可表示最多 65,536 个字符。
单字节代码页是字符定义,这些字符映射到每个字节可能有的 256 种位模式中的每一种。代码页定义大小写字符、数字、符号以及 !、@、#、% 等特殊字符的位模式。每种欧洲语言(如德语和西班牙语)都有各自的单字节代码页。
虽然用于表示 A 到 Z 拉丁字母表字符的位模式在所有的代码页中都相同,但用于表示重音字符(如"é"和"á")的位模式在不同的代码页中却不同。如果在运行不同代码页的计算机间交换数据,必须将所有字符数据由发送计算机的代码页转换为接收计算机的代码页。如果源数据中的扩展字符在接收计算机的代码页中未定义,那么数据将丢失。
如果某个数据库为来自许多不同国家的客户端提供服务,则很难为该数据库选择这样一种代码页,使其包括所有客户端计算机所需的全部扩展字符。而且,在代码页间不停地转换需要花费大量的处理时间。
protected synchronized void keyPressed(int keyCode){
...
else if(action == Canvas.FIRE){
if(chesses[selectedY][selectedX]==null){
chesses[selectedY][selectedX]=new Chesses(this.isPlayer1)
if(checkWin()){
String winner
if(isPlayer1){
winner="白方胜利"
player1win++
}
else{
winner="红方胜利"
player2win++
}
try{
Thread.sleep(3000)
}catch(Exception e){
}
Alert winAlert=new Alert("",
winner+"\n白方 "+player1win+":"+player2win+"红方",
null,AlertType.INFO)
winAlert.setTimeout(Alert.FOREVER)
Display.getDisplay(gobang).setCurrent(winAlert,this)
init()
repaint()
}
this.isPlayer=!this.isPlayer1//切换下棋方
}
}
repaint()
}
private boolean checkWin(){
int num=1
if(num<5){
num=1
for(int i=1i<4i++){
if(isPlayer1(selectedX-i,selectedY)){
num++
}
ease break
}
for(int i=1i<4i++){
if(isPlayer1(selectedX+1,selectedY)){
num++
}
else break
}
}
if(num<5){
num=1
for(int i=1i<4i++){
if(isPlayer1(selectedX-i,selectedY)){
num++
}
ease break
}
for(int i=1i<4i++){
if(isPlayer1(selectedX+1,selectedY)){
num++
}
else break
}
}
if(num<5{
num=1
for(int i=1i<=4i++){
if(isPlayer1(sesectedX,selectedY-i)){
num++
}
ease break
}
for(int i=1i<=4i++){
if(isPlayer1(selectedX.,selectedY+i))
num++
else break
}
}
if(num<5){
num=1
for(int i=1i<=4i++){
if(isPlayer1(selectedX+i,selectedY-i))
num++
else break
}
for(int i=1i<=4i++){
if(isPlayer1(selectedX-i,selectedY+i))
num++
else break
}
}
if(num>=5)
return true
else
return false
}
private boolean isPlayer1(int y,int x){
if(x<=15 &&x>=0 &&y<=15 &&y>=0 &&chesses[x][y]!=null){
if(chesses[x][y].isPlayer1==this.isPlayer1)
return true
else
return false
}
else return fale
}
俄罗斯方块(Tetris)是经典的益智游戏,几乎是世界上最有影响力的益智游戏之一,游戏本身也很简单,只要不断消减掉落的方块就可以了。
这个游戏被模仿了很多个版本,我这里的是EA出的疯狂俄罗斯方块(Tetris
Mania)。
超级泡泡龙(Super Bubble
Bobble)是Taito公司开发的游戏,主角是两只绿色和蓝色的小恐龙,通过吐出泡泡来消减屏幕上的彩球,游戏本身简单易学、妙趣横生,女孩子玩起来会上瘾的。
超级马里奥(Super Mario
Bros)是任天堂公司开发的著名横版过关游戏,是电子游戏历史上销量最大的系列游戏之一,早在任天堂的红白机时代就名声在外了,这个游戏几乎移植到了所有的任天堂游戏机,也包括电脑和手机。
吃豆(Pac-Man)是Namco公司开发的一个经典游戏,玩家控制游戏的主人公黄色小精灵吃掉藏在迷宫内所有的豆子,并且不能被“幽灵”抓到。
贪吃蛇(Retro
Snaker)是诺基亚手机上的一个元老级游戏,这个游戏短小精悍,很具可玩性,特别适合在手机上玩。
据称,已经有超过十亿人玩过这个游戏。
钻石情迷(Bejeweled)是一个很好玩的益智游戏,有点像“对对碰”,游戏规则很简单,移动相邻的两个钻石,使任一排产生有三个或以上的相同钻石,即消去,上面的钻石靠重力落下。
祖玛(Zuma)是一款休闲益智游戏,玩法很像QQ龙珠,将中间吐出来的珠子向着周围连环滚出的同色珠子射打,够三个就能炸裂消除,简单有趣。
炸弹人(Bomberman)是Hudson公司开发的一款基于迷宫的游戏,游戏主角炸弹人是一个机器人,基本操作是放置炸弹,以十字型的方式爆炸,来炸死敌人,也可以炸死自己,还有些增强威力与技能道具增加了游戏的可玩性。
波斯王子(Prince of
Persia)是上世纪九十年代的一个经典游戏,我以前在DOS上玩过的最早的游戏之一,可惜游戏续集一代不如一代,Gameloft将波斯王子一代进行了重新开发制作,命名为Prince
of Persia Classic,并支持手机,其在手机上的效果很不错。
模拟人生(The Sims)是Electronic
Arts开发的一款以模拟普通人生活为主题的游戏,玩家可以操控模拟人物进行日常生活、社区交流以及建造房屋。
在一个模拟的世界中,仿造真实的情境,控制生理和精神的需求。
手机版的模拟人生简化了原始电脑游戏的一些因素,使得其可以在手机上方便的操作。
我小时候也玩过,最近在找,搜索了好几天最后在油管找到答案了,封面一看就是他!
三星手机、2010年代、JAVA游戏、飞行、射击、机器人、变形
游戏名字叫:Arch Angel
//引入包
public class Exercise9_31 {
public static void main(String[] args) {
String[] words = { "write", "program", "that", "receive", "positive" }
//创建一个string 数组
char anotherGame
Scanner input = new Scanner(System.in)
//新建一个Scanner对象 用于读取用户输入
do {
//do while loop,用户输入Y就一直执行
int index = (int) (Math.random() * words.length)
//生成0-4之间的一个随机数
String hiddenWord = words[index]
//根据生成的随机数 选定hiddenword也就是你要猜的单词
StringBuilder guessedWord = new StringBuilder()
//新建一个StringBuilder对象 用来猜单词
for (int i = 0i <hiddenWord.length()i++)
guessedWord.append('*')
//先将要猜的单词以全部星号形式显示
int numberOfCorrectLettersGuessed = 0, numberOfMisses = 0
//两个整数 记录猜对的字母数 和猜错的字母数
while (numberOfCorrectLettersGuessed <hiddenWord.length()) {
//只要还没才出来 就一直执行
System.out.print("(Guess) Enter a letter in word " + guessedWord
+ " >")
//打印消息 让用户输入
String s = input.nextLine()
char letter = s.charAt(0)
//这两句读取用户输入的字母
if (guessedWord.indexOf(letter + "") >= 0) {
//如果这个字母已经显示了,已经猜过并且出现在要猜的单词里面(没有出现的话 index会是-1)
System.out.println("\t" + letter + " is already in the word")
} else if (hiddenWord.indexOf(letter) <0) {
//如果单词里面没这个单词
System.out.println("\t" + letter + " is not in the word")
numberOfMisses++
//猜错的数加一
} else {
int k = hiddenWord.indexOf(letter)
//最后一种情况 就是这个字母猜中了某个位置
while (k >= 0) {
guessedWord.setCharAt(k, letter)
//把这个字母替代星号 放到单词中
numberOfCorrectLettersGuessed++
//猜对的字母加一
k = hiddenWord.indexOf(letter, k + 1)
}
}
}
System.out.println("The word is " + hiddenWord + ". You missed "
+ numberOfMisses + ((numberOfMisses <= 1) ? " time" : " times"))
System.out.print("Do you want to guess for another word? Enter y or n>")
anotherGame = input.nextLine().charAt(0)
} while (anotherGame == 'y')
}
}
// CheckerDrag.javaimport java.awt.*import java.awt.event.*public class CheckerDrag extends java.applet.Applet{ // Dimension of checkerboard square. // 棋盘上每个小方格的尺寸 final static int SQUAREDIM = 40 // Dimension of checkerboard -- includes black outline. // 棋盘的尺寸 – 包括黑色的轮廓线 final static int BOARDDIM = 8 * SQUAREDIM + 2 // Dimension of checker -- 3/4 the dimension of a square. // 棋子的尺寸 – 方格尺寸的3/4 final static int CHECKERDIM = 3 * SQUAREDIM / 4 // Square colors are dark green or white. // 方格的颜色为深绿色或者白色 final static Color darkGreen = new Color (0, 128, 0) // Dragging flag -- set to true when user presses mouse button over checker // and cleared to false when user releases mouse button. // 拖动标记 --当用户在棋子上按下鼠标按键时设为true, // 释放鼠标按键时设为false boolean inDrag = false // Left coordinate of checkerboard's upper-left corner. // 棋盘左上角的左方向坐标 int boardx // Top coordinate of checkerboard's upper-left corner. //棋盘左上角的上方向坐标 int boardy // Left coordinate of checker rectangle origin (upper-left corner). // 棋子矩形原点(左上角)的左方向坐标 int ox // Top coordinate of checker rectangle origin (upper-left corner). // 棋子矩形原点(左上角)的上方向坐标 int oy // Left displacement between mouse coordinates at time of press and checker // rectangle origin. // 在按键时的鼠标坐标与棋子矩形原点之间的左方向位移 int relx // Top displacement between mouse coordinates at time of press and checker // rectangle origin. // 在按键时的鼠标坐标与棋子矩形原点之间的上方向位移 int rely // Width of applet drawing area. // applet绘图区域的宽度 int width // Height of applet drawing area. // applet绘图区域的高度 int height // Image buffer. // 图像缓冲 Image imBuffer // Graphics context associated with image buffer. // 图像缓冲相关联的图形背景 Graphics imG public void init () { // Obtain the size of the applet's drawing area. // 获取applet绘图区域的尺寸 width = getSize ().width height = getSize ().height // Create image buffer. // 创建图像缓冲 imBuffer = createImage (width, height) // Retrieve graphics context associated with image buffer. // 取出图像缓冲相关联的图形背景 imG = imBuffer.getGraphics () // Initialize checkerboard's origin, so that board is centered. // 初始化棋盘的原点,使棋盘在屏幕上居中 boardx = (width - BOARDDIM) / 2 + 1 boardy = (height - BOARDDIM) / 2 + 1 // Initialize checker's rectangle's starting origin so that checker is // centered in the square located in the top row and second column from // the left. // 初始化棋子矩形的起始原点,使得棋子在第一行左数第二列的方格里居中 ox = boardx + SQUAREDIM + (SQUAREDIM - CHECKERDIM) / 2 + 1 oy = boardy + (SQUAREDIM - CHECKERDIM) / 2 + 1 // Attach a mouse listener to the applet. That listener listens for // mouse-button press and mouse-button release events. // 向applet添加一个用来监听鼠标按键的按下和释放事件的鼠标监听器 addMouseListener (new MouseAdapter (){public void mousePressed (MouseEvent e){ // Obtain mouse coordinates at time of press. // 获取按键时的鼠标坐标 int x = e.getX () int y = e.getY () // If mouse is over draggable checker at time // of press (i.e., contains (x, y) returns // true), save distance between current mouse // coordinates and draggable checker origin // (which will always be positive) and set drag // flag to true (to indicate drag in progress). // 在按键时如果鼠标位于可拖动的棋子上方 // (也就是contains (x, y)返回true),则保存当前 // 鼠标坐标与棋子的原点之间的距离(始终为正值)并且 // 将拖动标志设为true(用来表明正处在拖动过程中) if (contains (x, y)) { relx = x - ox rely = y - oy inDrag = true }}boolean contains (int x, int y){ // Calculate center of draggable checker. // 计算棋子的中心位置 int cox = ox + CHECKERDIM / 2 int coy = oy + CHECKERDIM / 2 // Return true if (x, y) locates with bounds // of draggable checker. CHECKERDIM / 2 is the // radius. // 如果(x, y)仍处于棋子范围内则返回true // CHECKERDIM / 2为半径 return (cox - x) * (cox - x) + (coy - y) * (coy - y) < CHECKERDIM / 2 * CHECKERDIM / 2 }public void mouseReleased (MouseEvent e){ // When mouse is released, clear inDrag (to // indicate no drag in progress) if inDrag is // already set. // 当鼠标按键被释放时,如果inDrag已经为true, // 则将其置为false(用来表明不在拖动过程中) if (inDrag) inDrag = false }}) // Attach a mouse motion listener to the applet. That listener listens // for mouse drag events. //向applet添加一个用来监听鼠标拖动事件的鼠标运动监听器 addMouseMotionListener (new MouseMotionAdapter () { public void mouseDragged (MouseEvent e) { if (inDrag) { // Calculate draggable checker's new // origin (the upper-left corner of // the checker rectangle). // 计算棋子新的原点(棋子矩形的左上角) int tmpox = e.getX () - relxint tmpoy = e.getY () - rely// If the checker is not being moved // (at least partly) off board, // assign the previously calculated // origin (tmpox, tmpoy) as the // permanent origin (ox, oy), and // redraw the display area (with the // draggable checker at the new // coordinates). // 如果棋子(至少是棋子的一部分)没有被 // 移出棋盘,则将之前计算的原点 // (tmpox, tmpoy)赋值给永久性的原点(ox, oy), // 并且刷新显示区域(此时的棋子已经位于新坐标上) if (tmpox >boardx &&tmpoy >boardy &&tmpox + CHECKERDIM <boardx + BOARDDIM &&tmpoy + CHECKERDIM <boardy + BOARDDIM) { ox = tmpoxoy = tmpoyrepaint ()} } } }) } public void paint (Graphics g) { // Paint the checkerboard over which the checker will be dragged. // 在棋子将要被拖动的位置上绘制棋盘 paintCheckerBoard (imG, boardx, boardy) // Paint the checker that will be dragged. // 绘制即将被拖动的棋子 paintChecker (imG, ox, oy) // Draw contents of image buffer. // 绘制图像缓冲的内容 g.drawImage (imBuffer, 0, 0, this) } void paintChecker (Graphics g, int x, int y) { // Set checker shadow color. // 设置棋子阴影的颜色 g.setColor (Color.black) // Paint checker shadow. // 绘制棋子的阴影 g.fillOval (x, y, CHECKERDIM, CHECKERDIM) // Set checker color. // 设置棋子颜色 g.setColor (Color.red) // Paint checker. // 绘制棋子 g.fillOval (x, y, CHECKERDIM - CHECKERDIM / 13, CHECKERDIM - CHECKERDIM / 13) } void paintCheckerBoard (Graphics g, int x, int y) { // Paint checkerboard outline. // 绘制棋盘轮廓线 g.setColor (Color.black) g.drawRect (x, y, 8 * SQUAREDIM + 1, 8 * SQUAREDIM + 1) // Paint checkerboard. // 绘制棋盘 for (int row = 0row <8row++) { g.setColor (((row &1) != 0) ? darkGreen : Color.white) for (int col = 0col <8col++) {g.fillRect (x + 1 + col * SQUAREDIM, y + 1 + row * SQUAREDIM,SQUAREDIM, SQUAREDIM) g.setColor ((g.getColor () == darkGreen) ? Color.white :darkGreen) } } } // The AWT invokes the update() method in response to the repaint() method // calls that are made as a checker is dragged. The default implementation // of this method, which is inherited from the Container class, clears the // applet's drawing area to the background color prior to calling paint(). // This clearing followed by drawing causes flicker. CheckerDrag overrides // update() to prevent the background from being cleared, which eliminates // the flicker. // AWT调用了update()方法来响应拖动棋子时所调用的repaint()方法。该方法从 // Container类继承的默认实现会在调用paint()之前,将applet的绘图区域清除 // 为背景色,这种绘制之后的清除就导致了闪烁。CheckerDrag重写了update()来 // 防止背景被清除,从而消除了闪烁。 public void update (Graphics g) { paint (g) }}
Java是一种高级的面向对象的编程语言,也是一个平台。Java程序可以在有JVM的任何系统上运行,这是Java的核心优势,因此Java的应用范围很广。
学会Java可以从事的工作有:
可以做Android:Android手机,随便打开一个APP应用,他们就是用的Java语言。从Android刚刚起步,到今天许多的Android应用都是由Java程序员开发的。虽然Android运用了不同的JVM以及不同的封装方式,但是代码还是用Java语言所编写的。
可以编写游戏:很多耳熟能详的游戏都是通过Java语言编写的,并且Java不仅仅是在手机端游戏中应用广泛,同样在电脑端也体现了Java语言的强大功能。
可以做Hadoop大数据开发:稍微有点实力的企业都在上大数据项目,而Hadoop本身又是Java开发的,再加上Hadoop工程师薪资普遍比纯Java开发要高3000以上,所以有很多搞Java的都在往Hadoop大数据方向转。
可以做服务器程序:Java在金融服务业的应用非常广泛。许多银行都用Java来编写前台和后台的电子交易系统,结算和确认系统,数据处理项目以及其他项目。
可以做嵌入式领域:Java在嵌入式领域发展空间很大。在这个平台上,你只需要130KB就能够使用Java技术(在智能卡或者传感器上)。最初,Java被设计用来在嵌入式设备上工作。事实上,这只是其中的一个领域。
可以做网站领域:Java在电子商务领域以及网站开发领域占据着大部分席位。
除了以上这些,Java在科学应用等领域都有不错的发展前景。想了解更多有关JAVA的相关信息,可以咨询北大青鸟。
祝你学有所成,望采纳。
进入我的世界游戏,走进地洞。触发寻找循声守卫任务。
2、走向深处
向地洞深处走去。
3、发现循声守卫
在地洞的深处发现循声守卫,有声音,会召唤出循声守卫。
4、获得全身护甲
循声守卫由于长期生活在地底它的视觉逐渐退化,同时具有很强的听声辨位的能力,要有全身护甲才能消灭这个怪物。