1 svar
68 visningar
KanyeW är nöjd med hjälpen
KanyeW 48
Postad: 21 dec 2023 21:11 Redigerad: 21 dec 2023 21:13

Sänka skepp spel

using System;

namespace Kapitel_6_Uppgifter
{
    internal class Program
    {

        static void Main(string[] args)
        {
            Random slump = new Random();
            int SlumpadXkoordinat = slump.Next(4);
            int SlumpadYkoordinat = slump.Next(6);
            int antalskepDu= 0;
            string[,] dinkarta = new string[4, 6];
            string[,] datornskarta = new string[4, 6];
            string[,] datornskartaoffentlig = new string[4, 6];

            SkapaDinKarta(dinkarta);
            SkapaDatornKarta(datornskarta);

            int antalskeppDatorn = Placerautskepp(dinkarta, datornskarta, antalskepDu);
            int antalskeppDU = antalskeppDatorn;


            Console.WriteLine( antalskepDu );
            Console.WriteLine(antalskeppDatorn);
            SkrivUtKarta(dinkarta);
            SkrivutDatornKarta(datornskarta);
            
            SpelaSpelet(dinkarta, datornskarta,antalskepDu,antalskeppDatorn);
            SkrivUtKarta(dinkarta);
            SkrivutDatornKarta(datornskarta);


        }

        private static void SkapaDinKarta(string[,] dinkarta)
        {
            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 6; j++)
                {
                    dinkarta[i, j] = "o";
                }
            }
        }
        private static void SkapaDatornKarta(string[,] datornskarta)
        {
            for (int i = 0; i < 4; i++)
            {
                for (int j = 0; j < 6; j++)
                {
                    datornskarta[i, j] = "-";
                }
            }

        }
        private static void SkrivUtKarta(string[,] dinkarta)
        {
            Console.WriteLine("Din karta:");
            Console.WriteLine("  0 1 2 3 4 5");
            Console.WriteLine("0 " + dinkarta[0, 0] + " " + dinkarta[0, 1] + " " + dinkarta[0, 2] + " " + dinkarta[0, 3] + " " + dinkarta[0, 4] + " " + dinkarta[0, 5]);
            Console.WriteLine("1 " + dinkarta[1, 0] + " " + dinkarta[1, 1] + " " + dinkarta[1, 2] + " " + dinkarta[1, 3] + " " + dinkarta[1, 4] + " " + dinkarta[1, 5]);
            Console.WriteLine("2 " + dinkarta[2, 0] + " " + dinkarta[2, 1] + " " + dinkarta[2, 2] + " " + dinkarta[2, 3] + " " + dinkarta[2, 4] + " " + dinkarta[2, 5]);
            Console.WriteLine("3 " + dinkarta[3, 0] + " " + dinkarta[3, 1] + " " + dinkarta[3, 2] + " " + dinkarta[3, 3] + " " + dinkarta[3, 4] + " " + dinkarta[3, 5]);
        }
        private static void SkrivutDatornKarta(string[,] datornskarta)
        {
            Console.WriteLine("Datorns karta:");
            Console.WriteLine("  0 1 2 3 4 5");
            Console.WriteLine("0 " + datornskarta[0, 0] + " " + datornskarta[0, 1] + " " + datornskarta[0, 2] + " " + datornskarta[0, 3] + " " + datornskarta[0, 4] + " " + datornskarta[0, 5]);
            Console.WriteLine("1 " + datornskarta[1, 0] + " " + datornskarta[1, 1] + " " + datornskarta[1, 2] + " " + datornskarta[1, 3] + " " + datornskarta[1, 4] + " " + datornskarta[1, 5]);
            Console.WriteLine("2 " + datornskarta[2, 0] + " " + datornskarta[2, 1] + " " + datornskarta[2, 2] + " " + datornskarta[2, 3] + " " + datornskarta[2, 4] + " " + datornskarta[2, 5]);
            Console.WriteLine("3 " + datornskarta[3, 0] + " " + datornskarta[3, 1] + " " + datornskarta[3, 2] + " " + datornskarta[3, 3] + " " + datornskarta[3, 4] + " " + datornskarta[3, 5]);   
        }
        private static int Placerautskepp(string[,] dinkarta, string[,] datornskarta, int antalskeppDu)
        {
            Console.WriteLine("Hur många skepp vill du placera ut?");
             antalskeppDu = int.Parse(Console.ReadLine());
            for(int i  = 0; i < antalskeppDu; i++)
            {
                Console.WriteLine("Skriv in (x)");
                int placerinx = int.Parse(Console.ReadLine());
                Console.WriteLine("Skriv in (y)");
                int placeriny = int.Parse(Console.ReadLine());

                dinkarta[placerinx, placeriny] = "X";
            }

            for (int i = 0; i < antalskeppDu; i++)
            {
                Random random = new Random();
                int randomx = random.Next(4);
                int randomy = random.Next(6);
                datornskarta[randomx, randomy] = "X";
            }
            return antalskeppDu;
            
           
        }
        private static void SpelaSpelet(string[,] dinkarta, string[,] datornskarta, int antalskeppDU, int antalskeppDatorn)
        {
            
            Console.WriteLine(antalskeppDatorn);
            while(antalskeppDU != 0 && antalskeppDatorn !=0)
            {
                Console.WriteLine("Var vill du skjuta (x)");
                int xSkjut = int.Parse(Console.ReadLine());
                Console.WriteLine("Var vill du skjuta (y)");
                int ySkjut = int.Parse(Console.ReadLine());

                if (datornskarta[xSkjut, ySkjut] == "X")
                {
                    Console.WriteLine("Träff!");
                    datornskarta[xSkjut, ySkjut] = "X";
                    antalskeppDatorn--;
                }
                else
                {
                    Console.WriteLine("Miss!");
                    datornskarta[xSkjut, ySkjut] = "D";
                }

                Console.WriteLine("Nu är det datans tur ;)");
                Random n = new Random();
                int randomx = n.Next(4);
                int randomy = n.Next(6);

                if (dinkarta[randomx, randomy] == "X")
                {
                    Console.WriteLine("Datan träffade en av dina skepp!");
                    antalskeppDU--;
                }
                else
                {
                    dinkarta[randomx, randomy] = "D";
                    Console.WriteLine("Datorn missade!");
                }
            }
            if (antalskeppDatorn == 0)
            {
                Console.WriteLine("Du har vunnit");
            }
            else
            {
                Console.WriteLine("Datorn har vunnit");
            }
        }
    }
}

Hej, jag håller på att skapa en variant av sänka skepp.

Mitt problem är att AntalskeppDatorn och AntalskeppDU( De är längst up i koden) inte får samma värde. När programet körs att användaren skriver in antal skepp. Så får AntalskeppDatorn den korrekta värdet, men AntalskeppDU får fortarande 0. Oavset hur många skep användaren väljer att skriva in. Kan någon hitta felet?

Laguna Online 28602
Postad: 21 dec 2023 21:51

Du har både en antalskeppDu och en antalskepDu.

Svara Avbryt
Close