因作業遇到困難 想上來請教一下各位大大
題目是一個21點的遊戲
(暫不考慮初始發兩張牌 & 發出的牌重複問題)
先貼一下目前code進度
==============================================================================
public class a1{
public static void main(String[] args) throws java.io.IOException
{
char key;
int r;
int player = 0;
int bank = 0;
do{
r = (int)(Math.random() * (13-1) + 1);
player += r;
System.out.print("玩家點數:" + r + "點\t玩家累計:" + player + "點\t");
if (player > 21)
{
System.out.println();
System.out.println("哇!玩家爆了!莊家贏");
}else if (player == 21)
{
System.out.println();
System.out.println("玩家21點!玩家贏");
}else
{
System.out.println("是否成要牌(y/n)\t");
key = (char)System.in.read();
System.in.read(); System.in.read();
}
}
while (key == 'y');
}
}
==============================================================================
錯在黃色那一行
想請問是否while判斷式裡面 不能用來判斷字元呢?
如果是這樣的話 要怎麼修改~"~
感謝各位大大
補上錯誤訊息
==============================================================================
a1.java:35: variable key might not have been initialized
while (key == 'y');
^
1 error
==============================================================================
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.172.2.245
→
12/08 15:58, , 1F
12/08 15:58, 1F
回a大
我沒有憑什麼
只是對do while的條件式不理解 沒有書本可以參考
網路上倒是沒找到用來判斷字元的
所以想上來問問看
→
12/08 15:59, , 2F
12/08 15:59, 2F
※ 編輯: xtimer 來自: 218.172.2.245 (12/08 16:09)
推
12/08 16:17, , 3F
12/08 16:17, 3F
→
12/08 16:21, , 4F
12/08 16:21, 4F
→
12/08 16:31, , 5F
12/08 16:31, 5F
→
12/08 16:33, , 6F
12/08 16:33, 6F
→
12/08 16:34, , 7F
12/08 16:34, 7F
→
12/08 16:36, , 8F
12/08 16:36, 8F
→
12/08 16:37, , 9F
12/08 16:37, 9F
推
12/08 16:42, , 10F
12/08 16:42, 10F
→
12/08 16:45, , 11F
12/08 16:45, 11F
→
12/08 17:06, , 12F
12/08 17:06, 12F
→
12/08 17:08, , 13F
12/08 17:08, 13F
→
12/08 17:41, , 14F
12/08 17:41, 14F
→
12/08 18:08, , 15F
12/08 18:08, 15F
→
12/08 18:59, , 16F
12/08 18:59, 16F
→
12/08 19:04, , 17F
12/08 19:04, 17F
→
12/08 19:05, , 18F
12/08 19:05, 18F
=============================================================================
import java.io.*;
public class Number21{
public static void main(String[] args) throws java.io.IOException
{
int r, rf;
int player = 0;
int bank = 0;
char key;
String card;
String jqk;
do{
card = ""; //初始花色
jqk = ""; //初始人頭點數
rf = (int)(Math.random() * (4-1) + 1); //決定牌花色start
switch(rf)
{
case 1:
card += ((char)6);
break;
case 2:
card += ((char)3);
break;
case 3:
card += ((char)4);
break;
case 4:
card += ((char)5);
break; //決定牌花色end
}
r = (int)(Math.random() * (13-1) + 1); //發一張牌
if (r <= 10)
{
player += r;
System.out.print
("玩家點數:" + card + r + "\t玩家累計:" + player + "點\t");
}
else
{
if (r == 11)
jqk += "J";
if (r == 12)
jqk += "Q";
if (r == 13)
jqk += "K";
r = 10;
player += r;
System.out.print
("玩家點數:" + card + jqk + "\t玩家累計:" + player + "點\t");
}
if(player > 21)
{
System.out.println("\n哇!玩家爆了!莊家贏");
break; //爆了,跳出迴圈
}else if (player == 21)
{
System.out.println("\n玩家21點!玩家贏");
break; //贏了,跳出迴圈
}else
{
System.out.print("是否補牌(y/n)\t");
key = (char)System.in.read();
System.in.read(); System.in.read();
int i = key;
if (i != 121) //判斷輸入值不等於'y'
break; //就跳出迴圈
}
}
while (1 == 1); //直接作成無窮迴圈
if(player < 21) //玩家沒爆,也沒21點
{ //才換莊家補牌
do{
card = ""; //初始花色
jqk = ""; //初始人頭
rf = (int)(Math.random() * (4-1) + 1); //決定牌花色start
switch(rf)
{
case 1:
card += ((char)6);
break;
case 2:
card += ((char)3);
break;
case 3:
card += ((char)4);
break;
case 4:
card += ((char)5);
break; //決定牌花色end
}
r = (int)(Math.random() * (13-1) + 1);
if (r <= 10)
{
bank += r;
System.out.print
("莊家點數:" + card + r + "\t莊家累計:" + bank + "點\t");
}
else
{
if (r == 11)
jqk += "J";
if (r == 12)
jqk += "Q";
if (r == 13)
jqk += "K";
r = 10;
bank += r;
System.out.print
("莊家點數:" + card + jqk + "\t莊家累計:" + bank + "點\t");
}
if (bank > 21)
{
System.out.println("\n哇!莊家爆了!玩家贏");
break;
}
else if(bank == 21)
{
System.out.println("\n哇!莊家21點!莊家贏");
break;
}
else
{
if (bank < player)
System.out.println("莊家再補一張牌");
else if (bank > player)
{
System.out.println
("\n莊家" + bank + "點,玩家" + player + "點,莊家贏!");
break;
}
else
{
System.out.println
("\n莊家及玩家都" + bank + "點,平手!");
break;
}
}
}
while (1 == 1);
}
}
}
==============================================================================
※ 編輯: xtimer 來自: 218.172.2.245 (12/08 19:10)
討論串 (同標題文章)