Java實(shí)現(xiàn)猜拳游戲的核心在于電腦隨機(jī)數(shù)的生成,Java中的隨機(jī)數(shù)生成方法是:
專(zhuān)注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)醴陵免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
首先引入包? ?import java.util.*;??然后???int r=new Random().nextInt(3);??(nextInt中的數(shù)字三代表隨機(jī)數(shù)生成的個(gè)數(shù),從零開(kāi)始)
所以在猜拳的輸入中需要有0、1、2三個(gè)數(shù)字代替,如果要輸入漢字,則用if進(jìn)行相應(yīng)判斷即可。
在實(shí)現(xiàn)的游戲中實(shí)現(xiàn)①猜拳;②記錄勝負(fù);③玩家決定游戲局?jǐn)?shù);④輸出獲勝、失敗及平局;⑤統(tǒng)計(jì)總共的勝負(fù)結(jié)果(根據(jù)獲勝次數(shù)判斷)
①猜拳基礎(chǔ)功能:該部分代碼可以放到一個(gè)方法中,減少主函數(shù)代碼量。
電腦出拳即??int r=new Random().nextInt(3);??注意:該部分一定要寫(xiě)在for循環(huán)內(nèi)部,否則無(wú)法實(shí)現(xiàn)每次不同的隨機(jī)數(shù)。
通過(guò)if判斷雙方出拳是否相等? ?if(a==0r==0)? else?if(a==0r==1)? else if(a==0r==2)? ?即可實(shí)現(xiàn)猜拳,if內(nèi)直接輸出相關(guān)語(yǔ)句即可
②記錄勝負(fù):? 定義猜拳方法為int ,通過(guò)返回值記錄相關(guān)比賽的勝負(fù)情況? ,可以用0--失??;1--獲勝;2--平局 進(jìn)行記錄,在主函數(shù)中對(duì)相應(yīng)拋出的數(shù)字記錄即可
if(a==0r==0){
System.out.println("The computer comes out with cloth,it was a draw. ");
return 2;
}
h=comp.compare(a,r); if (h==1) j++;
登錄后復(fù)制
③玩家決定局?jǐn)?shù): 定義一個(gè)數(shù),在循環(huán)中不大于該數(shù)即可
④輸出獲勝、失敗及平局: j、k即勝利和失敗,平局?jǐn)?shù)即n-j-k。
⑤統(tǒng)計(jì)結(jié)果,直接用if比較i、j的數(shù)字結(jié)果即可。
主函數(shù)部分:
package SS2_5;
import java.util.*;
public class Main {
public static void main(String args[]){
Scanner scanner=new Scanner(System.in);
Compare comp=new Compare();
int h=0,j=0,k=0;
System.out.println("rules:0--cloth;1--stone;2--scissors.\nU can choose how many times you want to play:");
int n=scanner.nextInt();
for(int i=1;i=n;i++){
System.out.print("It's the "+i+" round,your turn:");
int a=scanner.nextInt();
int r=new Random().nextInt(3);
switch (a){
case 0:
h=comp.compare(a,r);
break;
case 1:
h=comp.compare(a,r);
break;
case 2:
h=comp.compare(a,r);
break;
default:
System.out.println("Wrong number!");
break;
}
if (h==1)
j++;
else if(h==0)
k++;
}
System.out.println("The total times you won are "+j+",The draw times are "+(n-j-k)+".");
if(jk)
System.out.println("You are the final winner");
else if(kj)
System.out.println("The computer is the winner.");
if(j==k)
System.out.println("The final result is draw");
}
}
登錄后復(fù)制
compare方法部分
package SS2_5;
public class Compare {
public int compare(int a,int r){
int counter=0;
if(a==0r==0){
System.out.println("The computer comes out with cloth,it was a draw. ");
return 2;
}
else if(a==0r==1){
System.out.println("The computer comes out with stone, you won. ");
return 1;
}
else if(a==0r==2){
System.out.println("The computer comes out with scissor,you lost. ");
return 0;
}
else if(a==1r==0){
System.out.println("The computer comes out with cloth,you lost. ");
return 0;
}
else if(a==1r==1){
System.out.println("The computer comes out with stone,it was a draw. ");
return 2;
}
else if(a==1r==2){
System.out.println("The computer comes out with scissors,you won. ");
return 1;
}
else if(a==2r==0){
System.out.println("The computer comes out with cloth,you won. ");
return 1;
}
else if(a==2r==1){
System.out.println("The computer comes out with stone,you lost. ");
return 0;
}
else if(a==2r==2){
System.out.println("The computer comes out with scissors,it was a draw. ");
return 2;
}
else
return 0;
}
}
登錄后復(fù)制
java
704拖拉機(jī)
精選推薦
廣告
java寫(xiě)簡(jiǎn)單的猜拳游戲
2下載·0評(píng)論
2016年7月27日
用Java編寫(xiě)的猜拳小游戲
2029閱讀·0評(píng)論·0點(diǎn)贊
2021年3月7日
Java猜拳游戲和Random的應(yīng)用
21閱讀·0評(píng)論·0點(diǎn)贊
2022年10月24日
java實(shí)現(xiàn)完整版猜拳小游戲
25下載·0評(píng)論
2018年11月22日
用python實(shí)現(xiàn)功能猜拳
1137閱讀·2評(píng)論·3點(diǎn)贊
2022年7月14日
java猜拳switch計(jì)分制_java----猜拳(10局分勝負(fù))
117閱讀·0評(píng)論·1點(diǎn)贊
2021年3月15日
二手拖拉機(jī)交易市場(chǎng),你還在高價(jià)買(mǎi)嗎?
精選推薦
廣告
利用Java編寫(xiě)簡(jiǎn)單的猜拳游戲
911閱讀·0評(píng)論·1點(diǎn)贊
2022年9月8日
Java簡(jiǎn)單實(shí)現(xiàn)猜拳游戲
1.1W閱讀·1評(píng)論·2點(diǎn)贊
2022年1月23日
java猜拳游戲代碼_Java實(shí)現(xiàn)簡(jiǎn)單猜拳游戲
4496閱讀·0評(píng)論·0點(diǎn)贊
2021年3月1日
用java來(lái)寫(xiě)一個(gè)簡(jiǎn)單的猜拳小游戲
890閱讀·1評(píng)論·1點(diǎn)贊
2022年7月26日
java實(shí)現(xiàn)猜拳游戲
3180閱讀·2評(píng)論·1點(diǎn)贊
2022年5月4日
JAVA編寫(xiě)猜拳游戲
3037閱讀·3評(píng)論·3點(diǎn)贊
2021年3月16日
[Java教程]17.實(shí)戰(zhàn),趣味猜拳小游戲
8040閱讀·2評(píng)論·3點(diǎn)贊
2020年6月24日
怎么用java實(shí)現(xiàn)人機(jī)猜拳?
1959閱讀·6評(píng)論·9點(diǎn)贊
2021年7月22日
Java Random經(jīng)典例子【猜拳游戲】
4318閱讀·0評(píng)論·0點(diǎn)贊
2014年3月22日
java的人機(jī)猜拳代碼_Java實(shí)現(xiàn)人機(jī)猜拳游戲
702閱讀·0評(píng)論·2點(diǎn)贊
2021年3月12日
Java基礎(chǔ)練習(xí)之猜拳游戲
363閱讀·1評(píng)論·1點(diǎn)贊
2021年8月19日
用java寫(xiě)猜拳小游戲
1096閱讀·0評(píng)論·1點(diǎn)贊
2021年9月1日
Java猜拳小游戲
97閱讀·0評(píng)論·0點(diǎn)贊
2022年8月23日
java猜拳小游戲
500閱讀·1評(píng)論·0點(diǎn)贊
2022年7月14日
comp是電腦產(chǎn)生的隨機(jī)數(shù)字(電腦出的拳),people 是人出的拳。 因?yàn)榧舻妒^布只有 1 2 3
。如果電腦的數(shù)字比的你剛好大1,就是它比你的大。 如21,32對(duì)應(yīng)就是(石頭大于剪刀,布大于石頭)。 但也有可能是剪刀大于布 。 那么剪刀的位子是1 ,布的位子是3. 所以當(dāng)電腦數(shù)字減你的數(shù)字等于2時(shí) 就是(電腦出的布 ,你出的石頭這樣的情況了)。
所以是if((comp-people)==-1||(comp-people)==2) 這兩者結(jié)合就是你贏的時(shí)候
自己純手打,老半天才弄出來(lái)啊
import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.util.Random;
import javax.swing.AbstractAction;
import javax.swing.Box;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Demo2 extends JFrame {
private JLabel lb1, lb2, lb3, lb4; // 提示標(biāo)簽
private JTextField ta1, ta2;// 兩個(gè)文本框
private JButton b1, b2, b3; // 三個(gè)按鈕
private JPanel p1, p2; // 兩個(gè)JPanel面板
public Demo2() {
// 初始化所有組件
lb1 = new JLabel("歡迎使用人機(jī)猜拳程序");
lb2 = new JLabel("你出拳: ");
lb3 = new JLabel("電腦出拳:");
lb4 = new JLabel("結(jié)果");
ta1 = new JTextField();
ta1.setPreferredSize(new Dimension(60, 60)); // 設(shè)置大小
ta1.setEditable(false);//設(shè)置不可編輯
ta2 = new JTextField();
ta2.setPreferredSize(new Dimension(60, 60));
ta2.setEditable(false);//設(shè)置不可編輯
b1 = new JButton("剪刀");
b2 = new JButton("石頭");
b3 = new JButton("布");
p1 = new JPanel();
p2 = new JPanel();
// 設(shè)置第一個(gè)面板內(nèi)容
Box box = Box.createVerticalBox();
Box box1 = Box.createHorizontalBox();
box1.add(lb2);
box1.add(ta1);
box1.add(lb3);
box1.add(ta2);
box.add(lb1);
box.add(Box.createVerticalStrut(40));
box.add(box1);
box.add(Box.createVerticalStrut(10));
box.add(lb4);
box.add(new JLabel());
p1.add(box);
// 設(shè)置第二個(gè)面板
p2.setLayout(new GridBagLayout()); // 使用GridBagLayout布局管理器
p2.setPreferredSize(new Dimension(0, 60));
GridBagConstraints g2 = new GridBagConstraints();
g2.fill = GridBagConstraints.BOTH;
g2.weightx = 1.0;
g2.weighty = 1.0;
g2.gridx = 0;
g2.gridy = 0;
p2.add(b1, g2);
g2.gridx = 1;
p2.add(b2, g2);
g2.gridx = 2;
p2.add(b3, g2);
//為3個(gè)按鈕添加事件
b1.addActionListener(new buttonAction());
b2.addActionListener(new buttonAction());
b3.addActionListener(new buttonAction());
this.getContentPane().add(p1);
this.getContentPane().add(p2, BorderLayout.SOUTH);
this.setTitle("機(jī)器人猜拳游戲");
this.setSize(300, 300);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
//事件類(lèi)
class buttonAction extends AbstractAction{
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==b1){
ta1.setText("剪刀");
init(ta1.getText());
}else if(e.getSource()==b2){
ta1.setText("石頭");
init(ta1.getText());
}else if(e.getSource()==b3){
ta1.setText("布");
init(ta1.getText());
}
}
// 模擬電腦出拳,產(chǎn)生三個(gè)隨機(jī)數(shù)。0代表剪刀,1代表石頭,2代表布
public String getQuan(){
String str="";
int num=new Random().nextInt(3) ;
if(num==0){
str="剪刀";
}else if(num==1){
str="石頭";
}else if(num==2){
str="布";
}
return str;
}
// 判斷輸贏方法
public String isying(String s1,String s2){
String s="";
if(s1.equals(s2)){
s="平局";
}else if(s1.equals("剪刀")s2.equals("布")){
s="你贏";
}else if(s1.equals("石頭")s2.equals("剪刀")){
s="你贏";
}else if(s1.equals("布")s2.equals("石頭")){
s="你贏";
}else{
s="電腦贏";
}
return s;
}
public void init(String wo){
String sy=""; // 保存輸贏結(jié)果
String dncq=getQuan(); //電腦出拳
if(wo.equals(dncq)){
sy="平局";
}else if(wo.equals("剪刀")dncq.equals("布")){
sy="你贏";
}else if(wo.equals("石頭")dncq.equals("剪刀")){
sy="你贏";
}else if(wo.equals("布")dncq.equals("石頭")){
sy="你贏";
}else{
sy="電腦贏";
}
ta2.setText(dncq);// 電腦出拳
lb4.setText("結(jié)果:"+sy);
}
}
public static void main(String[] args) {
new Demo2();
}
}