2023.02.09. Egyszámjáték megoldás

Ma továbbhaladtunk a konzolos és a grafikus Egyszámjátékkal. Nem végeztünk vele, házi feladat befejezni - mindenkinek a saját szintjén.

Konzolos egy lehetséges megoldása: 

using System;

using System.Collections.Generic;
using System.Linq;
using System.IO;

namespace Egyszamjatek
{
    class Jatekos
    {
        public string Nev { get; private set; }
        public List<int> Tippek { get; private set; }
        public Jatekos(string sor)
        {
            string[] atmeneti = sor.Split();
            Nev = atmeneti [0];
            Tippek = new List<int>();
            for (int i = 1; i < atmeneti .Length; i++)
            {
                Tippek.Add(Convert.ToInt32(atmeneti [i]));
            }
        }
    }

    class Program
    {
        static void Main()
        {
            List<Jatekos> jatekosok = new List<Jatekos>();
            foreach (var i in File.ReadAllLines("egyszamjatek1.txt"))
            {
                jatekosok.Add(new Jatekos(i));
            }

            Console.WriteLine($"3. feladat: Játékosok száma: {jatekosok.Count} fő");

            Console.Write($"4. feladat: Kérem a forduló sorszámát: ");
            int forduloSorszama = Convert.ToInt32(Console.ReadLine());

            //Console.WriteLine($"5. feladat: A megadott forduló tippjeinek átlaga: {jatekosok.Average(x => x.Tippek[forduloSorszama - 1]):F2}");
            double osszeg = 0;
            for (int i = 0; i < jatekosok.Count; i++)
            {
                osszeg += jatekosok[i].Tippek[forduloSorszama - 1];
            }
            Console.WriteLine($"5. feladat: A megadott forduló tippjeinek átlaga: {Math.Round((osszeg / jatekosok.Count),2)}");
            Console.ReadLine();
        }
    }
}

Grafikus egy lehetséges megoldása:
using System;
using System.IO;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;


namespace EgyszamjatekGUI
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    class Jatekos
    {
        public string Nev { get; private set; }
        public List<int> Tippek { get; private set; }
        public int FordulokSzama { get { return Tippek.Count; } }
        public Jatekos(string sor)
        {
            string[] atmeneti = sor.Split();
            Nev = atmeneti[0];
            Tippek = new List<int>();
            for (int i = 1; i < atmeneti.Length; i++)
            {
                Tippek.Add(Convert.ToInt32(atmeneti[i]));
            }
        }
    }

    public partial class MainWindow : Window
    {
        private List<Jatekos> jatekosok = new List<Jatekos>();
        public MainWindow()
        {
            InitializeComponent();
            foreach (var i in File.ReadAllLines("egyszamjatek2.txt"))
            {
                jatekosok.Add(new Jatekos(i));
            }
        }

        private void TXBJatekosTippje_TextChanged(object sender, TextChangedEventArgs e)
        {
            if (!TXBJatekosTippje.Text.EndsWith(" ") && TXBJatekosTippje.Text.Length != 0)
            {
                //List<string> tippek = TXBJatekosTippje.Text.Split(' ').ToList();
                //LBLDarab.Content = tippek.Count;
                //vagy tömbbel:
                string[] tippek = TXBJatekosTippje.Text.Split(' ');
                LBLDarab.Content = tippek.Length;
            }

        }

        private void BTNHozzaAd_Click(object sender, RoutedEventArgs e)
        {
            int i = 0;
            while (i < jatekosok.Count && jatekosok[i].Nev != TXBJatekosNeve.Text )
            {
                i++;
            }
            if (i < jatekosok.Count)
            {
                MessageBox.Show("Van már ilyen nevű játékos!");
            }
            else
            {
                if (Convert.ToInt32(LBLDarab.Content) != jatekosok[0].Tippek.Count)
                {
                    MessageBox.Show("A tippek száma nem megfelelő!");
                }
                else
                {
                    string kiir = TXBJatekosNeve.Text + " " + TXBJatekosTippje.Text + "\r\n";
                    //ha a tippek végén szóköz volt, az hibát okoz, de nem volt feladat leszedni
                    File.AppendAllText("egyszamjatek2.txt", kiir);
                    MessageBox.Show("Az állomány bővítése sikeres volt!");
                    TXBJatekosNeve.Text = "";
                    TXBJatekosTippje.Text = "";
                    LBLDarab.Content = "";
                }
            }
        }
    }
}
<Window x:Class="EgyszamjatekGUI.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:EgyszamjatekGUI"
        mc:Ignorable="d"
        Title="Egyszámjáték GUI" Height="234" Width="644">
    <Grid>
        <Label Content="Játékos neve" HorizontalAlignment="Left" Margin="27,49,0,0" VerticalAlignment="Top" Width="83"/>
        <Label Content="Játékos tippjei" HorizontalAlignment="Left" Margin="27,93,0,0" VerticalAlignment="Top" Width="83"/>
        <Button x:Name="BTNHozzaAd" Content="Játékos hozzáadása" HorizontalAlignment="Center" Height="29" Margin="0,148,0,0" VerticalAlignment="Top" Width="272" Click="BTNHozzaAd_Click"/>
        <TextBox x:Name="TXBJatekosNeve" HorizontalAlignment="Left" Height="27" Margin="133,49,0,0" Text="" TextWrapping="Wrap" VerticalAlignment="Top" Width="342"  />
        <TextBox x:Name="TXBJatekosTippje" HorizontalAlignment="Left" Height="27" Margin="133,0,0,0" Text="" TextWrapping="Wrap" VerticalAlignment="Center" Width="342" TextChanged="TXBJatekosTippje_TextChanged"/>
        <Label x:Name="LBLDarab" Content="0" HorizontalAlignment="Left" Height="27" Margin="500,0,0,0" VerticalAlignment="Center" Width="28"/>
        <Label Content="db" HorizontalAlignment="Left" Height="27" Margin="520,0,0,0" VerticalAlignment="Center" Width="34"/>
    </Grid>
</Window>




2024.02.15.-16. Helyettesítés

 Adatbázis: vizsgaremek adatbázisának befejezése teljesen készre, dokumentáció kiegészítése, befejezése. Vizsgaremek felületének megvalósítá...