JAVA实现“剪刀石头布”小游戏
JAVA小游戏代码(剪刀石头布)
JAVA⼩游戏代码(剪⼑⽯头布) /** 创建⼀个类Game,⽯头,剪⼑,布的游戏。
*/public class Game {/*** @param args*/String[] s ={"⽯头","剪⼑","布"};//获取电脑出拳String getComputer(int i){String computerGuess = s[i];return computerGuess;}//判断⼈出拳是否为⽯头,剪⼑,布boolean isOrder(String guess){boolean b = false;for(int x = 0;x < s.length; x++){if(guess.equals(s[x])){b = true;break;}}return b;}//⽐较void winOrLose(String guess1,String guess2){if(guess1.equals(guess2)){System.out.println("你出:" + guess1 + ",电脑出:" + guess2 + "。
平了");}else if(guess1.equals("⽯头")){if(guess2.equals("剪⼑"))System.out.println("你出:" + guess1 + ",电脑出:" + guess2 + "。
You Win!");}else{System.out.println("你出:" + guess1 + ",电脑出:" + guess2 + "。
You Lose!");}}else if(guess1.equals("剪⼑")){if(guess2.equals("布")){System.out.println("你出:" + guess1 + ",电脑出:" + guess2 + "。
java面向对象编程--猜拳小游戏
java⾯向对象编程--猜拳⼩游戏java⾯向对象编程实现--猜拳⼩游戏⽬标⽬标:玩家在控制台和电脑猜拳,电脑每次都会随机出⽯头/剪⼑/布,直到玩家选择退出游戏。
记录并显⽰玩家和电脑猜拳的成绩。
设计思路分析电脑的随机猜拳可以使⽤随机数⽣成,这⾥规定 0表⽰⽯头,1 表⽰剪⼑,2 表⽰布。
为了显⽰清晰,可以设置⼀个⽅法将⽣成的随机数转换为对应⽯头/剪⼑/布。
玩家在控制台输⼊(⽯头/剪⼑/布),但玩家也可能输⼊别的数,所以这⾥需要做⼀个玩家的输⼊校验 ,并考虑给玩家退出游戏的选择。
记录的结果有玩家猜拳选择,电脑猜拳选择和胜负。
为了⽅便管理和显⽰,这⾥设计⼀个结果类。
⽤于记录猜拳的结果,因为猜拳次数可能不⽌⼀次,所以考虑将结果保存到集合中,这⾥使⽤ ArrayList集合。
具体代码实现如下:import java.util.ArrayList;import java.util.Scanner;public class FingerGuessingGame {//测试实现类public static void main(String[] args) {Tom tom = new Tom();tom.guess();}}//玩家类class Tom {Scanner sc = new Scanner(System.in);//猜拳public void guess() {System.out.println("----------猜拳游戏开始(-1退出)---------");//使⽤ArrayList保存结果ArrayList<GuessResult> results = new ArrayList<>();while (true) {//玩家输⼊String tomGuess = checkInput();//如果输⼊-1退出游戏if (tomGuess.equals("-1"))break;//⽣成0-2的随机数int num = (int) (Math.random() * 3);//将获取到的数字按照之前的规定转换为字符串String comGuess = convertComputerGuess(num);System.out.println("电脑出 " + comGuess);//判断输赢String isWin = winORLoose(tomGuess, comGuess);System.out.println(isWin);//将结果添加到集合中results.add(new GuessResult(tomGuess, comGuess, isWin));}//输出结果System.out.println("-------本次猜拳的结果------");System.out.println("玩家\t\t\t电脑\t\t\t胜负");for (GuessResult result : results) {System.out.println(result);}}//获取电脑猜拳结果public String convertComputerGuess(int num) {//0代表⽯头,1剪⼑,2布if (num == 0)return "⽯头";if (num == 1)return "剪⼑";if (num == 2)return "布";return "";}//玩家输⼊校验public String checkInput() {while (true) {System.out.println("你出(⽯头/剪⼑/布)-1退出:");String choice = sc.next();if (choice.equals("⽯头") || choice.equals("剪⼑") ||choice.equals("布") || choice.equals("-1")) {return choice;} elseSystem.out.println("你的输⼊有误! 请检查并重新输⼊:");}}//判断输赢public String winORLoose(String tomGuess, String comGuess) {if (tomGuess.equals("⽯头") && comGuess.equals("剪⼑"))return "赢";else if (tomGuess.equals("剪⼑") && comGuess.equals("布"))return "赢";else if (tomGuess.equals("布") && comGuess.equals("⽯头"))return "赢";else if (tomGuess.equals(comGuess))return "平⼿";elsereturn "输";}}//结果类⽤于记录猜拳的结果class GuessResult {private String tomGuess;private String ComGuess;private String isWin;public GuessResult(String tomGuess, String comGuess, String isWin) { this.tomGuess = tomGuess;ComGuess = comGuess;this.isWin = isWin;}@Overridepublic String toString() {returntomGuess +"\t\t\t"+ComGuess + "\t\t\t" +isWin ;}}。
Java剪刀石头布
Java剪⼑⽯头布package day09_test;import java.util.Random;import java.util.Scanner;import day09.GamePlayer;import day09.GameRobot;public class GameTest {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("请输⼊猜拳⽐赛回合数:");int maxNumber = input.nextInt();//回合计数器int count = 0;//玩家胜利数int countP = 0;//电脑胜利数int countR = 0;while(count<maxNumber) {System.out.println("请输⼊你想出的数字:(1.剪⼑ 2.⽯头 3.布)");int PlayNum = input.nextInt();if (PlayNum>3 || PlayNum<=0) {System.out.println("输⼊有误!请重新输⼊:");PlayNum =input.nextInt();}GamePlayer player = new GamePlayer(PlayNum);player.say();//机器⼈随机输⼊1-3Random r = new Random();int RobotNum = r.nextInt(3)+1;GameRobot robot = new GameRobot(RobotNum);robot.say();//判断输赢if (player.getNumber()==robot.getNumber()) {count++;System.out.println("第"+count+"局:双⽅⼀致,请重新猜拳!");}else if (player.getNumber()==1) {//玩家出剪⼑if (robot.getNumber()==3) {//电脑出布count++;countP++;System.out.println("第"+count+"局:玩家赢,您得⼀分!");}else if (robot.getNumber()==2) {//电脑出⽯头count++;countR++;System.out.println("第"+count+"局:电脑赢,它得⼀分!");}}else if (player.getNumber()==2) {//玩家出⽯头if (robot.getNumber()==3) {//电脑出布count++;countP++;System.out.println("第"+count+"局:电脑赢,它得⼀分!");}else if (robot.getNumber()==1) {//电脑出剪⼑count++;countR++;System.out.println("第"+count+"局:玩家赢,您得⼀分!");}else if (player.getNumber()==3) {//玩家出布if (robot.getNumber()==2) {//电脑出布count++;countP++;System.out.println("第"+count+"局:玩家赢,您得⼀分!");}else if (robot.getNumber()==1) {//电脑出剪⼑count++;countR++;System.out.println("第"+count+"局:电脑赢,它得⼀分!");}}}if (countP==countR) {System.out.println("电脑得分:"+countR+" 玩家得分:"+countP); System.out.println("⽐赛结束,平局!");}else if (countP>countR) {System.out.println("电脑得分:"+countR+" 玩家得分:"+countP); System.out.println("⽐赛结束,玩家胜利!");}else {System.out.println("电脑得分:"+countR+" 玩家得分:"+countP); System.out.println("⽐赛结束,电脑胜利!");}}}package day09;public class GameRobot {private int number;public int getNumber() {return number;}public void setNumber(int number) {this.number = number;}public GameRobot() {super();// TODO Auto-generated constructor stub}public GameRobot(int number) {super();this.number = number;}public void say() {switch(this.number) {case 1:System.out.println("电脑出的是剪⼑");break;case 2:System.out.println("电脑出的是⽯头");break;case 3:System.out.println("电脑出的是布");break;}}package day09;/*** 今天的任务是通过控制台⽅式实现⼀个⼈机对战的猜拳游戏,⽤户通过输⼊(1.剪⼑ 2.⽯头 3.布),机器随机⽣成(1.剪⼑ 2.⽯头 3.布),胜者积分,n 局以后通过积分的多少判定胜负。
java游戏—石头剪刀布
public void actionPerformed(ActionEvent e){
random=new Random();
int i=random.nextInt(3);
if(e.getActionCommand()=="石头"){
if(result[i].equals(result[0])){
Jta.append("\n\n现在比分是: 您: "+s1+"许仕永: "+s2);
}
if(result[i].equals("布")){
Jta.setText("");
String s1=String.valueOf(myguess);
String s2=String.valueOf(cupguess);
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.Random;
public class Shi_T implements ActionListener{
JFrame frame;
//b5.addActionListener(this);
cp.add(p1,BorderLayout.CENTER);
cp.add(p2,BorderLayout.SOUTH);
frame.setVisible(true);
frame.setSize(400,300);
frame.setDefaultCloseOperation(frame.EXIT_ON_CLOSE);
Java课程设计-剪刀、石头、布游戏 - 代燕清
2012届课程设计20《剪刀、石头、布小游戏》课程设计说明书学生姓名代燕清学号5042209016所属学院信息工程学院专业计算机网络班级计算机网络专12指导教师李旭教师职称讲师塔里木大学教务处制我做的“剪刀,石头,布”游戏是一个很简单的Java小游戏,这个游戏是进行人机对战的,玩这个游戏时你只需要在对话框中输入自己想的答案就好了,例如你输入的是“石头”然后确认,这是电脑就会随即给出“剪刀,石头,布”中的一个,然后电脑会根据游戏规则判断对错问题。
用户只需要,输入心中想的答案即可。
关键词:Java;猜数字摘要 (1)目录 (2)前言 (2)项目概况 (3)2.1项目所用的时间 (3)2.2项目负责人 (4)2.3项目指导人 (4)正文 (4)3.1设计分析 (4)3.2程序结构(流程图) (4)3.3操作方法 (4)3.4试验结果(包括输入数据和输出结果) (5)总结 (6)致谢 (7)参考文献 (8)附录 (9)前言Java是在网络时代诞生的,因此必须适应网络发展的特殊需要.Java的发展和壮大并且逐渐成为网络变成的主流语言,则充分说明了java适应了网络发展的特殊需要,学习好该门课程是成为一个好的java程序员的前提条件,通过此次课程设计使学生达到提高动手能力的目的.Java语言作为当今 INTERNET上最流行的编程语言,它的产生和WWW密切相关,所以课程中还将对WWW技术进行必要的介绍.同时,对于信息安全专业的学生,掌握Java中的安全包的API和Sandbox也是极其重要的.通过本课程的学习,使学生掌握网络编程的基本方法,能够根据现实生活实践编制出一些实用的客户机/服务器小程序.为进一步学习维护网站信息安全的建设打下基础.为了加深对JAVA语言的掌握及对面向对象程序设计基本思想的理解,提高对面向对象技术的具体应用,进行本次课程设计.此次我做的课程设计项目是要设计一个猜数字游戏。
这个题目都是比较基础的内容,是作为一个学习网络应当具备的能力。
Java猜拳小游戏
public static void main(String[]args){
show();
}
}
import java.util.*;
public class Guess {
public static void show(){
System.out.println("*****************************************\n");
System.out.println("\t\t猜拳游戏\n");
show2();
}else{
System.out.println("再见");
}
}
public static void show2(){
int e;
int pscore=0;
int cscore=
Random rd=new Random();
int x=rd.nextInt(3)+1;
//int x=(int)Math.random()*10/3+1;
System.out.println("规则:1.剪刀\t2.石头\t3.布\n");
Scanner input=new Scanner(System.in);
System.out.println("开始游戏(y/n)");
String s=input.next();
if(s.equals("y")){
System.out.println("输入你的选择(1.2.3):");
Scanner input=new Scanner(System.in);
Java实现人机对战猜拳游戏
Java实现⼈机对战猜拳游戏本⽂实例为⼤家分享了Java实现⼈机对战猜拳游戏的具体代码,供⼤家参考,具体内容如下通过控制台⽅式实现⼀个⼈机对战的猜拳游戏1.⽤户通过输⼊(2.剪⼑ 0.⽯头 5.布)2.机器随机⽣成(2.剪⼑ 0.⽯头 5.布)3.胜者积分4.n 局以后通过积分的多少判定胜负。
开发⼯具:IDEA分析:1.在这个猜拳游戏⾥⾸先要解决的是机器⼈如何出拳?解决:通过预设⼀个字符串,然后通过Random类的nextInt⽅法获取到⼀个随机整数,将这个整数作为字符串的下标,再通过循环的⽅法来组成⼀个随机数。
⽣成对应的出拳情况2.⽣成的随机数如何⽐较?解决:使⽤equals()进⾏⽐较3.如何积分?解决:先给⼈机各初始积分为0分,每⽐较⼀次就记⼀次分,这⾥赢⼀局记10分完整代码如下:import java.util.Random;import java.util.Scanner;public class MoraTest {public static void main(String[] args) {Scanner input = new Scanner(System.in);System.out.println("--- 猜拳游戏 ---");System.out.println("你想和机器⼈玩多少局:请输⼊(1-100)");//输⼊轮数int number = input.nextInt();System.out.println("请输⼊对应数值:\n0-⽯头 2-剪⼑ 5-布");int userIntegral = 0;//⽤户积分int robotIntegral = 0;//机器⼈积分for (int i = 0; i < number; i++) {String num = getRandom(1);//获取随机数String userNum = input.next();//输⼊出拳的值String u = putFist(userNum);//根据⽤户输⼊的值给对应的剪⼑、⽯头、布System.out.println("⽤户的出拳为:"+u);String n = putFist(num);//根据机器类随机⽣成的数值给对应的剪⼑、⽯头、布System.out.println("机器⼈出拳为:"+n);//如果⽤户出⽯头if ("0".equals(userNum)) {if ("2".equals(num)) {//如果机器⼈出剪⼑,⽤户获胜userIntegral += 10;System.out.println("⽤户获胜!积10分!");} else if ("5".equals(num)) {//如果机器出布,机器⼈获胜robotIntegral += 10;System.out.println("机器⼈获胜!积10分!");} else {//如果机器出⽯头,则平局,不积分System.out.println("平局!");}} else if ("2".equals(userNum)) {//如果⽤户出剪⼑if ("2".equals(num)) {//如果机器⼈也出剪⼑,则平局System.out.println("平局!");} else if ("5".equals(num)) {//如果机器出布,⽤户获胜userIntegral += 10;System.out.println("⽤户获胜!积10分!");} else {//如果机器出⽯头,机器⼈获胜robotIntegral += 10;System.out.println("机器⼈获胜!积10分!");}} else {//如果⽤户出布if ("2".equals(num)) {//如果机器⼈出剪⼑,机器⼈获胜robotIntegral += 10;System.out.println("机器⼈获胜!积10分!");} else if ("5".equals(num)) {//如果机器出布,则平局System.out.println("平局!");} else { //如果机器出⽯头,⽤户获胜userIntegral += 10;System.out.println("⽤户获胜!积10分!");}}num = null;}System.out.println("****************");System.out.println("战⽃结束,查看分数:");System.out.println("⽤户总积分:"+userIntegral+"分");System.out.println("机器⼈总积分:"+robotIntegral+"分");if (userIntegral > robotIntegral){System.out.println("经过"+number+ "局后,最终的胜利者是:⽤户!");} else if (userIntegral == robotIntegral) {System.out.println("经过"+number+ "局后,你们打成了平局");} else {System.out.println("经过"+number+ "局后,最终的胜利者是:机器⼈!");}}public static String putFist(String s){String fist = null;if ("0".equals(s)){fist = "拳头";} else if ("2".equals(s)) {fist = "剪⼑";} else if ("5".equals(s)){fist = "布";} else {System.err.println("你输⼊的不对!");return null;}return fist;}//拳头属性//0-⽯头 2-剪⼑ 5-布public static String getRandom(int length) {String fistNum = "520";//创建⼀个新的随机数⽣成器。
剪刀石头布游戏
{
cout<<endl;
cout<<"**** 剪刀 锤子 布 **** "<<endl;
cout<<"在这个游戏中"<<endl;
cout<<"0 表示布"<<endl;
cout<<"1 表示锤子"<<endl;
cout<<"2 表示剪刀."<<endl;
cout<<"剪子";
else if(x == '2')
cout<<"布";
else
{
cout<<"请按0-2\n按任意键继续\n";
getch();
goto d;
}
srand((unsigned)time(NULL));
y = rand()%3;
break;
case 2:
cout<<"你赢了";
win++;
break;
}
}
else if(x == '2')
{
switch(y)
{
case 0:
cout<<"你赢了";
win++;
break;
cout<<endl;
cout<<"还有其它的选择是:"<<endl;
Java猜拳小游戏(剪刀、石头、布)
Java猜拳⼩游戏(剪⼑、⽯头、布)1、第⼀种实现⽅法,调⽤Random数据包,直接根据“1、2、3”输出“剪⼑、⽯头、布”。
主要⽤了9条输出判断语句。
import java.util.Random;import java.util.Scanner;public class caiquan{public static void main(String[] args){Random r=new Random();int diannao=r.nextInt(3)+1;Scanner s=new Scanner(System.in);System.out.println("=========猜拳⼩游戏=========");System.out.println("请输⼊1、2、3,1代表剪⼑,2代表⽯头,3代表布");int fangke=s.nextInt();if(diannao==1&&fangke==1){System.out.println("电脑出的是剪⼑,你出的是剪⼑,平局");}if(diannao==1&&fangke==2){System.out.println("电脑出的是剪⼑,你出的是⽯头,你赢了");}if(diannao==1&&fangke==3){System.out.println("电脑出的是剪⼑,你出的是布,电脑赢了");}if(diannao==2&&fangke==1){System.out.println("电脑出的是⽯头,你出的是剪⼑,电脑赢了");}if(diannao==2&&fangke==2){System.out.println("电脑出的是⽯头,你出的是⽯头,平局");}if(diannao==2&&fangke==3){System.out.println("电脑出的是⽯头,你出的是布,你赢了");}if(diannao==3&&fangke==1){System.out.println("电脑出的是布,你出的是剪⼑,你赢了");}if(diannao==3&&fangke==2){System.out.println("电脑出的是布,你出的是⽯头,电脑赢了");}if(diannao==3&&fangke==3){System.out.println("电脑出的是布,你出的是布,平局");}if(fangke!=1&&fangke!=2&&fangke!=3){System.out.println("只能输⼊1、2、3");}}} 2、第⼆种实现⽅法,不调⽤Random数据包,换成Math.random(),把“1、2、3”换成“剪⼑、⽯头、布”再输出。
java实现简单石头剪刀布小游戏
java实现简单⽯头剪⼑布⼩游戏简介⽯头剪⼑布游戏,进⼊游戏后,玩家需要输⼊玩家姓名。
系统界⾯之后弹出欢迎界⾯,玩家可以选择出拳或者退出游戏。
玩家选择出拳后同电脑出拳⽐较,输出猜拳结果。
最后退出游戏后显⽰排⾏榜,输出总局数,胜率。
分析通过while循环死循环模拟不断进⾏游戏,当⽤户输⼊0时break跳出while循环。
通过Random产⽣随机数模拟AI出拳定义了⼀个choose⽅法,将⽤户输⼊和AI随机⽣成的数,转换成剪⼑、⽯头和布。
判断输赢逻辑:1:⽯头 2:剪⼑ 3:布变量userChoose中存储的是⽤户的出拳变量ai中存储的是电脑的出拳当userChoose - ai 等于-1或2时,⽤户赢当userChoose - ai 等于0时,平局当userChoose - ai 等于1或-2时,电脑赢源代码public static void main(String[] args) {Scanner sc = new Scanner(System.in);Random r = new Random();int count = 0; // 总局数int win = 0; // 获胜局数int result = 0; // 结果int ai = 0; // 电脑出拳System.out.print("请输⼊姓名:");String name = sc.nextLine();while(flag) {System.out.println("************************************************");System.out.println("欢迎"+ name + "进⼊猜拳游戏");System.out.println("1.⽯头 2.剪⼑ 3.布 0.退出");System.out.println("************************************************");System.out.print("请输⼊数字:");int userChoose = sc.nextInt(); // 玩家选择if (userChoose == 0) { // 游戏结束break;}// AI出拳ai = r.nextInt(3)+1;// 输出玩家和电脑的出拳System.out.println("你的出拳是:" + choose(userChoose));System.out.println("电脑出拳是:" + choose(ai));// 判断输赢switch(userChoose - ai) {case -1: // 赢case 2:System.out.println("你赢了!╭(╯^╰)╮");win++; // ⽤户赢,赢场计数器⾃增1count++; // 局数计数器⾃增1break;case 0: // 平局System.out.println("平局,再来⼀局~~~~~o(* ̄︶ ̄*)o");count++;break;case 1: // 输case -2:System.out.println("你输了! O(∩_∩)O哈哈~");count++;break;}System.out.println("\n");}System.out.println();System.out.println("\t\t\t\t排⾏榜");System.out.println("************************************************");System.out.println("姓名\t\t总局数\t\t赢场\t\t胜率");System.out.println(name + "\t\t" + count + "\t\t\t" + win + "\t\t\t" + String.format("%.2f", (win*1.0/count)*100) + "%");}// 返回出拳public static String choose(int choose) {switch(choose) {case 1:return "⽯头";case 2:return "剪⼑";case 3:return "布";}return "";}游戏截图进⼊游戏输⼊姓名,显⽰菜单:⽤户出⽯头:⽤户出剪⼑:⽤户出布:输⼊0游戏结束:总结本程序是学习中的⼀个⼩案例,⽬前程序⽐较基础,只能记录⼀个玩家的信息,且数据不能存在本地。
java人机猜拳-石头剪刀布
java人机猜拳1.首先定义一个用户类:代码如下package mypackage;import java.util.*;public class Person {String name="";int score;public int showFist(){System.out.println("请出拳:1.剪刀2.石头3.布(输入相应数字)");Scanner input =new Scanner(System.in);int number=input.nextInt();switch(number){case 1:System.out.println("玩家出:剪刀");return number;case 2:System.out.println("玩家出:石头");return number;case 3:System.out.println("玩家出:布");return number;default:System.out.println("你出拳:剪刀");return number;}}}2.定义一个计算机类package mypackage;public class Computer {int max =3;int min =1;int number= (int)(Math.random()*(max-min))+min;int score;String name="电脑";public int showcomputer(){switch(number){case 1:System.out.println("电脑出:剪刀");return number;case 2:System.out.println("电脑出;石头");return number;case 3:System.out.println("电脑出:布");return number;default:System.out.println("电脑出:剪刀");return number;}}}3.创建一个游戏类package mypackage;import java.util.*;public class StartGame{public int Initial(){System.out.println("----------欢迎进入游戏世界----------");System.out.println("");System.out.println("\t****************");System.out.println("\t** 猜拳,开始**\t\t");System.out.println("\t****************");System.out.println("");System.out.println("出拳规则:1.剪刀2.石头3.布");System.out.println("请选择对方角色(1.刘备2.孙权3.曹操):");Scanner input =new Scanner(System.in);int number=input.nextInt();switch(number){case 1:System.out.print("刘备");return number;case 2:System.out.print("孙权");return number;case 3:System.out.print("曹操");return number;default:System.out.print("你选择了刘备作战");return number;}}public static void main(String[] args){//完善游戏类的startGame()方法,实现一局对战Computer computer =new Computer();Person player =new Person();StartGame come =new StartGame();Scanner input =new Scanner(System.in);come.Initial();System.out.println("");System.out.println("要开始么?y/n\n\n");String con =input.next();int count=0;while(con.equalsIgnoreCase("y")){int perFist=player.showFist();int compFist=computer.showcomputer();System.out.println("双方对战次数:" + count);if((perFist==1&&compFist==1)||(perFist==2&&compFist==2)||(perFist==3&&com pFist==3)){System.out.println("结果:平局,真衰!");count++;}elseif((perFist==1&&compFist==3)||(perFist==2&&compFist==1)||(perFist==3&&compFist ==2)){System.out.println("结果:恭喜,你赢了!");player.score++;}else{System.out.println("结果说,你输了,真笨!\n");count++;computer.score++;}System.out.println(+ "积分为:" + player.score+ "\t\t" + + "积分为:" + computer.score);System.out.println("是否继续?y/n");con =input.next();}while(con.equals("n")){if(player.score > computer.score) {System.out.println("最终结果:" + + "在" + count + "回合中战胜了" + );break;}else if(player.score < computer.score) {System.out.println("最终结果:" + + "在" + count + "回合中战胜了" + );break;}else {System.out.println("最终结果:" + + "在" + count + "回合中和" + + "战平");break;}}}}本代码归武汉市江岸区百步亭50号熊盼所有,未经武汉市江岸区百步亭50号熊盼允许,不得转载、复制。
手机猜拳游戏编程实现
手机猜拳游戏编程实现手机猜拳游戏是一种简单而有趣的游戏,通过编程实现可以在手机上进行游戏。
本文将介绍如何使用编程语言来实现手机猜拳游戏,并提供一些代码示例供参考。
一、游戏规则手机猜拳游戏的规则很简单,玩家和电脑通过选择出石头、剪刀或布中的一种进行比拼,根据规定的猜拳规则来判断胜负。
具体规则如下:1. 石头胜剪刀:石头可以砸碎剪刀;2. 剪刀胜布:剪刀可以剪破布;3. 布胜石头:布可以包裹住石头。
二、编程实现在编程实现手机猜拳游戏之前,首先需要选择一种合适的编程语言。
在这里,我们选择使用Python来编写手机猜拳游戏的代码。
代码示例:```pythonimport randomdef game(player_choice):choices = ["石头", "剪刀", "布"]computer_choice = random.choice(choices)if player_choice == computer_choice:result = "平局"elif player_choice == "石头" and computer_choice == "剪刀": result = "玩家胜利"elif player_choice == "剪刀" and computer_choice == "布":result = "玩家胜利"elif player_choice == "布" and computer_choice == "石头":result = "玩家胜利"else:result = "电脑胜利"return resultplayer_choice = input("请输入您的选择(石头、剪刀或布):") result = game(player_choice)print("电脑选择了:" + computer_choice)print("结果:" + result)```以上代码是用Python编写的简单手机猜拳游戏程序。
java语言实现猜拳游戏的编写
package TG.Java_17;public class Computer {public int getFist(){int fist = (int)(Math.random()*10)%3+1;switch(fist){case 1:System.out.println("机器:石头");break;case 2:System.out.println("机器:剪刀");break;case 3:System.out.println("机器:布");break;}return fist;}}package TG.Java_17;import java.util.Scanner;public class Person {public int getFist(){Scanner input = new Scanner(System.in);System.out.println("请用户猜拳:1.石头 2.剪刀 3.布");int fist = input.nextInt();switch(fist){case 1:System.out.println("人类:石头");break;case 2:System.out.println("人类:剪刀");break;case 3:System.out.println("人类:布");break;default:System.out.println("对不起哈我们没有这个猜拳选项");}return fist;}}package TG.Java_17;import java.util.Scanner;public class TestFist {public static void main(String[] args) {Person per = new Person();Computer com = new Computer();String answer = null;Scanner input = new Scanner(System.in);int pCount = 0;int cCount = 0;do{int pFist = per.getFist();int cFist = com.getFist();//我们判读一下if((pFist==1&&cFist==2)||(pFist==2&& cFist==3) ||(pFist==3&& cFist==1)){pCount++;}else if((pFist==2&&cFist==1)||(pFist==3&&cFist==2)||(pFist==1&&cFist==3)){cCount++;}else {}System.out.println("小样的?你服不服啊?(y/n)");answer = input.next();}while(!"y".equals(answer));if(pCount>cCount){System.out.println("恭喜,人类赢了!");}else if(pCount<cCount){System.out.println("大哥,太悲哀了~电脑赢了!");}else {System.out.println("你俩都很厉害!平局!");}System.out.println("比分是:"+pCount+"VS"+cCount);}}。
java程序设计课程--实验报告-实验09
//computer's play
Scanner scan = new Scanner(System.in);
Random generator = new Random();
System.out.println("Enter your play: R, P or S");
public Coin(){
flip();
}
//Flips the coin by randomly choosing a face
public void flip(){
face = (int)(Math.random()*2);
}
//Return true if the current face of the coin is heads
}
}
参考教材中例5.4的Coin.java程序,将其拷贝至本地目录,编写一段程序,连续投掷硬币100次,查找并记录连续为HEAD的投掷次数的最大值。程序框架如Runs.java所示。具体步骤如下:
1.创建一个coin对象;
2.在循环语句中,使用flip方法投掷硬币,使用getFace方法查看结果是否为HEADS。记录当前连续投掷结果为HEADS的次数,并记录其中的最大值。
int currentRun = 0; //length of the current run of HEADS
int maxRun = 0; //length of the maximum run so far
for(int i = 0; i< FLIPS;i++){
java猜拳游戏
java猜拳游戏出拳规则:1.剪刀2.石头3.布请选择对方角色(1:刘备2.孙权3.曹操)package sjlx.guess;import java.util.*;public class Computer extends Player {public Computer(){}public Computer(String name, int score){ super(name,score); }public void setScore(int score){super.setScore(score);}public String showFist(int choice){String cFist = " ";switch(choice){case 1:cFist = "剪刀";break;case 2:cFist = "石头";break;default:cFist = "布";break;}return cFist;}}====================================== ========================================= package sjlx.guess;import java.util.Scanner;public class Game {Computer cpt;User usr;int count;Scanner input = new Scanner(System.in);//初始化游戏public void initial(){System.out.println("*****猜拳开始*****");System.out.println("出拳规则:1.剪刀 2.石头 3.布");//选择对方的角色System.out.print("请选择对方角色(1:刘备 2:孙权 3:曹操):");int choice = input.nextInt();String name=" ";switch(choice){case 1:name = "刘备";break;case 2:name= "孙权";break;case 3:name = "曹操";break;}cpt = new Computer(name,0);//确定用户姓名System.out.print("输入你的姓名:");name = input.next();usr = new User(name,0);//显示对战信息System.out.println(cpt.getName()+" VS "+usr.getName()+" 对战");System.out.println("----------------------------");}//开始游戏public void start(){System.out.print("要开始吗?(y/n)");String answer= input.next(); //是否开始游戏while(answer.equals("y")){System.out.println();System.out.print("请出拳:1.剪刀2.石头3.布(请输入相应数字)");String uFist = usr.showFist(input.nextInt()); //用户出拳System.out.println();System.out.println("你出拳:"+uFist);//生成1~3之间的随机数int choice = (int)(Math.random()*3)+1;String cFist = cpt.showFist(choice); //计算机随机出拳System.out.println(cpt.getName()+"出拳:"+cFist);gameResult(uFist,cFist); //计算对战结果count++; // 对战次数加1System.out.println();System.out.print("是否开始下一轮(y/n):");answer = input.next();}showGamesResult();}//计算对战结果public void gameResult(String userFist, String cmpFist){if((userFist == "剪刀" && cmpFist == "布") ||(userFist == "石头" && cmpFist == "剪刀")||(userFist == "布" && cmpFist == "石头")){System.out.println("结果说:你赢了!");usr.setScore(usr.getScore()+1); //积分+1}else if(userFist.equals(cmpFist)){System.out.println("结果说:平局!!");}else{System.out.println("结果说:你输了!");cpt.setScore(cpt.getScore()+1);}}//显示对战结果public void showGamesResult(){System.out.println("----------------------------");System.out.println(cpt.getName()+" vs "+usr.getName());System.out.println("对战次数"+count);System.out.println("姓名\t得分");System.out.println(usr.getName()+"\t"+usr.getScore());System.out.println(cpt.getName()+"\t"+cpt.getScore());if(usr.getScore() > cpt.getScore()){System.out.println("结果:你赢了!");}else{System.out.println("结果:下次加油啊!");}System.out.println("----------------------------");}}====================================== ========================================= package sjlx.guess;public abstract class Player {private String name; //玩家姓名private int score; //玩家积分public Player(){}public Player(String name, int score){ = name;this.score = score;}public String getName(){return name;}public int getScore(){return score;}public void setScore(int score){this.score = score;}public abstract String showFist(int choice);}====================================== ========================================= package sjlx.guess;import java.util.Scanner;public class Test {public static void main(String[] args){Scanner input = new Scanner(System.in);String answer="";do{Game gm = new Game();gm.initial();gm.start();System.out.print("开始下一局吗?(y/n):");answer = input.next();}while(answer.equals("y"));System.out.println("系统退出!");}}====================================== ========================================= package sjlx.guess;public class User extends Player {public User(){}public User(String name, int score){super(name,score);}public void setScore(int score){ super.setScore(score);}public String showFist(int choice){ String cFist;switch(choice){case 1:cFist = "剪刀";break;case 2:cFist = "石头";break;default:cFist = "布";break;}return cFist;}}。
基于JAVA的剪刀石头布游戏设计Java课程设计报告
基于J A V A的剪刀石头布游戏设计J a v a课程设计报告IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】目录9基于JAVA的剪刀石头布游戏设计摘要:本课程设计使用Java语言,运用包和包及getInputStream()、getOutputStream()等方法,编写出一个能在dos环境中显示出剪刀石头布游戏界面,启动服务器端线程,运行客户端线程,提示玩家出拳,然后,程序把玩家输入的数据传入到服务器端,通过服务器端线程的函数得出结果,然后再把结果传输到界面上。
关键字:方法;网络编程;多线程;输入输出流前言Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。
用Java实现的HotJava浏览器(支持Java applet)显示了Java 的魅力:跨平台、动态的Web、Internet计算。
从此,Java被广泛接受并推动了Web 的迅速发展,常用的浏览器现在均支持Java applet【1】。
在面向对象程序设计中,通过继承可以简化类的定义。
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
对象的一个新类可以从现有的类中派生,这个过程称为类继承【2】。
新类继承了原始类的特性,新类称为原始类的派生类,而原始类称为新类的超类。
派生类可以从它的基类那里继承方法和变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
在一个程序中,这些独立运行的程序片断叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”【3】。
多线程处理一个常见的例子就是用户界面。
利用线程,用户可按下一个按钮,然后程序会立即作出响应,而不是让用户等待程序完成了当前任务以后才开始响应。
在Java语言中,线程是一种特殊的对象,它必须由Thread类或其子(孙)类来创建。
通常有两种方法来创建线程:其一,使用型构为Thread(Runnable) 的构造子将一个实现了Runnable接口的对象包装成一个线程,其二,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。
JAVA实现“剪刀石头布”小游戏
JAVA实现“剪刀石头布”小游戏JAVA实现“剪刀石头布”小游戏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 = 0; i < box.length; i++) {//为那个下拉框赋值.用前面定义的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(getT otal());//给分数那个LABEL赋值..就是显示分数..赋值的是通过getT otal()这个方法得到的返回值}});JButton clearBut = new JButton("清除分数");//新建一个清楚分数的按钮clearBut.addActionListener(new ActionListener() {//同上给他加个监听public void actionPerformed(ActionEvent e) {//如果用户点击了就执行这个方法ta.setText("");//给文本域赋值为""..其实就是清楚他的内容win = 0;//win赋值为0loss = 0;//同上equal = 0;//同上lb.setText(getT otal());//给显示分数那个赋值..因为前面已经都赋值为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 getT otal() {return "赢:" + win + " 平:" + equal + " 输:" + loss + " 得分:"+ getPoint();}}更多JA V A小游戏。
java简易小游戏制作代码
java简易⼩游戏制作代码java简易⼩游戏制作游戏思路:设置⼈物移动,游戏规则,积分系统,随机移动的怪物,游戏胜负判定,定时器。
游戏内容部分package 代码部分;import javax.swing.*;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.event.KeyEvent;import java.awt.event.KeyListener;import java.util.Random;public class TestGamePanel extends JPanel implements KeyListener, ActionListener {//初始化⼈物坐标int p1X;int p1Y;int p2X;int p2Y;boolean isStart = false; //游戏是否开始boolean p1isFail = false; //游戏是否失败boolean p2isFail = false;String fx1; //左:L,右:R,上:U,下:DString fx2;Timer timer = new Timer(50,this);//定时器//积分int p1score = 0;int p2score = 0;//苹果int AppleX;int AppleY;//怪物int monster1X;int monster1Y;int monster2X;int monster2Y;int monster3X;int monster3Y;int monster4X;int monster4Y;int monster5X;int monster5Y;//随机积分Random random = new Random();public TestGamePanel() {init();this.setFocusable(true);this.addKeyListener(this);timer.start();}//初始化public void init() {p1X = 25;p1Y = 150;p2X = 700;p2Y = 550;fx1 = "L";fx2 = "R";monster1X = 25*random.nextInt(28);monster1Y = 100 + 25*random.nextInt(18);monster2X = 25*random.nextInt(28);monster2Y = 100 + 25*random.nextInt(18);monster3X = 25*random.nextInt(28);monster3Y = 100 + 25*random.nextInt(18);monster4X = 25*random.nextInt(28);monster4Y = 100 + 25*random.nextInt(18);monster5X = 25*random.nextInt(28);monster5Y = 100 + 25*random.nextInt(18);AppleX = 25*random.nextInt(28);AppleY = 100 + 25*random.nextInt(18);add(kaishi);add(chongkai);guize.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {new TestGameRule();}});}//游戏功能按钮JButton kaishi = new JButton("开始");JButton chongkai = new JButton("重新开始");JButton guize = new JButton("游戏规则");//画板@Overrideprotected void paintComponent(Graphics g) {super.paintComponent(g);TestGameData.header.paintIcon(this,g,0,0);g.setColor(Color.CYAN);g.fillRect(0,100,780,520);//画⼈物TestGameData.p1player1.paintIcon(this,g,p1X,p1Y);TestGameData.p2player1.paintIcon(this,g,p2X,p2Y);//画得分g.setFont(new Font("华⽂彩云",Font.BOLD,18)); //设置字体g.setColor(Color.RED);g.drawString("玩家1:" + p1score,20,20 );g.drawString("玩家2:" + p2score,680,20);//画苹果TestGameData.apple.paintIcon(this,g,AppleX,AppleY);//画静态怪物TestGameData.monster.paintIcon(this,g,monster1X,monster1Y);TestGameData.monster.paintIcon(this,g,monster2X,monster2Y);TestGameData.monster.paintIcon(this,g,monster3X,monster3Y);TestGameData.monster.paintIcon(this,g,monster4X,monster4Y);TestGameData.monster.paintIcon(this,g,monster5X,monster5Y);//游戏提⽰,是否开始if(!isStart) {g.setColor(Color.BLACK);g.setFont(new Font("华⽂彩云",Font.BOLD,30));g.drawString("请点击开始游戏",300,300);}//游戏结束提⽰,是否重新开始if(p2isFail || p1score == 15) {g.setColor(Color.RED);g.setFont(new Font("华⽂彩云",Font.BOLD,30));g.drawString("玩家⼀获胜,请点击重新开始游戏",200,300);if(p1isFail || p2score == 15) {g.setColor(Color.RED);g.setFont(new Font("华⽂彩云",Font.BOLD,30));g.drawString("玩家⼆获胜,请点击重新开始游戏",200,300); }}//键盘监听事件@Overridepublic void keyPressed(KeyEvent e) {//控制⼈物⾛动//玩家1if(isStart == true && (p1isFail == false && p2isFail == false)) { if(e.getKeyCode() == KeyEvent.VK_D) {fx1 = "R";p1X += 25;if(p1X >= 750) {p1X = 750;}}else if(e.getKeyCode() == KeyEvent.VK_A) {fx1 = "L";p1X -= 25;if(p1X <= 0) {p1X = 0;}}else if(e.getKeyCode() == KeyEvent.VK_W) {fx1 = "U";p1Y -= 25;if(p1Y <= 100) {p1Y = 100;}}else if(e.getKeyCode() == KeyEvent.VK_S) {fx1 = "D";p1Y += 25;if(p1Y >= 600) {p1Y = 600;}}//玩家2if(e.getKeyCode() == KeyEvent.VK_RIGHT) {fx2 = "R";p2X += 25;if(p2X >= 750) {p2X = 750;}}else if(e.getKeyCode() == KeyEvent.VK_LEFT) {fx2 = "L";p2X -= 25;if(p2X <= 0) {p2X = 0;}}else if(e.getKeyCode() == KeyEvent.VK_UP) {fx2 = "U";p2Y -= 25;if(p2Y <= 100) {p2Y = 100;}}else if(e.getKeyCode() == KeyEvent.VK_DOWN) {fx2 = "D";p2Y += 25;if(p2Y >= 600) {p2Y = 600;}}}repaint();}@Overridepublic void actionPerformed(ActionEvent e) {kaishi.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {isStart = true;}});chongkai.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {if(p1isFail) { p1isFail = !p1isFail; init(); }if(p2isFail) { p2isFail = !p2isFail; init(); }}});add(kaishi);add(chongkai);add(guize);if(isStart == true && (p1isFail == false && p2isFail == false)) { //让⼈动起来if(fx1.equals("R")) {p1X += 25;if(p1X >= 750) { p1X = 750; }}if(fx1.equals("L")) {p1X -= 25;if(p1X <= 0) { p1X = 0; }}if(fx1.equals("U")) {p1Y -= 25;if(p1Y <= 100) { p1Y = 100; }}if(fx1.equals("D")) {p1Y += 25;if(p1Y >= 600) { p1Y = 600; }}if(fx2.equals("R")) {p2X += 25;if(p2X >= 750) { p2X = 750; }}if(fx2.equals("L")) {p2X -= 25;if(p2X <= 0) { p2X = 0; }}if(fx2.equals("U")) {p2Y -= 25;if(p2Y <= 100) { p2Y = 100; }}if(fx2.equals("D")) {p2Y += 25;if(p2Y >= 600) { p2Y = 600; }}//让怪物动起来//怪物1int i = random.nextInt(4) + 1;if(i == 1) {monster1X += 5;if(monster1X >= 750) {monster1X = 750;}}if(i == 2) {monster1X -= 5;if(monster1X <= 0) {monster1X = 0;}}if(i == 3) {monster1Y += 5;if(monster1Y >= 600) {monster1Y = 600;}if(i == 4) {monster1Y -= 5;if(monster1Y <= 100) {monster1Y = 100;}}//怪物2int j = random.nextInt(4) + 1;if(j == 1) {monster2X += 5;if(monster2X >= 750) {monster2X = 750;}}if(j == 2) {monster2X -= 5;if(monster2X <= 0) {monster2X = 0;}}if(j == 3) {monster2Y += 5;if(monster2Y >= 600) {monster2Y = 600;}}if(j == 4) {monster2Y -= 5;if(monster2Y <= 100) {monster2Y = 100;}}//怪物3int k = random.nextInt(4) + 1;if(k == 1) {monster3X += 5;if(monster3X >= 750) {monster3X = 750;}}if(k == 2) {monster3X -= 5;if(monster3X <= 0) {monster3X = 0;}}if(k == 3) {monster3Y += 5;if(monster3Y >= 600) {monster3Y = 600;}}if(k == 4) {monster3Y -= 5;if(monster3Y <= 100) {monster3Y = 100;}}//怪物4int n= random.nextInt(4) + 1;if(n == 1) {monster4X += 5;if(monster4X >= 750) {monster4X = 750;}}if(n == 2) {monster4X -= 5;if(monster4X <= 0) {monster4X = 0;}}if(n == 3) {monster4Y += 5;if(monster4Y >= 600) {monster4Y = 600;}}if(n == 4) {monster4Y -= 5;if(monster4Y <= 100) {monster4Y = 100;}}//怪物5int m = random.nextInt(4) + 1;if(m == 1) {monster5X += 5;if(monster5X >= 750) {monster5X = 750;}}if(m == 2) {monster5X -= 5;if(monster5X <= 0) {monster5X = 0;}}if(m == 3) {monster5Y += 5;if(monster5Y >= 600) {monster5Y = 600;}}if(m == 4) {monster5Y -= 5;if(monster5Y <= 100) {monster5Y = 100;}}//如果有玩家吃到⾷物if(p1X == AppleX && p1Y == AppleY) {p1score++;AppleX = 25*random.nextInt(28);AppleY = 100 + 25*random.nextInt(18);} else if(p2X == AppleX && p2Y == AppleY) {p2score++;AppleX = 25*random.nextInt(28);AppleY = 100 + 25*random.nextInt(18);}//如果有玩家碰到怪物,判定死亡,游戏结束后续有修改,暂⽤ //怪物1死亡if(p1X >= monster1X -25 && p1X <= monster1X +25) {if(p1Y == monster1Y) { p1isFail = !p1isFail; p1score = p2score = 0;} }if(p1Y >= monster1Y -25 && p1Y <= monster1Y +25) {if(p1X == monster1X) { p1isFail = !p1isFail; p1score = p2score = 0;} }if(p2X >= monster1X -25 && p2X <= monster1X +25) {if(p2Y == monster1Y) { p2isFail = !p2isFail; p1score = p2score = 0;} }if(p2Y >= monster1Y -25 && p2Y <= monster1Y +25) {if(p2X == monster1X) { p2isFail = !p2isFail; p1score = p2score = 0;} }//怪物2死亡if(p1X >= monster2X -25 && p1X <= monster2X +25) {if(p1Y == monster2Y) { p1isFail = !p1isFail; p1score = p2score = 0;} }if(p1Y >= monster2Y -25 && p1Y <= monster2Y +25) {if(p1X == monster2X) { p1isFail = !p1isFail; p1score = p2score = 0;} }if(p2X >= monster2X -25 && p2X <= monster2X +25) {if(p2Y == monster2Y) { p2isFail = !p2isFail; p1score = p2score = 0;} }if(p2Y >= monster2Y -25 && p2Y <= monster2Y +25) {if(p2X == monster2X) { p2isFail = !p2isFail; p1score = p2score = 0;} }//怪物3死亡if(p1X >= monster3X -25 && p1X <= monster3X +25) {if(p1Y == monster3Y) { p1isFail = !p1isFail; p1score = p2score = 0;} }if(p1Y >= monster3Y -25 && p1Y <= monster3Y +25) {if(p1X == monster3X) { p1isFail = !p1isFail; p1score = p2score = 0;} }if(p2X >= monster3X -25 && p2X <= monster3X +25) {if(p2Y == monster3Y) { p2isFail = !p2isFail; p1score = p2score = 0;}if(p2Y >= monster3Y -25 && p2Y <= monster3Y +25) {if(p2X == monster3X) { p2isFail = !p2isFail; p1score = p2score = 0;}}//怪物4死亡if(p1X >= monster4X -25 && p1X <= monster4X +25) {if(p1Y == monster4Y) { p1isFail = !p1isFail; p1score = p2score = 0;}}if(p1Y >= monster4Y -25 && p1Y <= monster4Y +25) {if(p1X == monster1X) { p1isFail = !p1isFail; p1score = p2score = 0;}}if(p2X >= monster4X -25 && p2X <= monster4X +25) {if(p2Y == monster4Y) { p2isFail = !p2isFail; p1score = p2score = 0;}}if(p2Y >= monster4Y -25 && p2Y <= monster4Y +25) {if(p2X == monster4X) { p2isFail = !p2isFail; p1score = p2score = 0;}}//怪物5死亡if(p1X >= monster5X -25 && p1X <= monster5X +25) {if(p1Y == monster5Y) { p1isFail = !p1isFail; p1score = p2score = 0;}}if(p1Y >= monster5Y -25 && p1Y <= monster5Y +25) {if(p1X == monster5X) { p1isFail = !p1isFail; p1score = p2score = 0;}}if(p2X >= monster5X -25 && p2X <= monster5X +25) {if(p2Y == monster5Y) { p2isFail = !p2isFail; p1score = p2score = 0;}}if(p2Y >= monster5Y -25 && p2Y <= monster5Y+25) {if(p2X == monster5X) { p2isFail = !p2isFail; p1score = p2score = 0;}}//如果有玩家达到指定积分,判定获胜,游戏结束if(p1score == 15) { p2isFail = !p2isFail; }if(p2score == 15) { p1isFail = !p1isFail; }repaint();}timer.start();}@Overridepublic void keyTyped(KeyEvent e) {}@Overridepublic void keyReleased(KeyEvent e) {}}游戏规则(使⽤弹窗)部分package 代码部分;import javax.swing.*;import java.awt.*;public class TestGameRule extends JDialog {private int num = 1;public TestGameRule() {TextArea textArea = new TextArea(20,10);textArea.setText("游戏中有五个怪物随机移动,碰到怪物算死亡\\\n游戏中有随机出现的苹果,碰到⼀个苹果加⼀分,\\\n先达到⼗五分或者对⼿死亡算游戏胜利!"); JScrollPane jScrollPane = new JScrollPane(textArea);this.add(jScrollPane);this.setBounds(200,200,400,400);this.setVisible(true);textArea.setEditable(false);setResizable(false);textArea.setBackground(Color.PINK);}}图⽚素材package 代码部分;import javax.swing.*;import .URL;public class TestGameData {public static URL headerurl = TestGameData.class.getResource("/图⽚素材/header.jpg");public static URL p1player1url = TestGameData.class.getResource("/图⽚素材/1.jpg");public static URL p2player2url = TestGameData.class.getResource("/图⽚素材/2.jpg");public static URL appleurl = TestGameData.class.getResource("/图⽚素材/apple.jpg");public static URL monsterurl = TestGameData.class.getResource("/图⽚素材/monster.jpg");public static ImageIcon p1player1 = new ImageIcon(p1player1url);public static ImageIcon p2player1 = new ImageIcon(p2player2url);public static ImageIcon header = new ImageIcon(headerurl);public static ImageIcon apple = new ImageIcon(appleurl);public static ImageIcon monster = new ImageIcon(monsterurl);}主函数package 代码部分;import javax.swing.*;public class TestStartGame {public static void main(String[] args) {//制作窗⼝JFrame jFrame = new JFrame("2D对战⼩游戏");jFrame.setBounds(10,10,790,660);jFrame.setResizable(false);jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//添加游戏⾯板jFrame.add(new TestGamePanel());//设置可见jFrame.setVisible(true);}}实现效果到此这篇关于java简易⼩游戏制作代码的⽂章就介绍到这了,更多相关java简易⼩游戏内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
基于JAVA的剪刀石头布游戏设计
目录前言31剪刀石头布游戏设计思路阐述42程序概要设计42.1功能需求分析42.2性能需求分析42.3程序框图52.4 Java类及自定义类相互继承的层次关系52.4.1 Java类及自定义类的说明52.4.2类中成员及作用63程序详细设计63.1 包的加载63.2自定义类创建服务器端和客户端73.3创建程序线程74测试运行95源代码清单106总结137致谢13参考文献13基于JAVA的剪刀石头布游戏设计摘要:本课程设计使用Java语言,运用java.io包和包及getInputStream()、getOutputStream()等方法,编写出一个能在dos环境中显示出剪刀石头布游戏界面,启动服务器端线程,运行客户端线程,提示玩家出拳,然后,程序把玩家输入的数据传入到服务器端,通过服务器端线程的函数得出结果,然后再把结果传输到界面上。
关键字:方法;网络编程;多线程;输入输出流前言Java,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台的总称。
用Java实现的HotJava浏览器(支持Java applet)显示了Java 的魅力:跨平台、动态的Web、Internet计算。
从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。
在面向对象程序设计中,通过继承可以简化类的定义。
继承是一种联结类的层次模型,并且允许和鼓励类的重用,它提供了一种明确表述共性的方法。
对象的一个新类可以从现有的类中派生,这个过程称为类继承。
新类继承了原始类的特性,新类称为原始类的派生类,而原始类称为新类的超类。
派生类可以从它的基类那里继承方法和变量,并且类可以修改或增加新的方法使之更适合特殊的需要。
在一个程序中,这些独立运行的程序片断叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”。
多线程处理一个常见的例子就是用户界面。
python实现石头剪子布游戏——if语句
python实现⽯头剪⼦布游戏——if语句
#⽤户输⼊部分
number1 = int(input("请输⼊数字:剪⼑(0)、⽯头(1)、布(2)"))
if number1 == 0:
usernumber = "剪⼑(0)"
elif number1 == 1:
usernumber = "⽯头(1)"
elif number1 ==2:
usernumber = "布(2)"
#电脑⽣成部分
import random
number2 = random.randint(0,2)
#显⽰
print("你的输⼊为: %s "%usernumber)
print("随机⽣成的数字为: %d "%number2)
#⽐较
if number1 < number2:
print("哇哦,你赢了!")
elif number1 == number2:
print("平局!")
elif number1 > number2:
print("哈哈,你输了!")
经验总结:
1、看要求的两个输出,⼀个输出的是字符串,⼀个输出的是数字;
2、后⾯要做⽐较,⼀定是两个数字进⾏⽐较,number1和number2;
3、⽤户输⼊默认为字符串,但是不能⽤来做⽐较,因⽽先强制转化为数字形式,变量:number1。
但是有要求输出字符串语句,那么就再引⼊⼀个变量usernumber表⽰;
4、电脑⽣成默认为数字,变量:number1;。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
JAVA实现“剪刀石头布”小游戏
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 = 0; i < box.length; i++) {//为那个下拉框赋值.用前面定义的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();
}
}
更多JA V A小游戏。