We need to make a program that throws bananas at monkeys!
10 pcs bananas to throw. if 5pcs hits, hadeeth the monkey is satisfied, if you dont hit hadeeth the monkey goodwill eat you.
I've managed to get this part to work ... But what is it complicated now that we will do a summary and it should consist of length of monkey and with how much you missed. The summary shall be printed as a simple table. So therefore it should be a summary in the 10st caste. And I suppose it will be printed after you cast all 10 bananas.
I do not get the array to work, I must have put it in the wrong place, the code looks like this
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Projekt_labb3
{
class Spel
{
static void Main(string[] args)
{
int bananas = 10, monkey = 100, hits = 0;
double v, a, w, g = 9.81, x, distance;
int[] monkeyDistance = new int[10];
bool[] hit = new bool[10];
int[] hitDistance = new int[10];
Random wind = new Random();
// welcome text is printed.
Console.WriteLine("Välkommen till spelet Apan och bananen!"
+ "\n Spelet går ut på att du ska träffa en apa med bananer,"
+ "\n så att den blir mätt och belåten."
+ "\n Du har tio bananer att kasta, träffar du apan med fem så blir"
+ "\n den mätt. Men träffar du med mindre än fem bananer så äter den"
+ "\n upp dig istället!");
/* For-loop som innebär att man startar vid 0, och sedan hoppar fram
* en siffra i taget, (ett per kast). Detta görs tills man kommer upp
* till bananas som ju har tilldelats värdet 10. */
for (int tries = 0; tries < bananas; tries++)
{
//gives a random wind -5 och +5 (m/s).
w = wind.NextDouble() * 10.0 - 5.0;
// Skriver ut en massa information och ber spelaren att ange kastvinkeln.
Console.WriteLine("\n Antal bananer kastade: " + tries +
"\n Apan står " + monkey + " meter framför dig." +
"\n Vindens hastighet är " + w + " m/s." +
"\n Ange din kastvinkel i grader:");
// Spelaren matar då in ett värde.
a = Double.Parse(Console.ReadLine());
// Ber spelaren att ange utgångshastigheten.
Console.WriteLine("\n Ange din utgångshastighet i kastet (m/s):");
// Spelaren matar in ett värde.
v = Double.Parse(Console.ReadLine());
/* the calculation is here. */
x = 2 * v * v * Math.Cos(a) * Math.Sin(a) / g - w * v * Math.Sin(a) / g;
/* Om värdet för x (där bananen landar) hamnar inom en meter från
* apan så får man en träff, och en text som bekräftar det kommer upp.
* Annars får man ingen träff, då kommer det upp en annan text som
* bekräftar missen */
if (x < monkey + 1 && x > monkey - 1)
{
hits++;
Console.WriteLine("\n Du kastade bananen " + x + " meter. Du träffade apan!");
}
else
{
Console.WriteLine("\n Du kastade bananen" + x + " meter. Du missade apan!");
}
// Apan kommer 10 meter närmare för varje kast.
monkey = monkey - 10;
distance = (monkey - x);
}
// the aray loop here that dont work
for (int i = 0; i < 10; i++)
{
//Användaren kastar, du skriver ut feedback etc...
//Nu sparar du huruvida användaren träffade,
//hur långt ifrån apan står, och hur långt ifrån
//apan användaren träffade
hit[i] = monkeyGotHit;
monkeyDistance[i] = monkeyDistance;
hitDistance[i] = currentDistanceFromHitToMonkey;
}
/* Fem eller fler träffar och det första meddelandet visas.
* Annars visas det andra */
if (hits >= 5)
{
Console.WriteLine(" Du har inga kvar. Men Apan är mätt ");
}
else
{
Console.WriteLine(" Du har inga kvar, Apan äter upp dig");
}
Console.WriteLine("####Resultat####");
for (int i = 0; i < 10; i++)
{
Console.WriteLine("Kast nummer " + i.ToString());
string descrString = "";
if (hit[i])
descrString += "# Träff: Ja #";
else
descrString += "# Träff: Nej #";
descrString += "Distans till apa: " + monkeyDistance[i].ToString() + " #";
descrString += "Distans mellan apa och kast: " + hitDistance[i].ToString() + " #";
Console.WriteLine(descrString);
}
}
}
}
