Java人機猜拳游戲撰寫思路及實作
創建四個類:
-
機器人類
-
玩家類
-
游戲類
-
運行類
一、機器人類:
1.首先創建兩個成員變數,分別作為機器人的名字與積分:
String name;
int jifen;
2.然后創建方法“pcname”用于定義機器人的名字:
寫個switch回圈來判斷如果你按1234的話誰來與你對戰
3.然后再創建一個方法“chuquan”來定義機器人出什么,石頭還是剪刀,,:
所以寫個1-3的亂數
int suiji=((int)(Math.random()*3)+1);
4.最后switch判斷,1的話是石頭,2剪刀,3布
機器人完整代碼:
import java.util.Scanner;
public class pc {
String name;
int jifen;
Scanner input=new Scanner(System.in);
public void pcname(){
int pcjuese=input.nextInt();
switch (pcjuese) {
case 1:
name="張飛";
System.out.println("你選擇了"+name+"對戰");
break;
case 2:
name="趙云";
System.out.println("你選擇了"+name+"對戰");
break;
case 3:
name="貂蟬";
System.out.println("你選擇了"+name+"對戰");
break;
default:
System.out.println("還沒這個人");
}
}
public int chuquan(){
int suiji=((int)(Math.random()*3)+1);
switch (suiji){
case 1:
System.out.println(name+"出拳:石頭");
break;
case 2:
System.out.println(name+"出拳:剪刀");
break;
case 3:
System.out.println(name+"出拳:布");
break;
default:
}
return suiji;
}
}
二、玩家類:
1.和機器人一樣,定義兩個成員變數,用于作為名字和積分:
String name="1";
int jifen=0;
2.創建一個“renname”方法,用于定義玩家的昵稱
3.創建一個”chuquan“方法,用于定義玩家出拳
然后switch進行判斷,按1出石頭,按2出剪刀,按3出布
玩家完整代碼:
import java.util.Scanner;
public class ren
{
String name="1";
int jifen=0;
Scanner input=new Scanner(System.in);
public void renname(){
System.out.println("起一個昵稱吧:");
name=input.next();
System.out.println("你的昵稱為:"+name);
}
public int chuquan(){
System.out.println("出拳:1.石頭 2.剪刀 3.布");
int show=input.nextInt();
switch (show){
case 1:
System.out.println(name+" 出石頭");
break;
case 2:
System.out.println(name+" 出剪刀");
break;
case 3:
System.out.println(name+" 出布");
break;
default :
System.out.println("你準備出個大炮呢?");
}
return show;
}
}
三、游戲類
1.定義兩個成員變數和new兩個物件:
int count; //進行了幾局游戲
int pingju; //平局場次
ren Ren =new ren();
pc computer =new pc();
2.創建“game”方法,用來呼叫機器人類和玩家類,以及實作游戲功能
3.首先呼叫Ren.name()來用于讓玩家創建昵稱
3.1.然后呼叫computer.name()來用于讓玩家選擇和誰對戰
4.一切ok,開始進行功能實作:
首先創建兩個變數,一個是機器人出拳,一個是玩家出拳
int pcquan; //pc出拳
int personquan; //人出拳
y/n開始游戲和退出游戲
開始進行游戲功能實作撰寫
5.回圈的時候把機器人和玩家出拳的方法賦值給上面兩個定義出拳的變數
6.功能ok后創建一個方法,用于定義計分板,這個就很簡單了,直接附上游戲類完整代碼:
import java.util.Scanner;
public class w {
int count; //進行了幾局游戲
int pingju; //平局場次
ren Ren =new ren();
pc computer =new pc();
Scanner input=new Scanner(System.in);
public void game(){
System.out.println("規則:1.石頭 2.剪刀 3.布");
Ren.renname();
System.out.print("請選擇對方角色(1.張飛 2.趙云 3.貂蟬): "); // 選擇對方角色
computer.pcname();
System.out.println("要開始嘛?(y/n)");
String yn=input.next();
int pcquan; //pc出拳
int personquan; //人出拳
while (yn.equalsIgnoreCase("y")){
personquan=Ren.chuquan(); //人出拳
pcquan=computer.chuquan(); //pc出拳
if((pcquan==1&personquan==1)|(pcquan==2&personquan==2)|(pcquan==3&personquan==3)){
System.out.println("平局");
pingju++;
}else if((pcquan==1&personquan==3)|(pcquan==2&personquan==1)|(pcquan==3&personquan==2)){
System.out.println(Ren.name+"贏了");
computer.jifen++;
}else {
System.out.println(computer.name+"贏了");
Ren.jifen++;
}
count++; //表示進行了一局游戲
System.out.println("開始下一輪嘛?(y/n)");
yn=input.next();
if (yn.equalsIgnoreCase("n")){
System.out.println("游戲結束");
result();
}
}
}
//比賽結果
public void result(){
System.out.println("-------------------------------");
System.out.println(Ren.name+" VS "+computer.name);
System.out.println("對戰次數:"+count);
System.out.println("平局"+pingju+"場");
System.out.println(Ren.name+"贏了"+Ren.jifen+"場");
System.out.println(computer.name+"贏了"+computer.jifen+"場");
if(Ren.jifen> computer.jifen){
System.out.println(Ren.name+"贏了");
}else if (computer.jifen> Ren.jifen){
System.out.println(computer.name+"贏了");
}else {
System.out.println("平局");
}
}
}
三、運行類
這個就不多說了,直接上代碼
public class test
{
public static void main(String[] args) {
w game=new w();
ren ren=new ren();
game.game();
//game.result();
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/234338.html
標籤:其他
上一篇:LeetCode 5627. 石子游戲 VII(博弈DP)
下一篇:linux中ls命令
