用JAVA编写一个小程序,不限类型好玩点的。

用JAVA编写一个小程序,不限类型好玩点的。,第1张

控制台小游戏 class YZDEL\r\n{\r\n public static void main(String[] args)\r\n {\r\njava.util.Random Shiji = new java.util.Random()\r\n java.util.Scanner Shuru = new java.util.Scanner(System.in)\r\n java.util.Scanner Nandu = new java.util.Scanner(System.in)\r\n int YingxHP = 20\r\n int YingxMP = 0\r\n int MogHP = 20\r\n int MogMP = 0\r\n int MogDo = 0\r\n int fangyu = 0\r\n System.out.println("┏━━━━_┏━━┣┣┓ _ ┓┏━┳━┳┓┓━┓ ")\r\n System.out.println("┏┣━━━┓┏━━┣┣┓ ┃┏ ┃ ┃┓┃ _ ")\r\n System.out.println("┣┣━━━┫_━━┻__ ┃_┓┃ ┃_┏━┣━━┓")\r\n System.out.println("┣┣━━━┫┏━━━━┓_━━┣━┛┗━┻━┻┛┃┃")\r\n System.out.println("┏┣━━━┓┣━━━━┫ ┃┃┃┗__┃嫌配拦┃┣━_")\r\n System.out.println(" ┛┗_┗━━━━_┗___━━┛┛┗━__━┛")\r\n System.out.println()\r\n System.out.println(" 作者:天狐空幻")\r\n System.out.println()\r\n System.out.println("说明:勇者的 *** 作方式为以下所示:")\r\n System.out.println(" 使用攻击需消耗1MP 伤害1HP")\r\n System.out.println(" 使用蓄力可增加1MP 伤害0HP")\r\n System.out.println(" 使用躲闪需消耗0MP 伤害0HP 躲避攻击")\r\n System.out.println(" 使用重击需消耗3MP 伤害2HP 防御无效")\r\n System.out.println(" 恶龙攻击力高, 注意防御是取胜的关键")\r\n System.out.println(" 恶龙卖肆MP达到4时可能会放出火焰无法躲避")\r\n System.out.println(" 准备说明完毕,那么让我们来挑战恶龙吧!")\r\n System.out.println("==================================")\r\n //难度选择\r\n System.out.println("请选择难度")\r\n System.out.println("1.娱乐 2.挑芹胡战 3.噩梦")\r\n int ND = Nandu.nextInt()\r\n System.out.println("==================================")\r\n while(true) \r\n { \r\n //HP,MP的显示 \r\n System.out.print("勇者: ")\r\n System.out.print(" HP ")\r\n for(int x=YingxHPx>0x--) System.out.print("*")\r\n System.out.print(" "+YingxHP)\r\n System.out.println()\r\n System.out.print(" ")\r\n System.out.print(" MP ")\r\n for(int x=YingxMPx>0x--) System.out.print("*")\r\n System.out.print(" "+YingxMP)\r\n System.out.println()\r\n System.out.print("恶龙: ")\r\n System.out.print(" HP ")\r\n for(int y=MogHPy>0y--) System.out.print("*")\r\n System.out.print(" "+MogHP)\r\n System.out.println()\r\n System.out.print(" ")\r\n System.out.print(" MP ")\r\n for(int y=MogMPy>0y--) System.out.print("*")\r\n System.out.print(" "+MogMP)\r\n System.out.println()\r\n System.out.println("==================================")\r\n //胜利判定 \r\n if(YingxHP2&&MogMP>2) MogDo = 2\r\n else if(MogMP0) MogDo=2 \r\n if(Do==2&&MogMP==0) MogDo=0\r\n if(Do==3&&MogMP=4) MogDo=3}//变态判定。。 \r\n //战斗分析\r\n //防御 \r\n if(Do==3) {fangyu=1System.out.println("你灵巧的躲避攻击!")}\r\nif(MogDo==1) {fangyu=1System.out.println("恶龙进行防御!")}\r\n //角色判定 \r\n if(Do==1&&YingxMP==0) {System.out.println("MP不足!")}\r\n if(Do==1&&YingxMP>0) {\r\nif(fangyu==0) {MogHP=MogHP-1YingxMP=YingxMP-1System.out.println("你发动攻击!")}\r\nif(fangyu==1) {YingxMP=YingxMP-1System.out.println("你的攻击被格挡!")}} \r\n if(Do==2) {YingxMP=YingxMP+1System.out.println("你进行蓄力!")}\r\n if(Do==4&&YingxMP2) {MogHP=MogHP-2YingxMP=YingxMP-3System.out.println("你发动重击!")}\r\n if(Do>4) System.out.println("你不知所措...")\r\n //敌人判定 \r\n if(MogDo==2&&MogMP==0) {System.out.println("恶龙在发呆!")}\r\n if(MogDo==2&&MogMP>0) {\r\nif(fangyu==0) {YingxHP=YingxHP-2MogMP=MogMP-1System.out.println("恶龙发动攻击!")}\r\nif(fangyu==1) {MogMP=MogMP-1System.out.println("恶龙的攻击被躲开了!")}} \r\n if(MogDo==0) {MogMP=MogMP+1System.out.println("恶龙进行蓄力!")} \r\n if(MogDo==3&&MogMP3) {YingxHP=YingxHP-4MogMP=MogMP-4System.out.println("恶龙发动火焰吐吸!躲避不能!")} \r\n //结束 \r\n fangyu = 0\r\n MogDo = 0\r\n System.out.println("____________________")\r\n System.out.println()\r\n System.out.println("==================================") }\r\n }\r\n}

import java.util.Random

import javax.swing.*

import java.awt.BorderLayout

import java.awt.Container

import java.awt.event.*

public class SmallGame extends JFrame {

private Random r

private String[] box = { "剪刀", "石头", "布" }

private JComboBox choice

private JTextArea ta

private JLabel lb

private int win = 0

private int loss = 0

private int equal = 0

public SmallGame() {

initial()//调用initial方法,就是下面定义的那个.该方法主要是初始界面.

pack()

setTitle("游戏主界面")

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

setLocation(400, 300)

setVisible(true)

}

public static void main(String[] args) {

new SmallGame()

}

public void initial() {

r = new Random()// 生成随机数

choice = new JComboBox()//初始化choice这个下拉框.也就是你选择出剪子还是石头什么的那个下拉框..

for (int i = 0i <box.lengthi++) {//为那个下拉框赋值.用前面定义的private String[] box = { "剪刀", "石头", "布" }附值.这样下拉框就有三个选项了..

choice.addItem(box[i])

}

ta = new JTextArea(3, 15)//初始化那个文本域3行15列

ta.setEditable(false)//让用户不能编辑那个文本域即不能在里面写东西

JButton okBut = new JButton("出招")//新建一个出招的按钮

okBut.addActionListener(new ActionListener() {//给出招按钮加个监听.意思就是监听着这个按钮看用户有没有点击它..如果点击就执行下面这个帆颂方法

public void actionPerformed(ActionEvent e) {//就是这个方法

ta.setText(getResult())//给那个文本域赋值..就是显示结果 赋值的是通过getResult()这个方法得到的返回值 getResult()这个方法下面会讲

lb.setText(getTotal())//给分数那个LABEL赋值..就是显示分数..赋值的是通过getTotal()这个方法得到的返回值

}

})

JButton clearBut = new JButton("清除分数")//新建一个清楚分数的按钮

clearBut.addActionListener(new ActionListener() {//同上给他加个监听

public void actionPerformed(ActionEvent e) {//如果用户点击了就执行这个方法

ta.setText("")//给文本域赋值为""..其实就是清楚他的内容

win = 0//win赋值为0

loss = 0//同上

equal = 0//同上

lb.setText(getTotal())//给显示分数那个赋值..因为前面已经都赋值为0了..所以这句就是让显示分数那都为0

}

})

lb = new JLabel(getTotal())//初始化那个显示分数的东西

JPanel choicePanel = new JPanel()//定义稿察一个面板..面板就相当于一个画图用的东西..可以在键轿茄上面加按钮啊文本域什么的..

choicePanel.add(choice)//把下拉框加到面板里

choicePanel.add(okBut)//把出招按钮加到面板里

choicePanel.add(clearBut)//把清楚分数按钮加到面板里

JScrollPane resultPanel = new JScrollPane(ta)//把文本域加到一个可滚动的面板里面..JScrollPane就是可滚动的面板..这样如果那个文本域内容太多就会出现滚动条..而不是变大

JPanel totalPanel = new JPanel()//再定义个面板..用来显示分数的..

totalPanel.add(lb)//把那个显示分数的label加到里面去

Container contentPane = getContentPane()//下面就是布局了..

contentPane.setLayout(new BorderLayout())

contentPane.add(choicePanel, BorderLayout.NORTH)

contentPane.add(resultPanel, BorderLayout.CENTER)

contentPane.add(totalPanel, BorderLayout.SOUTH)

}

public String getResult() {//获得结果的方法 返回值是一个String..这个返回值会用来显示在文本域里面

String tmp = ""

int boxPeop = choice.getSelectedIndex()//获得你选择的那个的索引..从0开始的..

int boxComp = getBoxComp()//获得电脑出的索引..就是随机的0-2的数

tmp += "你出:\t" + box[boxPeop]//下面你应该明白了..

tmp += "\n电脑出:\t" + box[boxComp]

tmp += "\n结果:\t" + check(boxPeop, boxComp)

return tmp

}

public int getBoxComp() {//就是产生一个0-2的随机数..

return r.nextInt(3)//Random的nextInt(int i)方法就是产生一个[0-i)的随机整数 所以nextInt(3)就是[0-2]的随机数

}

public String check(int boxPeop, int boxComp) {//这个就是判断你选择的和电脑选择的比较结果..是输是赢还是平..boxPeop就是你选择的..boxComp就是电脑选择的..

String result = ""

if (boxPeop == (boxComp + 1) % 3) {//(boxComp + 1) % 3 电脑选择的加上1加除以3取余..也就是如果电脑选0这个就为1..这个判断的意思就是如果电脑选0并且你选1..那么就是电脑选了

//private String[] box = { "剪刀", "石头", "布" }这里面下标为0的..你选了下标为1的..就是电脑选剪刀你选石头..所以你赢了..如果电脑选1..(boxComp + 1) % 3就为2..意思就是

//电脑选了石头你选了布..所以你赢了..另外一种情况你明白了撒..只有三种情况你赢..所以这里都包含了..也只包含了那三种..

result = "你赢了!"

win++//赢了就让记你赢的次数的那个变量加1

} else if (boxPeop == boxComp) {//相等当然平手了

result = "平"

equal++//同上了

} else {//除了赢和平当然就是输了..

result = "你输了!"

loss++//同上

}

return result

}

public int getPoint() {

return (win - loss) * 10

}

public String getTotal() {

return "赢:" + win + " 平:" + equal + " 输:" + loss + " 得分:"

+ getPoint()

}

}

希望你能明白哈。。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/8241069.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-14
下一篇2023-04-14

发表评论

登录后才能评论

评论列表(0条)

    保存