程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> JAVA綜合教程 >> 人機猜拳(這是最近的一個總結),人機猜拳最近總結

人機猜拳(這是最近的一個總結),人機猜拳最近總結

編輯:JAVA綜合教程

人機猜拳(這是最近的一個總結),人機猜拳最近總結


人機猜拳是我自己原創的一段代碼,我剛學完do-while,知識有限,但自己感覺寫的這段代碼是我的一個小巅峰,發出來讓大家看看,新手能學到東西的話是極好的,然後更多的是想讓一些老鳥給點建議。這個寫代碼很枯燥,最近一直在寫,自己是深有體會,後來我就在練習的時候在自己的代碼裡寫一些有趣的內容,下面你們能看到,這算是個自娛自樂的小技巧吧。自己也是剛學習沒多久,覺得學習不能一個人學,要大家一起學,俗話說:三個臭皮匠頂個諸葛亮,所以今天不僅是來發表一下自己的代碼,更重要的是在這裡露個臉,和大家認識一下,希望大家能照顧一下我這個菜鳥。廢話不多說了,下面是代碼:

  1 import java.util.Scanner;
  2 public class CaiQuan {
  3     public static void main(String[] args) {
  4         Scanner input=new Scanner(System.in);
  5         System.out.println("--------歡迎進入猜拳游戲---------\n\n");
  6         System.out.println("  出拳規則:1.剪刀  2.石頭  3.布\n");
  7         System.out.println("******************************\n");
  8         System.out.println("*******  猜拳          開始      ********\n");
  9         System.out.println("******************************\n\n");
 10         System.out.println("游戲開始前給自己起一個威武霸氣的昵稱吧\n");
 11         System.out.println("請輸入你的昵稱:");
 12         String username=input.next();//讓用戶輸入昵稱
 13         String name="1";//給name一個初始值,name是computer的名字
 14         do{
 15             System.out.println("請選擇對戰角色(1.劉備  2.曹操  3.蓋倫):");
 16             boolean zhenjia=input.hasNextInt();//判斷輸入是否是數值
 17             while(!zhenjia){//如果不是數字,進入
 18                 String zhen=input.next();
 19                 System.out.println("您輸入的是:"+zhen+"  臣妾做不到啊!");
 20                 System.out.println("請重新選擇角色(1.劉備  2.曹操  3.蓋倫):");
 21                 zhenjia=input.hasNextInt();//判斷輸入是否是數值,如果不是 ,繼續循環
 22             }
 23             int num=input.nextInt();//取出的數字
 24             while(num>3||num<0){//判斷輸入的值是否是1-3,如果不是進入循環
 25                 System.out.println("臣妾做不到啊!");
 26                 System.out.println("請重新選擇角色(1.劉備  2.曹操  3.蓋倫):");
 27                 num=input.nextInt();//輸入數值,如果是1-3跳出循環,如果不是繼續循環
 28             }
 29             switch(num){
 30             case 1:
 31                 name="劉備";
 32                 break;
 33             case 2:
 34                 name="曹操";
 35                 break;
 36             case 3:
 37                 name="蓋倫";
 38                 break;
 39             }
 40         }while(name.equals("1"));//當name不是1時 ,跳出循環
 41         System.out.println("你選擇了  "+name+"對戰");
 42         String go;
 43         do{
 44             System.out.println(username+"\tVS\t"+name);
 45             //出拳代碼
 46             int i=1;//i是猜拳的輪數
 47             int userScore=0;//用戶得分
 48             int compScore=0;//computer得分
 49             String come;//當come賦值y,繼續循環,在下面寫著
 50             do{
 51                 System.out.println("這是第"+i+"輪");
 52                 System.out.println("請出拳:1.剪刀 2.石頭  3.布");
 53                 boolean zhenjia=input.hasNextInt();//判斷輸入是否是數值
 54                 while(!zhenjia){//如果不是數字,進入
 55                     String zhen=input.next();//把上面的值放入此處,一邊下面重新輸入
 56                     System.out.println("您輸入的是:"+zhen+"  臣妾做不到啊!");
 57                     System.out.println("請重新出拳:1.剪刀 2.石頭  3.布");
 58                     zhenjia=input.hasNextInt();//判斷輸入是否是數值,如果不是 ,繼續循環
 59                 }
 60                 int num=input.nextInt();//取出上面的數值
 61                 while(num>3||num<0){//判斷輸入的值是否是1-3,如果不是進入循環
 62                     System.out.println("臣妾做不到啊!");
 63                     System.out.println("請重新出拳:1.剪刀 2.石頭  3.布");
 64                     num=input.nextInt();//輸入數值,如果是1-3跳出循環,如果不是繼續循環
 65                 }
 66                 String user="";//儲存用戶的出拳
 67                 switch(num){
 68                 case 1:
 69                     System.out.println("你出拳:剪刀");
 70                     user="剪刀";
 71                     break;
 72                 case 2:
 73                     System.out.println("你出拳:石頭");
 74                     user="石頭";
 75                     break;
 76                 case 3:
 77                     System.out.println("你出拳:布");
 78                     user="布";
 79                     break;
 80                 }
 81                 String comp="";//儲存computer的猜拳
 82                 int numc=(((int)(Math.random()*10))%3+1);//隨機產生1-3
 83                 switch(numc){
 84                 case 1:
 85                     System.out.println(name+"出拳:剪刀");
 86                     comp="剪刀";
 87                     break;
 88                 case 2:
 89                     System.out.println(name+"出拳:石頭");
 90                     comp="石頭";
 91                     break;
 92                 case 3:
 93                     System.out.println(name+"出拳:布");
 94                     comp="布";
 95                     break;
 96                 }
 97                 if(user.equals(comp)){//判斷雙方出拳是否相同
 98                     System.out.println("雙方出拳:"+user+"  本局是平局");
 99                 }else{
100                     if(user.equals("剪刀")){//當用戶出剪刀時
101                         if(comp.equals("石頭")){//當computer出石頭時
102                             System.out.println(name+"贏了!");
103                             compScore++;
104                         }else{//當computer出布時
105                             System.out.println("你贏了!");
106                             userScore++;
107                         }
108                     }else if(user.equals("石頭")){
109                         if(comp.equals("布")){
110                             System.out.println(name+"贏了!");
111                             compScore++;
112                         }else{
113                             System.out.println("你贏了!");
114                             userScore++;
115                         }
116                     }else{
117                         if(comp.equals("剪刀")){
118                             System.out.println(name+"贏了!");
119                             compScore++;
120                         }else{
121                             System.out.println("你贏了!");
122                             userScore++;
123                         }
124                     }
125                 }
126                 i++;//猜拳輪數增加1
127                 System.out.println("繼續第"+i+"輪  y\n結束  n");
128                 come=input.next();//當come賦值y,繼續循環
129             }while("y".equals(come));//判斷come的值是否是y,如果是 ,繼續循環,否則跳出循環
130             System.out.println("游戲進行了"+(i-1)+"輪");
131             System.out.println("姓名\t得分");
132             System.out.println(username+"\t"+userScore);
133             System.out.println(name+"\t"+compScore);
1        if(userScore==compScore){//當得分一樣的情況,這是修改後添加的代碼
2                 System.out.println("你和"+name+"打了個平手");
3                 System.out.println("這怎麼能忍,打爆他才有快感");
4                 System.out.println(" 繼續y/認慫了n");
5             }else if(userScore>compScore){
135                 System.out.println("你把"+name+"打的落花流水");
136                 System.out.println("\t你tm帥呆了");
137                 System.out.println("再打"+name+"一局就把他打成豬頭了 \n  繼續y/認慫了n");
138             }else{
139                 System.out.println("你被"+name+"打成豬頭了");
140                 System.out.println("復仇y/認慫n");
141             }
142             go=input.next();
143         }while("y".equals(go));
144         System.out.println("GAME OVER!");
145     }//mian
146 
147 }

 下面運行代碼:

然後輸入一個昵稱:

下面讓用戶選擇一個角色進行對戰,只有1.2.3.三個選項,我先輸入一個4,看看效果:

你看,當我輸入的不是1.2.3.的時候,它提示你“臣妾做不到啊”,然後讓你重新選擇:

我輸入1:

我選擇了劉備,然後出拳:

 

 然後輸入n結束游戲:

這裡出現了點小問題,我沒有考慮到兩人分數相同的情況,

這是我復仇的結果,然後在輸入n,結束游戲:

上面修改了當得分一樣的情況

代碼還有很多問題,之後我會繼續修改

---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

轉載請注明出處!

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved