一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - java飛行棋實現思路

java飛行棋實現思路

2020-09-21 14:06Sisto Java教程

這篇文章主要為大家詳細介紹了java飛行棋的實現思路,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了java飛行棋的注釋版,供大家參考,具體內容如下

可以直接用:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
import java.util.Scanner;
 
public class Fly3 {
 
 public static void main(String[] args) {
 // TODO Auto-generated method stub
 Scanner sc = new Scanner(System.in);
 int all1 = 0;// 記錄A的步數
 int all2 = 0;// 記錄B的步數
 
 int flag1 = 1;// 對于A的暫停情況進行判斷
 int flag2 = 1;// 對于B的暫停情況進行判斷
 
 int first1 = 0;// 進行初始化判斷
 int first2 = 0;
 
 System.out.print("|||||||||?|||||||||||||||||||||||" + "\n||||?||||||飛行棋Beta版||||||||||||\n"
  + "|||||||||||||||||||||||||||?|||||\n"+ "||||||||?||||||||||||||||||||||||");// 標題顯示
 System.out.println();
 System.out.println();
 System.out.println();
 System.out.println("\t}}}}圖形展示{{{{");
 System.out.println("?為傳送門,一次10格" + "\n為炸彈,一次退回6格" + "\n?為被雷劈,一次直接返回原點 " + "\n為幸運輪盤,踩上去可選擇相關"
  + "\n為暫停,踩上后下一次行動無法進行" + "\n注:玩家與玩家的位置相同時,后一個玩家將會將上一個玩家擠退2格");
 
 System.out.println();
 System.out.println();
 String A = "玩家A";// 用戶選擇角色
 A = login(A);
 
 String B = "玩家B";
 B = login(B);
 
 if (A.equals(B)) {
  B = B + "2號";
 }
 
 maps(icon(all1, all2));
 
 for (int i = 0;; i++) {
  // A玩家視角
  System.out.println(A + "開始投骰子");
  int random1 = (int) (Math.random() * 6 + 1);
  String msg = sc.nextLine();
  System.out.println("少女祈禱中。。。");
  System.out.println(A + "走" + random1 + "步");
  all1 += random1;
 
  if (first1 > 0) {// 判斷是否為第一次運行地圖(由于數組坐標重復的原因)
  if (flag1 % 2 != 0) {// 判斷為第幾次踩到了暫停格子
   all1 = all1 - random1;// 如果是第二次則將前面走的隨機步數減回去
   System.out.println("但是" + A + "不能走!因為");
  }
  }
  first1++;
  all2 = samepoint(all1, all2, B, A);// 判斷二者坐標相同時(當A擠到B的位置時B怎么辦(一種為后退四個格子一種為回到原點))
  all1 = walk(A, all1);// 得到A所在數組下標位置,接下來對A的位置進行一次是否暫停的判定
  flag1 = check(all1, flag1);
 
  /*
  * if (all1 == 15 || all1 == 28 || all1 == 85 || all1 == 90)
  * {//(在輸出地圖之后對A當前所在的位置進行判定,如果滿足則讓flag自加1)
  * flag1++;}此時flag在暫停判定模塊中滿足條件,進入判定,當第二次結束后flag則不會滿足上面暫停模塊的判定條件 else { flag1 =
  * 0; }//正常情況時flag被賦值為0;則不會走到上面的暫停判定模塊
  *
  */
 
  if (all1 == 55 || all1 == 22 || all1 == 10) {// 對幸運轉盤進行操作判定
  System.out.println("請選擇" + A + "要執行的操作!\n1.和" + B + "換個位置\n2.讓" + B + "退后個4格子");
  int choice = sc.nextInt();
  if (choice == 1) {
   int temp = all1;
   all1 = all2;
   all2 = temp;
   System.out.println(A + "和" + B + "的位置交換了!");
  } else {
   if (all2 < 4) {
   all2 = 0;
   System.out.println("直接把" + B + "送回原點了!");
   } else {
   all2 -= 4;
   }
  }
 
  }
 
  maps(icon(all1, all2));// 判斷A是否符合條件獲勝
  System.out.println(A+"的位置是"+all1+"\n"+B+"的位置是"+all2+"\n");
  
  if (all1 >= 100) {
  System.out.println(A + "贏啦");
  return;
  }
  // 到此為止,對A的一輪判定結束
 
  // B玩家地圖視角
  System.out.println(B + "開始投骰子");
  int random2 = (int) (Math.random() * 6 + 1);
  String msg2 = sc.nextLine();
  System.out.println("少女祈禱中。。。");
  System.out.println(B + "走" + random2 + "步");
  all2 += random2;
 
  if (first2 > 0) {// 判斷是否初始化
  if (flag2 % 2 != 0) {// 判斷第幾次踩到了暫停格子
   all2 = all2 - random2;
   System.out.println("但是" + B + "不能走!因為");
  }
  }
  first2++;
 
  all1 = samepoint(all2, all1, A, B);// 判斷二者坐標相同時(當B擠到A的位置時A怎么辦(一種為后退四個格子一種為回到原點))
  all2 = walk(B, all2);
 
  flag2 = check(all2, flag2);
 
  if (all2 == 55 || all2 == 22 || all2 == 10) {
  System.out.println("請選擇" + B + "要執行的操作!\n1.和" + A + "換個位置\n2.讓" + A + "退后個4格子");
  int choice = sc.nextInt();
  if (choice == 1) {
   int temp = all2;
   all2 = all1;
   all1 = temp;
   System.out.println(B + "和" + A + "的位置交換了!");
  } else {
   if (all1 < 4) {
   all1 = 0;
   System.out.println("直接把" + A + "送回原點了!");
   } else {
   all1 -= 4;
   }
  }
 
  }
 
  maps(icon(all1, all2));
  System.out.println(A+"的位置是"+all1+"\n"+B+"的位置是"+all2+"\n");
  if (all2 >= 100) {// 判斷B是否符合條件獲勝
  System.out.println(B + "贏啦");
  return;
  }
  // 到此位置,對B的一輪判定結束
 
 }
 }
 
