人機猜拳是我自己原創的一段代碼,我剛學完do-while,知識有限,但自己感覺寫的這段代碼是我的一個小巔峰,發出來讓大家看看,新手能學到東西的話是極好的,然後更多的是想讓一些老鳥給點建議。這個寫代碼很枯燥,最近一直在寫,自己是深有體會,後來我就在練習的時候在自己的代碼里寫一些有趣的內容,下麵你們能看 ...
人機猜拳是我自己原創的一段代碼,我剛學完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,結束游戲:
上面修改了當得分一樣的情況
代碼還有很多問題,之後我會繼續修改
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
轉載請註明出處!