我一直在这个项目上工作了几天,我不知道为什么它不工作。希望一个新的眼睛会有所帮助。当我运行这个时,有几件事情不会发生。麻烦在java写21点和接龙程序
真正有效的唯一一件事是管理用户下注的部分。一些问题包括:
它没有带来一个卡片值(应该来自一个从1-13中随机产生一个数字的类)。
不等待用户输入0,以吸引更多的卡或不
- 当它说的第三张牌是什么,它说
[email protected]
- 没有给出总牌值。
- 当我尝试修复问题时,也会发生错误。在cardTotal的补充中,错误表示“操作符+对于参数类型未定义”。
它可能是缺少或有额外的括号,但我找不到他们应该/不应该在哪里。这里是我的代码:
import java.util.Scanner;
public class Game {
private double pot;
private double bet;
private int answer;
private int cardTotal;
Card card1 = new Card();
Card card2 = new Card();
Card card3 = new Card();
// constructor
public Game(){
pot = 100;
bet = 0;
}
Scanner keyboard = new Scanner(System.in);
// GetBetFrom user, prompts user to enter a valid bet, reenter until a valid amount
public double getBetFromUser(){
System.out.println("Your current pot is: "+pot);
System.out.println("Enter your bet amount");
bet = keyboard.nextDouble();
//Rules for the bet
while(bet>pot || bet<0){
if(pot==0){
break;
}
if(bet>pot){
System.out.println("Sorry, you don't have enough money for that, try again");
bet = keyboard.nextDouble();
}
if(bet<0){
System.out.println("That is not a valid bet, please try again");
bet = keyboard.nextDouble();
}
}
return bet;
}
// Game mechanics
public void gamePlay(){
System.out.println("Your first card is: "+card1);
System.out.println("Your second card is: "+card2);
cardTotal= card1 + card2;
System.out.println("Your total is: "+cardTotal);
System.out.println("Enter 0 to draw more, any other number to quit: ");
if(answer == 0); {
System.out.println("Your next card is: "+card3);
System.out.println("Your total is: ");
}
}
public void results(){
if(cardTotal > 21){
System.out.println("You lose your bet");
pot = pot-bet;
}
if(cardTotal==21){
System.out.println("You win three times your bet");
pot = pot-bet+(bet*3);
}
if(cardTotal==20){
System.out.println("You win double your bet amount");
pot = pot-bet+(bet*2);
}
if(cardTotal<=19){
System.out.println("You win your bet amount");
}
}
}
这是我的卡类
import java.util.Random;
public class Card {
private int cardValue;
Random random = new Random();
public Card(){
cardValue = 1;
}
public int getCard(){
cardValue = (cardValue + random.nextInt(12));
if(cardValue>10)
return 10;
else
return cardValue;
}
public int display(){
switch (cardValue){
case 1: System.out.println("Ace");
break;
case 2: System.out.println("Two");
break;
case 3: System.out.println("Three");
break;
case 4: System.out.println("Four");
break;
case 5: System.out.println("Five");
break;
case 6: System.out.println("Six");
break;
case 7: System.out.println("Seven");
break;
case 8: System.out.println("Eight");
break;
case 9: System.out.println("Nine");
break;
case 10: System.out.println("Ten");
break;
case 11: System.out.println("Jack");
break;
case 12: System.out.println("Queen");
break;
case 13: System.out.println("King");
break;
}
return cardValue;
}
}
如果你问每题1个问题你会得到更好的反应。你已经列出了这个问题中的5个问题。你应该专注于一个 – 2014-11-14 20:43:10
你也应该尝试一次实现你的需求。在知道随机生成额外卡片的代码正在工作之前,不要开始编写代码来绘制卡片。这样,你就可以解决更简单的问题,而不是一次性解决所有问题 – 2014-11-14 20:44:57
'它说Card @ 42a57993',比较https://docs.oracle.com/javase/7/docs/api/java/lang /Object.html#toString%28%29 – zapl 2014-11-14 20:45:16