 public static void maps(String[] a) {// 加空格是為了美觀
 for (int i = 0; i < 32; i++) {
  System.out.print(a[i] + " ");
 }
 System.out.println();// 第一排地圖圖形輸出
 for (int i = 0; i < 32; i++) {
  System.out.print(" ");
 }
 System.out.println(" " + a[32]);// 第二排地圖圖形輸出
 
 for (int i = 0; i < 32; i++) {
  System.out.print(" ");
 }
 System.out.println(" " + a[33]);// 第三排地圖圖形輸出
 
 for (int i = 65; i > 33; i--) {
  System.out.print(a[i] + " ");// 第四排地圖圖形輸出
 }
 System.out.println();
 System.out.println(a[66]);
 System.out.println(a[67]);// 第五第六排地圖輸出
 
 for (int i = 68; i < 100; i++) {
  System.out.print(a[i] + " ");// 第七排地圖圖形輸出
 }
 for (int i = 100; i < 105; i++) {// 結尾小旗子圖像輸出
  System.out.print(a[i]);
 }
 System.out.println();
 }
 
 public static String[] icon(int a, int b) {
 String[] map = new String[105];
 
 for (int i = 0; i < 105; i++) {
  if (i == 32 || i == 33 || i == 66 || i == 67) {
  map[i] = "||";// 豎向輸出道路
  } else if (i == 3 || i == 9 || i == 23 || i == 40) {
  map[i] = "?";// 傳送門logo
  } else if (i == 75 || i == 62 || i == 48 || i == 37 || i == 98) {
  map[i] = "";// 炸彈logo
  } else if (i == 15 || i == 28 || i == 85 || i == 90) {
  map[i] = "";// 暫停logo
  } else if (i == 55 || i == 22 || i == 10) {
  map[i] = "";// 幸運轉盤logo
  } else if (i == 100 || i == 101 || i == 102 || i == 103 || i == 104) {
  map[i] = "";// 結尾處旗幟logo
  } else if (i == 99) {
  map[i] = "?";// 結尾處閃電logo
  } else {
  map[i] = "=";// 其余為橫向的道路
  }
 }
 map[b] = "B";
 map[a] = "A";
 return map;
 }
 
