「java编程石头」java写石头剪刀布

博主:adminadmin 2023-03-20 15:52:09 473

本篇文章给大家谈谈java编程石头,以及java写石头剪刀布对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

做一个java剪刀石头

java剪刀石头游戏,可以使用scanner类接收控制端输入的数值,利用if-else语句进行判断,实例如下:

import java.util.Scanner;

  class Person {

   int n = 0;

   public int input() {

System.out.println("请输入:石头,剪刀,布");

    

    Scanner sc = new Scanner(System.in);

    

       String s = sc.next();

    if(s.equals("石头")){

     n = 1;

    }else if(s.equals("剪刀")){

     n = 2;

    }else if(s.equals("布")){

     n = 3;

    }else if(s.equals("exit")){

     System.out.print("系统退出了");

     System.exit(0);

    }

   

    return n;

     

    }

    

  } 

class Computer {

    public int random() {

     int h = (int)(Math.random()*3+1);

     return h;

    }

    

   }

public class Game {

    public void result(int n,int m){

     if(n == m){

    System.out.println("平了");

   }else{

    if(m==1){

     if(n==2){

      System.out.println("你输了");

     }else if(n ==3){   

       System.out.println("你赢了");

     }

      }else if(m == 2) {

       if(n == 1){

        System.out.println("你赢了");  

       }else if(n ==3){

        System.out.println("你输了");

       }

       

      }else if( m ==3 ){

       if(n==1){

        System.out.println("你输了");  

       }else if(n == 2){

        System.out.println("你赢了");    

       }

      } 

   }

   

    }

public static void main(String[] args) {

     while(true){

     Person p = new Person();

     Computer c = new Computer();

     Game g = new Game();

     g.result(p.input(), c.random());

     

    }

   }

   }

用java编一个程序,实现两个人玩“石头、剪刀、布”,要求用枚举类型定义石头、剪刀、布

public class Test {

public enum Hand{//猜拳枚举

ROCK,SCISSORS,PAPER;

public static Hand getHand(int index){

Hand hand = null;

switch (index) {

case 0:

hand = Hand.ROCK;

break;

case 1:

hand = Hand.SCISSORS;

break;

case 2:

hand = Hand.PAPER;

break;

default:

hand = Hand.ROCK;

break;

}

return hand;

}

}

public static void main(String[] args) {

//两个人猜拳5次

for (int i = 0; i  5; i++) {

Hand hand1 = Hand.getHand((int)(Math.random()*3));

Hand hand2 = Hand.getHand((int)(Math.random()*3));

judge(hand1, hand2);

}

}

private static void judge(Hand hand1,Hand hand2){

if(hand1 == Hand.ROCK){

if(hand2 == Hand.ROCK){

System.out.println("第一个出拳头,第二个出拳头,平局");

}else if(hand2 == Hand.SCISSORS){

System.out.println("第一个出拳头,第二个出剪刀,第一个赢");

}else if(hand2 == Hand.PAPER){

System.out.println("第一个出拳头,第二个出布,第二个赢");

}

}else if(hand1 == Hand.SCISSORS){

if(hand2 == Hand.ROCK){

System.out.println("第一个出剪刀,第二个出拳头,第二个赢");

}else if(hand2 == Hand.SCISSORS){

System.out.println("第一个出剪刀,第二个出剪刀,平局");

}else if(hand2 == Hand.PAPER){

System.out.println("第一个出剪刀,第二个出布,第一个赢");

}

}else if(hand1 == Hand.PAPER){

if(hand2 == Hand.ROCK){

System.out.println("第一个出布,第二个出拳头,第一个赢");

}else if(hand2 == Hand.SCISSORS){

System.out.println("第一个出布,第二个出剪刀,第二个赢");

}else if(hand2 == Hand.PAPER){

System.out.println("第一个出布,第二个出布,平局");

}

}

}

}

应该不是最优解决办法,先这么着把

用Java语言编写剪刀石头布,效果如下

import java.util.Random;

import java.util.Scanner;

