472,811 Members | 1,898 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,811 software developers and data experts.

Java Stones Game

1
I am trying to write a game where there is 13 stones and you play against the computer to make sure that you don't take the last stone. You or the computer (depending on the turn) is allowed to take 1, 2, or 3 stones during their turn.

I am kind of lost at the moment. I have several methods and I want to send several things between them. One is who is playing and the other is how many stones there are left. I am also not sure if I am just writing it correctly, for in the main method I put:
Expand|Select|Wrap|Line Numbers
  1. if (goesFirst == HUMAN)
  2.             {    
  3.                 DoComputerTurn(left);
  4.             }    
  5.             else 
  6.             { 
  7.                 DoHumanTurn(left);
  8.             }
  9.  
  10.  
However, I do not believe that the left is suppose to be in there.
Expand|Select|Wrap|Line Numbers
  1. import java.util.Scanner;
  2. import java.util.Random;
  3. public class Stones 
  4. {
  5.     static int HUMAN = 0;
  6.     static int COMPUTER = 1;
  7.     static int STONES =13; 
  8.     static Scanner keyboard = new Scanner(System.in);
  9.     static int choice = 0;
  10.     static int left = 0;
  11.     static Random generator = new Random ();
  12.  
  13.     public static void main (String[]args)
  14.     {
  15.         ShowInstructions();
  16.         String prompt = "Would you like to play 13 Stones (1 for yes, 2 for no)?";
  17.         while (Again(prompt))
  18.         {
  19.  
  20.             int goesFirst = GetCoinToss ();
  21.             PlayGame (goesFirst);
  22.             SwitchPlayer (goesFirst);
  23.             if (goesFirst == HUMAN)
  24.             {    
  25.                 DoComputerTurn(left);
  26.             }    
  27.             else 
  28.             { 
  29.                 DoHumanTurn(left);
  30.             }
  31.  
  32.  
  33.  
  34.  
  35.  
  36.         }
  37.  
  38.     }
  39.  
  40.     public static void ShowInstructions ()
  41.     {
  42.         System.out.println ("Welcome to the 13 Stones game. \nI hope you are ready to play against me. \nThere is 13 stones in front of you. The first player is to remove either 1, 2, or 3 stones. \nThen the next player will remove either 1, 2, or 3 stones. \nThe person to pick up the last stone losses. \nGood luck!");
  43.  
  44.     }
  45.  
  46.     public static boolean Again (String prompt)
  47.     {
  48.         System.out.println (prompt);
  49.         choice = keyboard.nextInt();
  50.         return (choice == 1);
  51.  
  52.  
  53.  
  54.  
  55.  
  56.     }
  57.     public static int GetCoinToss()
  58.     {
  59.  
  60.         final int heads = 0;
  61.         final int tails = 1;
  62.         System.out.println ("Call the coin toss...");
  63.         String enter = new String (keyboard.nextLine());
  64.         String call = new String (keyboard.nextLine ());
  65.         int toss = generator.nextInt(2);
  66.         if (((call.equalsIgnoreCase("Heads")) && (toss == heads)) || ((call.equalsIgnoreCase("Tails")) && (toss == tails)))        
  67.         {
  68.             System.out.println ("You got lucky. So I guess you go first. Choose the number of stones you want.");
  69.             return HUMAN;
  70.  
  71.         }
  72.         else 
  73.         {
  74.             System.out.println ("Ha! You lost the coin toss! I go first.");
  75.             return COMPUTER;
  76.         }
  77.  
  78.     }    
  79.  
  80.     public static int PlayGame(int whoseTurn)
  81.     {
  82.         if (whoseTurn == COMPUTER)
  83.         { 
  84.             int compTakes = generator.nextInt(3) +1 ;
  85.             int left = STONES - compTakes;
  86.             System.out.println ("I took " + compTakes + " stones. There is " + left + " stones left. Your turn.");
  87.             return COMPUTER;
  88.  
  89.         }
  90.         else 
  91.         { 
  92.             int humanTakes = keyboard.nextInt();
  93.             while ((humanTakes> 3) || (humanTakes<0))
  94.             {
  95.                 System.out.println ("Trying to cheat, eh? Well, you can't! Try again.");
  96.                 humanTakes = keyboard.nextInt ();
  97.             }
  98.             left  = STONES - humanTakes;
  99.             System.out.println ("You took " + humanTakes + " stones. There is " + left + " stones left. My turn!");
  100.             return HUMAN;
  101.         }
  102.  
  103.     }
  104.  
  105.     public static int SwitchPlayer (int whoseTurn)
  106.     {
  107.         if ( whoseTurn == COMPUTER)
  108.         { 
  109.             whoseTurn = HUMAN; 
  110.         }
  111.         else 
  112.         {    
  113.             whoseTurn = COMPUTER;
  114.         }
  115.         return whoseTurn;
  116.  
  117.     }
  118.     public static int DoHumanTurn (int STONES)
  119.     {
  120.         int stonesPicked = 0;
  121.         System.out.println ("There is " +  STONES + " stones left. Please enter the amount of stones you would like to take.");
  122.         stonesPicked = keyboard.nextInt();
  123.         while ((stonesPicked < 1) || (stonesPicked > 0))
  124.         {
  125.             System.out.println ("So you think you can cheat, eh? Well you can't! Enter the number you want to take again.");
  126.             stonesPicked = keyboard.nextInt();
  127.  
  128.         }
  129.         int stonesRemaining = stonesPicked;
  130.  
  131.         return stonesRemaining;
  132.  
  133.  
  134.     }
  135.     public static int DoComputerTurn (int STONES)
  136.     {
  137.         int compTakes = generator.nextInt(3) +1 ;
  138.         int left = STONES - compTakes;
  139.         System.out.println ("I took " + compTakes + " stones. There is " + left + " stones left. Your turn.");
  140.     }
  141.  
  142.     }
  143.  
  144.  
  145.  
  146.  