 public static int walk(String player, int a) {// 對當前角色應該走到的數組下標進行判斷
 int num = a;
 switch (a) {
 case 3:
 case 9:
 case 23:
 case 40:
  System.out.println(player + "進入傳送門,傳送10格!");
  num = a + 10;
  break;
 case 75:
 case 62:
 case 48:
 case 37:
 case 98:
  System.out.println(player + "危!!\n踩到炸彈了,退6格!");
  num = a - 6;
  return num;
 case 15:
 case 28:
 case 85:
 case 90:
  num = a;
  System.out.println(player + "踩到了暫停格子!");
  break;
 case 55:
 case 22:
 case 10:
  num = a;
  System.out.println(player + "踩到了幸運轉盤!!!!");
  break;
 case 99:
  num = 0;
  System.out.println(player + "危!!!\n被雷劈了,直接送回原點");
  break;
 default:
  num = a;
 
  break;
 }
 return num;
 
 }
 
 public static int check(int a, int b) {// a為位置,b為狀態判斷
 if (a == 15 || a == 28 || a == 85 || a == 90) {
  b++;
 } else {
  b = 0;
 }
 return b;
 }
 
 public static String login(String a) {
 String[] names = { "勞拉", "不知火舞", "春麗" };
 Scanner sc = new Scanner(System.in);
 System.out.println("可選角色:1.勞拉\t2.不知火舞\t3.春麗");
 System.out.println("請" + a + "選擇你的角色");// 角色選擇
 int aplayer = sc.nextInt();
 String player = names[aplayer - 1];
 return player;
 
 }
 
 public static int samepoint(int a, int b, String A, String B) {// 輸入的A為受害者,B為幸運玩家
 if (a == b && a >= 2 && a != 0) {
  b = b - 2;
  System.out.println(A + "玩家被" + B + "玩家擠回去了2格!");
  return b;
 } else if (a == b && a < 2 && a > 0) {
  b = 0;
  System.out.println(A + "玩家被" + B + "玩家擠回去了原點!");
 }
 return b;
 }
 
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

原文鏈接:https://blog.csdn.net/Sisto/article/details/108665637

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日韩一区二区不卡 | 成年人黄视频在线观看 | 日韩在线第一区 | 美国复古性经典xxxxx | 国产成人在线免费观看 | 四虎黄色网址 | 黑人艹逼| 青青青手机视频在线观看 | 成人精品区| 欧美一级艳片视频免费观看 | 精品99在线观看 | 性bbbb妇女激情 | 爆操俄罗斯美女 | 亚洲成色 | 亚洲AV永久无码精品老司机蜜桃 | 日本不卡不码高清免费观看 | 消息称老熟妇乱视频一区二区 | 欧美一级片在线免费观看 | 麻豆找网服 | 日韩黄色影视 | 国产色视频一区二区三区 | 国产草草视频 | 五月天婷婷网亚洲综合在线 | 国产视频一区在线观看 | 99爱在线观看精品视频 | 肉色欧美久久久久久久蜜桃 | poren18日本老师hd | 亚洲精品国产乱码AV在线观看 | 把老师操了 | yy8090韩国日本三理论免费 | 色亚洲色图 | 国产专区日韩精品欧美色 | 2019国内精品久久久久久 | japonensis中国东北老人 | 高贵女王调奴vk | 色哟哟在线视频 | 骚虎网站在线观看 | 欧美福利在线观看 | 免费观看国产大片资源视频 | 国产成人无精品久久久 | 国色天香高清版 |