public class FingerGuessingGame {

private static Scanner sc;

private static Random rad;

private static final String[] FINGERS = {"剪刀", "石头", "布"};

private static int win = 0, loose = 0, draw = 0;

public static void main(String[] args) {

sc = new Scanner(System.in);

rad = new Random();

while(true) {

System.out.println("~~~~~~~~~~~~剪刀石头布游戏,输入E可以退出~~~~~~~~~~~");

System.out.println("请选择你要出什么?Z——剪刀,X——石头,C——布");

String command = sc.nextLine();

int playerFinger = getValue(command);

if(playerFinger == -1) {

break;

} else if(playerFinger == 3) {

System.out.println("输入错误,请参考说明!");

continue;

}

System.out.println("你出的是" + FINGERS[playerFinger]);

int cpuFinger = rad.nextInt(3);

System.out.println("计算机出的是" + FINGERS[cpuFinger]);

int result = playerFinger - cpuFinger;

if(0 == result) {

System.out.println("平局!");

draw ++;

} else if(-1 == result) {

System.out.println("你输了!");

loose ++;

} else {

System.out.println("你赢了!");

win ++;

}

}

System.out.println("游戏结束!\r\n游戏统计次数");

System.out.println(String.format("赢:%d\r\n输:%d\r\n平局:%d", win, loose, draw));

}

private static int getValue(String command) {

if(command.equalsIgnoreCase("E")) {

return -1;

}

if(command.equalsIgnoreCase("Z")) {

return 0;

}

if(command.equalsIgnoreCase("X")) {

return 1;

}

if(command.equalsIgnoreCase("C")) {

return 2;

}

return 3;

}

}

急求一个JAVA编程,“编写一个猜拳游戏,分别用0、1、2表示石头、剪子、布。

用我自己的方法写了一个,看LZ喜欢不喜欢

12是石头,23是剪子,31是布.first表示第一个人。second表示第二个人!

import java.util.Random;

public class Print {

public static void main(String[] args) {

//"12"是石头,“23”是剪子,“31”是布

String[] a = {"12", "23", "31"};

Random r = new Random ();

String first = a[r.nextInt(3)];

String second = a[r.nextInt(3)];

System.out.println("12是石头,23是剪子,31是布.first表示第一个人。second表示第二个人!\n---------");

if (first.equals(second)) {

System.out.println(first + "--" + second + ",(前面是first,后一个是second)" + ":平了");

} else if (first.charAt(1) == second.charAt(0)) {

System.out.println("出拳情况:" + first + "--" + second + ",(前面是first,后一个是second)" + "\n结果判断:" + result1(first,second));

} else if (first.charAt(0) == second.charAt(1)) {

System.out.println("出拳情况:" + first + "--" + second + ",(前面是first,后一个是second)" + "\n结果判断:" + result2(first,second));

}

}

public static String result1 (String f, String s) {

if (f.equals("12") s.equals("23")) {

return "first石头 胜 second剪子";

} else if (f.equals("23") s.equals("31")) {

return "first剪子 胜 second布";

} else {

return "first布 胜 second石头";

}

}

public static String result2 (String f, String s) {

if (f.equals("12") s.equals("31")) {

return "first石头 输 second布";

} else if (f.equals("23") s.equals("12")) {

return "first剪子 输 second石头";

} else {

return "first布 输 second剪子";

}

}

}

用JAVA编一个小游戏或者其他程序

贪吃蛇程序:

GreedSnake.java (也是程序入口):

import java.awt.BorderLayout;

import java.awt.Canvas;

import java.awt.Color;

import java.awt.Container;

import java.awt.Graphics;

import java.awt.event.KeyEvent;

import java.awt.event.KeyListener;

import java.util.Iterator;

import java.util.LinkedList;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JPanel;

public class GreedSnake implements KeyListener {

JFrame mainFrame;

Canvas paintCanvas;

JLabel labelScore;// 计分牌

SnakeModel snakeModel = null;// 蛇

public static final int canvasWidth = 200;

public static final int canvasHeight = 300;

public static final int nodeWidth = 10;

public static final int nodeHeight = 10;

// ----------------------------------------------------------------------

// GreedSnake():初始化游戏界面

// ----------------------------------------------------------------------

public GreedSnake() {

// 设置界面元素

mainFrame = new JFrame("GreedSnake");

Container cp = mainFrame.getContentPane();

labelScore = new JLabel("Score:");

cp.add(labelScore, BorderLayout.NORTH);

paintCanvas = new Canvas();

paintCanvas.setSize(canvasWidth + 1, canvasHeight + 1);

paintCanvas.addKeyListener(this);

cp.add(paintCanvas, BorderLayout.CENTER);

JPanel panelButtom = new JPanel();

panelButtom.setLayout(new BorderLayout());

JLabel labelHelp;// 帮助信息

labelHelp = new JLabel("PageUp, PageDown for speed;", JLabel.CENTER);

panelButtom.add(labelHelp, BorderLayout.NORTH);

labelHelp = new JLabel("ENTER or R or S for start;", JLabel.CENTER);

panelButtom.add(labelHelp, BorderLayout.CENTER);

labelHelp = new JLabel("SPACE or P for pause", JLabel.CENTER);

panelButtom.add(labelHelp, BorderLayout.SOUTH);

cp.add(panelButtom, BorderLayout.SOUTH);

mainFrame.addKeyListener(this);

mainFrame.pack();

mainFrame.setResizable(false);

mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

mainFrame.setVisible(true);

begin();

}

// ----------------------------------------------------------------------

// keyPressed():按键检测

// ----------------------------------------------------------------------

public void keyPressed(KeyEvent e) {

int keyCode = e.getKeyCode();

if (snakeModel.running)

switch (keyCode) {

case KeyEvent.VK_UP:

snakeModel.changeDirection(SnakeModel.UP);

break;

case KeyEvent.VK_DOWN:

snakeModel.changeDirection(SnakeModel.DOWN);

break;

case KeyEvent.VK_LEFT:

snakeModel.changeDirection(SnakeModel.LEFT);

break;

case KeyEvent.VK_RIGHT:

snakeModel.changeDirection(SnakeModel.RIGHT);

break;

case KeyEvent.VK_ADD:

case KeyEvent.VK_PAGE_UP:

snakeModel.speedUp();// 加速

break;

case KeyEvent.VK_SUBTRACT:

case KeyEvent.VK_PAGE_DOWN:

snakeModel.speedDown();// 减速

break;

case KeyEvent.VK_SPACE:

case KeyEvent.VK_P:

snakeModel.changePauseState();// 暂停或继续

break;

default:

}

// 重新开始

if (keyCode == KeyEvent.VK_R || keyCode == KeyEvent.VK_S

|| keyCode == KeyEvent.VK_ENTER) {

snakeModel.running = false;

begin();

}

}

// ----------------------------------------------------------------------

// keyReleased():空函数

// ----------------------------------------------------------------------

public void keyReleased(KeyEvent e) {

}

// ----------------------------------------------------------------------

// keyTyped():空函数

// ----------------------------------------------------------------------

public void keyTyped(KeyEvent e) {

}

// ----------------------------------------------------------------------

// repaint():绘制游戏界面(包括蛇和食物)

// ----------------------------------------------------------------------

void repaint() {

Graphics g = paintCanvas.getGraphics();

// draw background

g.setColor(Color.WHITE);

g.fillRect(0, 0, canvasWidth, canvasHeight);

// draw the snake

g.setColor(Color.BLACK);

LinkedList na = snakeModel.nodeArray;

Iterator it = na.iterator();

while (it.hasNext()) {

Node n = (Node) it.next();

drawNode(g, n);

}

// draw the food

g.setColor(Color.RED);

Node n = snakeModel.food;

drawNode(g, n);

updateScore();

}

// ----------------------------------------------------------------------

// drawNode():绘画某一结点(蛇身或食物)

// ----------------------------------------------------------------------

private void drawNode(Graphics g, Node n) {

g.fillRect(n.x * nodeWidth, n.y * nodeHeight, nodeWidth - 1,

nodeHeight - 1);

}

// ----------------------------------------------------------------------

// updateScore():改变计分牌

// ----------------------------------------------------------------------

public void updateScore() {

String s = "Score: " + snakeModel.score;

labelScore.setText(s);

}

// ----------------------------------------------------------------------

// begin():游戏开始,放置贪吃蛇

// ----------------------------------------------------------------------

void begin() {

if (snakeModel == null || !snakeModel.running) {

snakeModel = new SnakeModel(this, canvasWidth / nodeWidth,

this.canvasHeight / nodeHeight);

(new Thread(snakeModel)).start();

}

}

// ----------------------------------------------------------------------

// main():主函数

// ----------------------------------------------------------------------

public static void main(String[] args) {

GreedSnake gs = new GreedSnake();

}

}

Node.java:

public class Node {

int x;

int y;

Node(int x, int y) {

this.x = x;

this.y = y;

}

}

SnakeModel.java:

import java.util.Arrays;

import java.util.LinkedList;

import java.util.Random;

import javax.swing.JOptionPane;