Thank you.
Oct 30 '08 #1
1 4573
r035198x
13,262 8TB
Can you ask a more specific question? Does the program compile/run correctly?
If not what is the current behavior vs expected behavior?
Oct 30 '08 #2

Sign in to post your reply or Sign up for a free account.

Similar topics

21
by: BlackHawke | last post by:
My name is Nick Soutter, I own a small game development company (www.aepoxgames.net) making our first game (www.andromedaonline.net) in java. I am writing because we are having a very...
23
by: BlackHawke | last post by:
Hello! This is my second post. Ppl really helped me with the first. I hope there are answers for this one as well I own a game company (www.aepoxgames.net) releasing the beta for our first...
11
by: DrUg13 | last post by:
In java, this seems so easy. You need a new object Object test = new Object() gives me exactly what I want. could someone please help me understand the different ways to do the same thing in...
23
by: coinjo | last post by:
In "Thirteen Stones" game, two players alternately take 1, 2, or 3 stones from a pile of 13 stones until no stones are left. The last player to pick up a stone is the winner. I need to make a...
17
by: meital | last post by:
There are three kinds of stones: red,green and blue. Each cell of the array contains one stone. The array needs to be sorted so that all the red stones will come first, then the blue ones and...
20
by: NeedJavaHelp | last post by:
Hello everyone, first time poster here, bear with me. RuneScape is an online multiplayer game run by Java www.runescape.com. The game itself is run on the website and when you play the game for...
2
by: ALi Shaikh | last post by:
I already did the game once and it works but now I need to change it to add a function that will make the computer take player 1 turn and always win. heres the original #include<iostream.h> ...
10
by: j0k3r | last post by:
Hiya, i'm trying to create a Go (the game) simulation in PHP, the problem is how to mark dead stones. each stone has some liberties wich are the empty territories nearby, when a group of stones...
0
by: erikbower65 | last post by:
Using CodiumAI's pr-agent is simple and powerful. Follow these steps: 1. Install CodiumAI CLI: Ensure Node.js is installed, then run 'npm install -g codiumai' in the terminal. 2. Connect to...
0
linyimin
by: linyimin | last post by:
Spring Startup Analyzer generates an interactive Spring application startup report that lets you understand what contributes to the application startup time and helps to optimize it. Support for...
0
by: erikbower65 | last post by:
Here's a concise step-by-step guide for manually installing IntelliJ IDEA: 1. Download: Visit the official JetBrains website and download the IntelliJ IDEA Community or Ultimate edition based on...
2
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Sept 2023 starting at 18:00 UK time (6PM UTC+1) and finishing at about 19:15 (7.15PM) The start time is equivalent to 19:00 (7PM) in Central...
14
DJRhino1175
by: DJRhino1175 | last post by:
When I run this code I get an error, its Run-time error# 424 Object required...This is my first attempt at doing something like this. I test the entire code and it worked until I added this - If...
0
by: Rina0 | last post by:
I am looking for a Python code to find the longest common subsequence of two strings. I found this blog post that describes the length of longest common subsequence problem and provides a solution in...
5
by: DJRhino | last post by:
Private Sub CboDrawingID_BeforeUpdate(Cancel As Integer) If = 310029923 Or 310030138 Or 310030152 Or 310030346 Or 310030348 Or _ 310030356 Or 310030359 Or 310030362 Or...
0
by: lllomh | last post by:
How does React native implement an English player?
2
by: DJRhino | last post by:
Was curious if anyone else was having this same issue or not.... I was just Up/Down graded to windows 11 and now my access combo boxes are not acting right. With win 10 I could start typing...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.