Java游戏
导入javax . swing . *;
导入Java . awt . borderlayout;
导入Java . awt . container;
导入Java . awt . event . *;
公共类SmallGame扩展JFrame {
私有随机r;
私弦[]框= { "剪刀","石头","布" };
私有JComboBox选择;
私人JTextArea ta
二等兵JLabel lb
private int win = 0;
私有int loss = 0;
private int equal = 0;
公共小型游戏(){
initial();//调用初始方法,定义如下。这个方法主要是初始接口。
pack();
SetTitle(“游戏主界面”);
setDefaultCloseOperation(JFrame。EXIT _ ON _ CLOSE);
setLocation(400,300);
set visible(true);
}
公共静态void main(String[] args) {
new small game();
}
public void initial() {
r = new Random();//生成随机数
choice = new JComboBox();//初始化选择的下拉框。也就是你选择剪刀或者石头的下拉框。..
for(int I = 0;我& ltbox .长度;I++) {//为下拉框赋值。使用之前定义的私有String[] box = { "剪刀","石头","布" };附加价值。所以下拉框里有三个选项。..
choice . additem(box[I]);
}
ta =新JTextArea(3,15);//初始化文本字段3行15列。
ta . set editable(false);//这样用户就不能编辑那个文本字段,也就是说,他们不能在里面写东西。
JButton ok but = new JButton(" Push ");//创建新的按钮
好吧但是。AddActionListener(New Action Listener()){//向按钮添加监视器。这意味着监听这个按钮,看看用户是否点击了它...如果单击,则执行以下方法。
public void action performed(action event e){//就是这个方法。
ta . settext(get result());//为文本字段赋值...也就是说,显示结果的赋值是getResult()方法获得的返回值。这种方法将在下面讨论。
lb . settext(getTotal());//为分数的标签赋值...就是显示分数...赋值是getTotal()方法获得的返回值。
}
});
JButton clear but = new JButton(" clear score ");//创建一个新的带有清晰分数的按钮。
清楚但是。addactionlistener(new action listener(){//同上给他一个监视器。
public void action performed(action event e){//如果用户单击该方法,则执行该方法。
ta . settext(" ");//将值赋给文本字段作为“”...其实就是知道他的内容。
win = 0;//win赋给0。
损失= 0;//同上
等于= 0;//同上
lb . settext(getTotal());//给显示分数赋值...因为所有先前的值都被赋值为0..所以这句话的意思是显示分数全是0。
}
});
lb = new JLabel(getTotal());//初始化显示分数的东西。
JPanel choice panel = new JPanel();//定义一个面板..面板相当于画画的东西..你可以在上面添加按钮,文本字段什么的。..
choicePanel.add(选择);//将下拉框添加到面板。
choice panel . add(ok but);//将按钮添加到面板。
choice panel . add(clear but);//将“清除分数”按钮添加到面板中。
JScrollPane result panel = new JScrollPane(ta);//向可滚动面板添加文本字段...JScrollPane是一个可滚动面板...这样,如果文本字段中内容过多,就会出现一个滚动条...而不是变大。
JPanel total panel = new JPanel();//定义另一个面板...显示分数。..
total panel . add(lb);//给它添加显示分数的标签。
container content pane = getContentPane();//这里是布局。..
content pane . set layout(new BorderLayout());
contentPane.add(choicePanel,BorderLayout。北);
contentPane.add(resultPanel,BorderLayout。中心);
contentPane.add(totalPanel,BorderLayout。南);
}
Public String getResult() {//获取结果的方法返回一个字符串...该返回值将用于显示在文本字段中。
字符串tmp =
int box peop = choice . getselectedindex();//获取所选内容的索引...从0开始。..
int box comp = getbox comp();//从计算机中获取索引...这是一个0-2的随机数。
Tmp += "你出去:\ t "+box[box peop];//下面你应该明白了。..
tmp+= " \ n计算机输出:\ t "+box[box comp];
tmp+= " \ n result:\ t "+check(boxPeop,boxComp);
返回tmp
}
Public int getBoxComp() {//是生成一个0-2的随机数。..
返回r . nextint(3);//Random的nextInt(int i)方法是生成一个[0-i]的随机整数,所以nextInt(3)是一个[0-2]的随机数。
}
Public string check (int boxPeop,int box comp){//这是判断你的选择和计算机的选择的比较结果。这是一场胜利还是平局..Box peop是您的选择..盒子comp是电脑的选择。..
字符串结果= " ";
If(box peop = =(box comp+1)% 3){/(box comp+1)% 3如果计算机选择,将1相加并除以3得到余数...也就是说,如果计算机选择0,这就是1..这个判断意味着,如果计算机选择0,而你选择65438。
//private String[] box = { "剪刀","石头","布" };下标0..你选择了下标1...这意味着电脑选择剪刀,而你选择石头...所以你赢了...如果计算机选择1...(boxcomp+1)% 3是2...也就是说。
//电脑选了石头,你选了布...所以你赢了...在另一种情况下,你明白吗...只有三个案子,你赢了...所以它包括所有...也只有这三种情况。..
结果= "你赢了!";
win++;//如果赢了,记录赢的次数的变量加1。
} else if (boxPeop == boxComp) {//等于,当然是偶数。
Result = "扁平";
等于++;//同上
} else {//除了赢得和平,当然是失去。..
结果= "你输了!";
loss++;//同上
}
返回结果;
}
public int getPoint() {
return(赢输)* 10;
}
公共字符串getTotal() {
返回“赢:“+赢+”平局:“+等于+”输:“+输+”得分:
+getPoint();
}
}
我希望你能理解。。