Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 3237014
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 17, 20262026-05-17T17:41:19+00:00 2026-05-17T17:41:19+00:00

Hi I am trying out my first program in Ada of creating a single

  • 0

Hi
I am trying out my first program in Ada of creating a single player dice game.
But facing problem in maintaining score of the player.
Goal: Each player has 10 turns and scores 10 points if total of 2 rolls is 7
Problem: Every time total score gets reset and 10 does not get added to current score.
Total_Score is the final score to be displayed.
Please help!!! Any help appreciated!!!

Thanks 🙂

My code is as follows:

with Ada.Numerics.Discrete_Random,Ada.Text_IO, Ada.Integer_Text_IO;
use Ada.Text_IO, Ada.Integer_Text_IO;

   procedure Game is

      subtype Die is Integer range 1 .. 6;
      subtype Dice is Integer range 2*Die'First .. 2*Die'Last;
      package Random_Die is new Ada.Numerics.Discrete_Random (Die);
      use Random_Die;

  type MY_TYPE is range 1..10;
  package My_Int_IO is new Ada.Text_IO.Integer_IO(MY_TYPE);
  use My_Int_IO;

  My_Range : MY_TYPE;
      G : Generator;
      Roll : Dice;  -- Total Rolled
  Roll_One : INTEGER;   -- Roll 1
  Roll_Two : INTEGER;   -- Roll 2
  Total_Score : INTEGER;    -- Current Score
  Choice : INTEGER;     -- Game Choice
  Total_Roll : INTEGER;     -- Total Rolled Returned
  Score : INTEGER;  -- Static Score count

  function Roll_Dice return INTEGER is
   begin
    -- Start the generator in a unique state in each run
        Reset (G); 
    Total_Score := 0;
            -- Roll a pair of dice
        Roll_One := Random(G);
        Roll_Two := Random(G);
    Put(Roll_One,3);
        Put(Roll_Two,3);
            Roll := Roll_One + Roll_Two;
        return Roll;
  end Roll_Dice;

   begin
   Total_Score := 0;
   for Index in MY_TYPE loop
    Put("Roll Dice: Press 1 To Exit: Press 2 ");
    New_Line;
    Get(Item => Choice);
    if Choice = 1 then
       Total_Roll := Roll_Dice;
       if Total_Roll = 7 then
        Put("Current Score : ");
        Put(Total_Score , 3);
        Total_Score := Total_Score + 10;
            New_Line;
        Put("Your Score :  ");
        Put(Total_Score, 3);
            else
        New_Line;
        Put("Sorry! you do not score");
            end if;
    elsif Choice = 2 then
       Put("Score ");
       Put(Total_Score, 3);
       exit when Choice = 2;
    else
       Put("Wrong Choice! You lost one chance! Try Again");
    end if;
   end loop;
    New_Line;
    Put("Total Score for this game: ");
    Put(Total_Score, 3);
   end Game;
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-17T17:41:19+00:00Added an answer on May 17, 2026 at 5:41 pm

    Every time total score gets reset and 10 does not get added to current score.

    That’s because you set Total_Score to zero in the Roll_Dice function:

    Total_Score := 0;
    

    10 does get added to Total_Score:

    Total_Score := Total_Score + 10;
    

    but on the subsequent roll, the total is reset to zero.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm trying out g++ inline assembly and sse and wrote a first program. It
Trying out a problem of finding the first k digits of a num^num I
I'm trying out my first Spring project and must be doing something really stupid
I'm trying out Linq for the first time and having a bit of difficult
Alright, so I'm trying out C++ for the first time, as it looks like
I'm trying to figure out how to implement my first RESTful interface using Django
I'm trying out ASP.NET MVC routing and have of course stumbled across a problem.
I am writing my first sockets program on Linux and am trying to print
I am trying to make a simple program that handles files and directories, but
I'm trying to program some AI for a game of checkers. My program is

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.