public class SnakeModel implements Runnable {

GreedSnake gs;

boolean[][] matrix;// 界面数据保存在数组里

LinkedList nodeArray = new LinkedList();

Node food;

int maxX;// 最大宽度

int maxY;// 最大长度

int direction = 2;// 方向

boolean running = false;

int timeInterval = 200;// 间隔时间(速度)

double speedChangeRate = 0.75;// 速度改变程度

boolean paused = false;// 游戏状态

int score = 0;

int countMove = 0;

// UP和DOWN是偶数,RIGHT和LEFT是奇数

public static final int UP = 2;

public static final int DOWN = 4;

public static final int LEFT = 1;

public static final int RIGHT = 3;

// ----------------------------------------------------------------------

// GreedModel():初始化界面

// ----------------------------------------------------------------------

public SnakeModel(GreedSnake gs, int maxX, int maxY) {

this.gs = gs;

this.maxX = maxX;

this.maxY = maxY;

matrix = new boolean[maxX][];

for (int i = 0; i maxX; ++i) {

matrix[i] = new boolean[maxY];

Arrays.fill(matrix[i], false);// 没有蛇和食物的地区置false

}

// 初始化贪吃蛇

int initArrayLength = maxX 20 ? 10 : maxX / 2;

for (int i = 0; i initArrayLength; ++i) {

int x = maxX / 2 + i;

int y = maxY / 2;

nodeArray.addLast(new Node(x, y));

matrix[x][y] = true;// 蛇身处置true

}

food = createFood();

matrix[food.x][food.y] = true;// 食物处置true

}

// ----------------------------------------------------------------------

// changeDirection():改变运动方向

// ----------------------------------------------------------------------

public void changeDirection(int newDirection) {

if (direction % 2 != newDirection % 2)// 避免冲突

{

direction = newDirection;

}

}

// ----------------------------------------------------------------------

// moveOn():贪吃蛇运动函数

// ----------------------------------------------------------------------

public boolean moveOn() {

Node n = (Node) nodeArray.getFirst();

int x = n.x;

int y = n.y;

switch (direction) {

case UP:

y--;

break;

case DOWN:

y++;

break;

case LEFT:

x--;

break;

case RIGHT:

x++;

break;

}

if ((0 = x x maxX) (0 = y y maxY)) {

if (matrix[x][y])// 吃到食物或者撞到身体

{

if (x == food.x y == food.y)// 吃到食物

{

nodeArray.addFirst(food);// 在头部加上一结点

// 计分规则与移动长度和速度有关

int scoreGet = (10000 - 200 * countMove) / timeInterval;

score += scoreGet 0 ? scoreGet : 10;

countMove = 0;

food = createFood();

matrix[food.x][food.y] = true;

return true;

} else

return false;// 撞到身体

} else// 什么都没有碰到

{

nodeArray.addFirst(new Node(x, y));// 加上头部

matrix[x][y] = true;

n = (Node) nodeArray.removeLast();// 去掉尾部

matrix[n.x][n.y] = false;

countMove++;

return true;

}

}

return false;// 越界(撞到墙壁)

}

// ----------------------------------------------------------------------

// run():贪吃蛇运动线程

// ----------------------------------------------------------------------

public void run() {

running = true;

while (running) {

try {

Thread.sleep(timeInterval);

} catch (Exception e) {

break;

}

if (!paused) {

if (moveOn())// 未结束

{

gs.repaint();

} else// 游戏结束

{

JOptionPane.showMessageDialog(null, "GAME OVER",

"Game Over", JOptionPane.INFORMATION_MESSAGE);

break;

}

}

}

running = false;

}

// ----------------------------------------------------------------------

// createFood():生成食物及放置地点

// ----------------------------------------------------------------------

private Node createFood() {

int x = 0;

int y = 0;

do {

Random r = new Random();

x = r.nextInt(maxX);

y = r.nextInt(maxY);

} while (matrix[x][y]);

return new Node(x, y);

}

// ----------------------------------------------------------------------

// speedUp():加快蛇运动速度

// ----------------------------------------------------------------------

public void speedUp() {

timeInterval *= speedChangeRate;

}

// ----------------------------------------------------------------------

// speedDown():放慢蛇运动速度

// ----------------------------------------------------------------------

public void speedDown() {

timeInterval /= speedChangeRate;

}

// ----------------------------------------------------------------------

// changePauseState(): 改变游戏状态(暂停或继续)

// ----------------------------------------------------------------------

public void changePauseState() {

paused = !paused;

}

}

关于java编程石头和java写石头剪刀布的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。