So I was creating a guessing game for Ada but yeah it doesn’t run. The error is in Line 25.
It says
guessing_game.adb:25:26: error: no candidate interpretations match the actuals:
<code>with Ada.Text_IO;
with Ada.Integer_Text_IO;
with Ada.Numerics.Discrete_Random;
procedure Guessing_Game is
type Number_Range is range 1 .. 100;
package Random_Number is new Ada.Numerics.Discrete_Random(Number_Range);
use Random_Number;
Generator : Random_Number.Generator;
Secret_Number : Number_Range;
Guess : Number_Range;
Attempts : Integer := 0;
Last_Guess : Integer := -1;
begin
Reset(Generator);
Secret_Number := Random(Generator);
Ada.Text_IO.Put_Line("1 to 100, if not guessed then byebye system32!");
loop
Ada.Text_IO.Put("guess NOW:");
Ada.Integer_Text_IO.Get(Guess);
if Integer(Guess) = Last_Guess then
Ada.Text_IO.Put_Line("Try one more before the os is deleted!");
else
Attempts := Attempts + 1;
Last_Guess := Integer(Guess);
if Guess < Secret_Number then
Ada.Text_IO.Put_Line("eeeee too smol");
elsif Guess > Secret_Number then
Ada.Text_IO.Put_Line("eeeee too big");
else
Ada.Text_IO.Put_Line("Ok you guessed it in ");
Ada.Integer_Text_IO.Put(Attempts);
Ada.Text_IO.Put_Line(" attempts, os wont be removed anymore");
exit;
end if;
end if;
end loop;
end Guessing_Game;
</code>
<code>with Ada.Text_IO;
with Ada.Integer_Text_IO;
with Ada.Numerics.Discrete_Random;
procedure Guessing_Game is
type Number_Range is range 1 .. 100;
package Random_Number is new Ada.Numerics.Discrete_Random(Number_Range);
use Random_Number;
Generator : Random_Number.Generator;
Secret_Number : Number_Range;
Guess : Number_Range;
Attempts : Integer := 0;
Last_Guess : Integer := -1;
begin
Reset(Generator);
Secret_Number := Random(Generator);
Ada.Text_IO.Put_Line("1 to 100, if not guessed then byebye system32!");
loop
Ada.Text_IO.Put("guess NOW:");
Ada.Integer_Text_IO.Get(Guess);
if Integer(Guess) = Last_Guess then
Ada.Text_IO.Put_Line("Try one more before the os is deleted!");
else
Attempts := Attempts + 1;
Last_Guess := Integer(Guess);
if Guess < Secret_Number then
Ada.Text_IO.Put_Line("eeeee too smol");
elsif Guess > Secret_Number then
Ada.Text_IO.Put_Line("eeeee too big");
else
Ada.Text_IO.Put_Line("Ok you guessed it in ");
Ada.Integer_Text_IO.Put(Attempts);
Ada.Text_IO.Put_Line(" attempts, os wont be removed anymore");
exit;
end if;
end if;
end loop;
end Guessing_Game;
</code>
with Ada.Text_IO;
with Ada.Integer_Text_IO;
with Ada.Numerics.Discrete_Random;
procedure Guessing_Game is
type Number_Range is range 1 .. 100;
package Random_Number is new Ada.Numerics.Discrete_Random(Number_Range);
use Random_Number;
Generator : Random_Number.Generator;
Secret_Number : Number_Range;
Guess : Number_Range;
Attempts : Integer := 0;
Last_Guess : Integer := -1;
begin
Reset(Generator);
Secret_Number := Random(Generator);
Ada.Text_IO.Put_Line("1 to 100, if not guessed then byebye system32!");
loop
Ada.Text_IO.Put("guess NOW:");
Ada.Integer_Text_IO.Get(Guess);
if Integer(Guess) = Last_Guess then
Ada.Text_IO.Put_Line("Try one more before the os is deleted!");
else
Attempts := Attempts + 1;
Last_Guess := Integer(Guess);
if Guess < Secret_Number then
Ada.Text_IO.Put_Line("eeeee too smol");
elsif Guess > Secret_Number then
Ada.Text_IO.Put_Line("eeeee too big");
else
Ada.Text_IO.Put_Line("Ok you guessed it in ");
Ada.Integer_Text_IO.Put(Attempts);
Ada.Text_IO.Put_Line(" attempts, os wont be removed anymore");
exit;
end if;
end if;
end loop;
end Guessing_Game;
I already tried changing it to directly pass the guess to get but it doesn’t work.