to large C# scripts - how to improve?

Is it possible to avoid long scripts? I am currently working on a script that accesses 16 ui_Buttons and turns each button into an optical game card from the card game: “Memory”. At the moment it works pretty well when it comes to functionality, but it is quite frustrating to look for errors why new extensions don’t work with the not yet finished script or make the script worse by working even less than before … So far I have been able to find most of the errors thanks to the great debugging possibilities of VS but if I have 10-20 int, arrays and bools it can be quite confusing to track every step … I’ll show you the script and I hope you can write me suggestions for improvement, e.g. made unnecessarily long.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;

public class Memori_runtime : MonoBehaviour
{
    // p.s. die Runtime steckt im "panel_Memory" und versorgt von dort alle 16 Karten_Buttons!


    // Noetig fuer die Neumischung:
    private int[] CurrentCard_alpha = new int[17];
    private bool[] kartezugewiesen = new bool[17];
    public bool startschleife = true;

    public bool NeueKartenMischung = true;
    public Sprite Kartebackward;

    public float timeRemaining1 = 0f;
    public int TimerStufe = 0;
    public int kartenaufklappzaehler = 1;


    public Button card_1, card_2, card_3, card_4, card_5, card_6, card_7, card_8, card_9, card_10, card_11, card_12, card_13, card_14, card_15, card_16;
    public Sprite KartengruppenSprite_1, KartengruppenSprite_2, KartengruppenSprite_3, KartengruppenSprite_4, KartengruppenSprite_5, KartengruppenSprite_6, KartengruppenSprite_7, KartengruppenSprite_8;
    // SpielerIstDran macht eine Pause wo der Spieler seinen zug entscheiden darf. Ist diese auf false macht die KI wieter!:
    public int SpielerIstDran = 1;
    public bool[] VerwendeteKarte = new bool[17];
    public bool RundenAnimation = true;
    public bool NPCcountdownaktiv = false;
    public float NPCcooldown = 2f;

    public GameObject ui_nextroundTEXT;
    public float RundenEndeCooldown = 2f;
    private void Update()
    {//================================================
        //=======================================================================
        if (NeueKartenMischung == true)
        {
            #region NeueZufallsMischungAller16Karten
            #region kartezugewiesen(bool)_alle_auf_FALSE_setzen
            // Wiederhollt "Kartezugewiesen mit seinem eigenen i um alle 1-16 alf "false" zu setzen:
            int i = 1;
            int EchteKarteFertig = 1;

            while (i < 17)
            {
                kartezugewiesen[i] = false;
                i++;
            }
            #endregion
            // Zufaellige Karten zuweisung ohne dabei mehrmals die gleiche karte zu beschreiben!
            while (startschleife == true)
            {
                // Macht einen Zufall und prueft dannach diesen ob davon "karteaktiv" noch auf false ist...
                int randomzahl = Random.Range(1, 17);
                //Debug.Log("Randomzahl = " + randomzahl);

                if (kartezugewiesen[randomzahl] == false && EchteKarteFertig < 17)
                {
                    // Der Bool von der selben zahl wie CurrentCard_ALPHA,
                    // wurde nun zugewiesen durch die zahl die für beide im "randomzahl" zufall steckt:
                    kartezugewiesen[randomzahl] = true;

                    // Die Karten werden zufallig ausgewählt um dann die zahlen 1-16 fair aufzuteilen:
                    // dabei spielt "randomzahl" die Nummer des Arrays und "EchteKarteFertig" die Nummer von der Karte,
                    // die dan 1:1 in die 16 Button uebertragen werden kann:
                    CurrentCard_alpha[randomzahl] = EchteKarteFertig;

                    EchteKarteFertig++;
                }


                // Deaktiviert die Hauptschleife aus sobald jede Karte ihre eigene zahl hat
                // und bereit ist fuer denn Abschluss Der Zufaelligen Karten Anordnung:
                if (kartezugewiesen[1] == true && kartezugewiesen[2] == true && kartezugewiesen[3] == true && kartezugewiesen[4] == true && kartezugewiesen[5] == true && kartezugewiesen[6] == true && kartezugewiesen[7] == true && kartezugewiesen[8] == true && kartezugewiesen[9] == true && kartezugewiesen[10] == true && kartezugewiesen[11] == true && kartezugewiesen[12] == true && kartezugewiesen[13] == true && kartezugewiesen[14] == true && kartezugewiesen[15] == true && kartezugewiesen[16] == true)
                {
                    startschleife = false;
                    RundenAnimation = true;

                    #region ResetDerWerte
                    // Reset aller 16 Kartezugewiesen bool Werte zurueck auf "false":
                    i = 1;
                    while (i < 17)
                    {
                        kartezugewiesen[i] = false;
                        i++;
                    }

                    // EchteKarteFertig wird wieder auf "1" zurueck gesetzt weil es nur ein Schleifenzaehler war der nur in der Schleife wichtig war und jetzt nicht mehr,
                    // sondern erst wieder sobald eine neue Spielrunde beginnt oder Memory neu geladen wird:
                    EchteKarteFertig = 1;


                    #endregion
                }
            }
            // Startschleife = true muss ausserhalb der Schleife sein weil sie sich sonst doppelt wieder rueckgaengig machen wuerde:
            startschleife = true;

            #endregion

            NeueKartenMischung = false;
        }
        //=======================================================================
        if (RundenAnimation == true)
        {
            // Hier war mal frueher ne animation um karten aufzudecken aber die war hinfaellig weil
            //man Memory garnicht so spielen tut...

                #region Standard_Sprite_zuweisen
                card_1.GetComponent<Image>().sprite = Kartebackward;
                card_2.GetComponent<Image>().sprite = Kartebackward;
                card_3.GetComponent<Image>().sprite = Kartebackward;
                card_4.GetComponent<Image>().sprite = Kartebackward;
                card_5.GetComponent<Image>().sprite = Kartebackward;
                card_6.GetComponent<Image>().sprite = Kartebackward;
                card_7.GetComponent<Image>().sprite = Kartebackward;
                card_8.GetComponent<Image>().sprite = Kartebackward;
                card_9.GetComponent<Image>().sprite = Kartebackward;
                card_10.GetComponent<Image>().sprite = Kartebackward;
                card_11.GetComponent<Image>().sprite = Kartebackward;
                card_12.GetComponent<Image>().sprite = Kartebackward;
                card_13.GetComponent<Image>().sprite = Kartebackward;
                card_14.GetComponent<Image>().sprite = Kartebackward;
                card_15.GetComponent<Image>().sprite = Kartebackward;
                card_16.GetComponent<Image>().sprite = Kartebackward;
                #endregion

                // GLeich darf der Spieler loslegen nach folgender zeit:
                timeRemaining1 = 0f;
                TimerStufe = 3;

                RundenAnimation = false;
        }

        //=======================================================================
        // DER NPC darf nun zwei Karten waehlen:
        if (SpielerIstDran == 3 || SpielerIstDran == 4)
        {

            // NPC Countdown Runterzaehler:
            if (NPCcooldown > 0f)
            {
                NPCcooldown -= Time.deltaTime;
            }



            if (NPCcooldown < 0.01f)
            {
                // entferne den "new round!" text, falls vorhanden:
                ui_nextroundTEXT.SetActive(false);

                // KI hat zwei Kartenversuch genommen:
                if (SpielerIstDran == 3)
                {
                    SpielerIstDran++;
                    NPCcooldown = 2f;
                }
                else if(SpielerIstDran == 4)
                {
                    SpielerIstDran = 1;
                    RundenEndeCooldown = 2f;
                }

                //=========================== Schleifen Random (solange random bis ein freier platz erwischt wurde)========//
                bool KI_schleifenKEY = true;
                while (KI_schleifenKEY == true)
                {
                    int KI_CardRandom = Random.Range(1, 17);

                        switch (CurrentCard_alpha[KI_CardRandom])
                        {
                            // Die Array Nummer von "CurrentCard_alpha", ist auch das "case" und der jewelige Button 1/16 den die KI auserwaehlt hat!:
                            case 1:

                            if (VerwendeteKarte[1] == false)
                            {
                                // Reserviert den Platz fuer die gewaehlte Karte:
                                VerwendeteKarte[1] = true;
                                switch (CurrentCard_alpha[1])
                                {
                                    case 1: // Die Array und Button 1 waehlt hier seine zubestimmte Farbe aus,
                                            //die es in seinem eigentlichen CurrentCard_alpha Wert hat und nun Visuel als Sprite umsetzt:
                                        card_1.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 2:
                                        card_1.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 3:
                                        card_1.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 4:
                                        card_1.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 5:
                                        card_1.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 6:
                                        card_1.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 7:
                                        card_1.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 8:
                                        card_1.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 9:
                                        card_1.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 10:
                                        card_1.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 11:
                                        card_1.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 12:
                                        card_1.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 13:
                                        card_1.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 14:
                                        card_1.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 15:
                                        card_1.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                    case 16:
                                        card_1.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                }
                                KI_schleifenKEY = false;
                            }

                                break;
                            case 2:

                            if (VerwendeteKarte[2] == false)
                            {
                                VerwendeteKarte[2] = true;
                                switch (CurrentCard_alpha[2])
                                {
                                    case 1:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 2:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 3:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 4:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 5:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 6:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 7:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 8:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 9:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 10:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 11:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 12:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 13:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 14:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 15:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                    case 16:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                }
                                KI_schleifenKEY = false;
                            }

                                break;
                            case 3:

                            if (VerwendeteKarte[3] == false)
                            {
                                VerwendeteKarte[3] = true;
                                switch (CurrentCard_alpha[3])
                                {
                                    case 1:
                                        card_3.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 2:
                                        card_3.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 3:
                                        card_3.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 4:
                                        card_3.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 5:
                                        card_3.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 6:
                                        card_3.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 7:
                                        card_3.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 8:
                                        card_3.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 9:
                                        card_3.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 10:
                                        card_3.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 11:
                                        card_3.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 12:
                                        card_3.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 13:
                                        card_3.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 14:
                                        card_3.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 15:
                                        card_3.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                    case 16:
                                        card_3.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                }
                                KI_schleifenKEY = false;
                            }

                                break;
                            case 4:

                            if (VerwendeteKarte[4] == false)
                            {
                                VerwendeteKarte[4] = true;
                                switch (CurrentCard_alpha[4])
                                {
                                    case 1:
                                        card_4.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 2:
                                        card_4.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 3:
                                        card_4.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 4:
                                        card_4.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 5:
                                        card_4.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 6:
                                        card_4.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 7:
                                        card_4.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 8:
                                        card_4.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 9:
                                        card_4.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 10:
                                        card_4.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 11:
                                        card_4.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 12:
                                        card_4.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 13:
                                        card_4.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 14:
                                        card_4.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 15:
                                        card_4.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                    case 16:
                                        card_4.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                }
                                KI_schleifenKEY = false;
                            }

                                break;
                            case 5:

                            if (VerwendeteKarte[5] == false)
                            {
                                VerwendeteKarte[5] = true;
                                switch (CurrentCard_alpha[5])
                                {
                                    case 1:
                                        card_5.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 2:
                                        card_5.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 3:
                                        card_5.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 4:
                                        card_5.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 5:
                                        card_5.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 6:
                                        card_5.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 7:
                                        card_5.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 8:
                                        card_5.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 9:
                                        card_5.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 10:
                                        card_5.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 11:
                                        card_5.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 12:
                                        card_5.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 13:
                                        card_5.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 14:
                                        card_5.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 15:
                                        card_5.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                    case 16:
                                        card_5.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                }
                                KI_schleifenKEY = false;
                            }


                                break;
                            case 6:

                            if (VerwendeteKarte[6] == false)
                            {
                                VerwendeteKarte[6] = true;
                                switch (CurrentCard_alpha[6])
                                {
                                    case 1:
                                        card_6.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 2:
                                        card_6.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 3:
                                        card_6.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 4:
                                        card_6.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 5:
                                        card_6.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 6:
                                        card_6.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 7:
                                        card_6.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 8:
                                        card_6.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 9:
                                        card_6.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 10:
                                        card_6.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 11:
                                        card_6.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 12:
                                        card_6.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 13:
                                        card_6.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 14:
                                        card_6.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 15:
                                        card_6.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                    case 16:
                                        card_6.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                }
                                KI_schleifenKEY = false;
                            }

                                break;
                            case 7:

                            if (VerwendeteKarte[7] == false)
                            {
                                VerwendeteKarte[7] = true;
                                switch (CurrentCard_alpha[7])
                                {
                                    case 1:
                                        card_7.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 2:
                                        card_7.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 3:
                                        card_7.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 4:
                                        card_7.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 5:
                                        card_7.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 6:
                                        card_7.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 7:
                                        card_7.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 8:
                                        card_7.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 9:
                                        card_7.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 10:
                                        card_7.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 11:
                                        card_7.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 12:
                                        card_7.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 13:
                                        card_7.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 14:
                                        card_7.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 15:
                                        card_7.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                    case 16:
                                        card_7.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                }
                                KI_schleifenKEY = false;
                            }

                                break;
                            case 8:

                            if (VerwendeteKarte[8] == false)
                            {
                                VerwendeteKarte[8] = true;
                                switch (CurrentCard_alpha[8])
                                {
                                    case 1:
                                        card_8.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 2:
                                        card_8.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 3:
                                        card_8.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 4:
                                        card_8.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 5:
                                        card_8.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 6:
                                        card_8.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 7:
                                        card_8.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 8:
                                        card_8.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 9:
                                        card_8.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 10:
                                        card_8.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 11:
                                        card_8.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 12:
                                        card_8.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 13:
                                        card_8.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 14:
                                        card_8.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 15:
                                        card_8.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                    case 16:
                                        card_8.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                }
                                KI_schleifenKEY = false;
                            }

                                break;
                            case 9:

                            if (VerwendeteKarte[9] == false)
                            {
                                VerwendeteKarte[9] = true;
                                switch (CurrentCard_alpha[9])
                                {
                                    case 1:
                                        card_9.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 2:
                                        card_9.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 3:
                                        card_9.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 4:
                                        card_9.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 5:
                                        card_9.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 6:
                                        card_9.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 7:
                                        card_9.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 8:
                                        card_9.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 9:
                                        card_9.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 10:
                                        card_9.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 11:
                                        card_9.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 12:
                                        card_9.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 13:
                                        card_9.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 14:
                                        card_9.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 15:
                                        card_9.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                    case 16:
                                        card_9.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                }
                                KI_schleifenKEY = false;
                            }


                                break;
                            case 10:

                            if (VerwendeteKarte[10] == false)
                            {
                                VerwendeteKarte[10] = true;
                                switch (CurrentCard_alpha[10])
                                {
                                    case 1:
                                        card_10.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 2:
                                        card_10.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 3:
                                        card_10.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 4:
                                        card_10.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 5:
                                        card_10.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 6:
                                        card_10.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 7:
                                        card_10.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 8:
                                        card_10.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 9:
                                        card_10.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 10:
                                        card_10.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 11:
                                        card_10.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 12:
                                        card_10.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 13:
                                        card_10.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 14:
                                        card_10.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 15:
                                        card_10.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                    case 16:
                                        card_10.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                }
                                KI_schleifenKEY = false;
                            }


                                break;
                            case 11:

                            if (VerwendeteKarte[11] == false)
                            {
                                VerwendeteKarte[11] = true;
                                switch (CurrentCard_alpha[11])
                                {
                                    case 1:
                                        card_11.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 2:
                                        card_11.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 3:
                                        card_11.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 4:
                                        card_11.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 5:
                                        card_11.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 6:
                                        card_11.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 7:
                                        card_11.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 8:
                                        card_11.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 9:
                                        card_11.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 10:
                                        card_11.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 11:
                                        card_11.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 12:
                                        card_11.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 13:
                                        card_11.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 14:
                                        card_11.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 15:
                                        card_11.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                    case 16:
                                        card_11.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                }
                                KI_schleifenKEY = false;
                            }


                                break;
                            case 12:

                            if (VerwendeteKarte[12] == false)
                            {
                                VerwendeteKarte[12] = true;
                                switch (CurrentCard_alpha[12])
                                {
                                    case 1:
                                        card_12.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 2:
                                        card_12.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 3:
                                        card_12.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 4:
                                        card_12.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 5:
                                        card_12.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 6:
                                        card_12.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 7:
                                        card_12.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 8:
                                        card_12.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 9:
                                        card_12.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 10:
                                        card_12.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 11:
                                        card_12.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 12:
                                        card_12.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 13:
                                        card_12.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 14:
                                        card_12.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 15:
                                        card_12.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                    case 16:
                                        card_12.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                }
                                KI_schleifenKEY = false;
                            }

                                break;
                            case 13:

                            if (VerwendeteKarte[13] == false)
                            {
                                VerwendeteKarte[13] = true;
                                switch (CurrentCard_alpha[13])
                                {
                                    case 1:
                                        card_13.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 2:
                                        card_13.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 3:
                                        card_13.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 4:
                                        card_13.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 5:
                                        card_13.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 6:
                                        card_13.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 7:
                                        card_13.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 8:
                                        card_13.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 9:
                                        card_13.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 10:
                                        card_13.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 11:
                                        card_13.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 12:
                                        card_13.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 13:
                                        card_13.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 14:
                                        card_13.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 15:
                                        card_13.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                    case 16:
                                        card_13.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                }
                                KI_schleifenKEY = false;
                            }

                                break;
                            case 14:

                            if (VerwendeteKarte[14] == false)
                            {
                                VerwendeteKarte[14] = true;
                                switch (CurrentCard_alpha[14])
                                {
                                    case 1:
                                        card_14.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 2:
                                        card_14.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 3:
                                        card_14.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 4:
                                        card_14.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 5:
                                        card_14.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 6:
                                        card_14.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 7:
                                        card_14.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 8:
                                        card_14.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 9:
                                        card_14.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 10:
                                        card_14.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 11:
                                        card_14.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 12:
                                        card_14.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 13:
                                        card_14.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 14:
                                        card_14.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 15:
                                        card_14.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                    case 16:
                                        card_14.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                }
                                KI_schleifenKEY = false;
                            }

                                break;
                            case 15:

                            if (VerwendeteKarte[15] == false)
                            {
                                VerwendeteKarte[15] = true;
                                switch (CurrentCard_alpha[15])
                                {
                                    case 1:
                                        card_15.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 2:
                                        card_15.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 3:
                                        card_15.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 4:
                                        card_15.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 5:
                                        card_15.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 6:
                                        card_15.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 7:
                                        card_15.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 8:
                                        card_15.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 9:
                                        card_15.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 10:
                                        card_15.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 11:
                                        card_15.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 12:
                                        card_15.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 13:
                                        card_15.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 14:
                                        card_15.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 15:
                                        card_15.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                    case 16:
                                        card_15.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                }
                                KI_schleifenKEY = false;
                            }

                                break;
                            case 16:

                            if (VerwendeteKarte[16] == false)
                            {
                                VerwendeteKarte[16] = true;
                                switch (CurrentCard_alpha[16])
                                {
                                    case 1:
                                        card_16.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 2:
                                        card_16.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 3:
                                        card_16.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 4:
                                        card_16.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 5:
                                        card_16.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 6:
                                        card_16.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 7:
                                        card_16.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 8:
                                        card_16.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 9:
                                        card_16.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 10:
                                        card_16.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 11:
                                        card_16.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 12:
                                        card_16.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 13:
                                        card_16.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 14:
                                        card_16.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 15:
                                        card_16.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                    case 16:
                                        card_16.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                }
                                KI_schleifenKEY = false;
                            }

                                break;
                        }



                }

            }
        }


        //=======================================================================
        // WENN ALLE BUTTONS VOLL SIND:
        if (VerwendeteKarte[1] == true && VerwendeteKarte[2] == true && VerwendeteKarte[3] == true && VerwendeteKarte[4] == true && VerwendeteKarte[5] == true && VerwendeteKarte[6] == true && VerwendeteKarte[7] == true && VerwendeteKarte[8] == true && VerwendeteKarte[9] == true && VerwendeteKarte[10] == true && VerwendeteKarte[11] == true && VerwendeteKarte[12] == true && VerwendeteKarte[13] == true && VerwendeteKarte[14] == true && VerwendeteKarte[15] == true && VerwendeteKarte[16] == true)
        {

            // NPC Countdown Runterzaehler:
            if (RundenEndeCooldown > 0f)
            {
                RundenEndeCooldown -= Time.deltaTime;
            }



            if (RundenEndeCooldown < 0.01f)
            {

                Debug.Log("Alles Voll!");
                // Bereitet die Memori_runtime darauf vor, direkt am anfang mit einer neuen Kartenmischung loszulegen:
                NeueKartenMischung = true;
                startschleife = true;
                SpielerIstDran = 1;
                RundenAnimation = true;
                #region VerwendeteKarte_ArrayRESET
                VerwendeteKarte[1] = false;
                VerwendeteKarte[2] = false;
                VerwendeteKarte[3] = false;
                VerwendeteKarte[4] = false;
                VerwendeteKarte[5] = false;
                VerwendeteKarte[6] = false;
                VerwendeteKarte[7] = false;
                VerwendeteKarte[8] = false;
                VerwendeteKarte[9] = false;
                VerwendeteKarte[10] = false;
                VerwendeteKarte[11] = false;
                VerwendeteKarte[12] = false;
                VerwendeteKarte[13] = false;
                VerwendeteKarte[14] = false;
                VerwendeteKarte[15] = false;
                VerwendeteKarte[16] = false;
                #endregion


                #region Standard_Sprite_zuweisen
                card_1.GetComponent<Image>().sprite = Kartebackward;
                card_2.GetComponent<Image>().sprite = Kartebackward;
                card_3.GetComponent<Image>().sprite = Kartebackward;
                card_4.GetComponent<Image>().sprite = Kartebackward;
                card_5.GetComponent<Image>().sprite = Kartebackward;
                card_6.GetComponent<Image>().sprite = Kartebackward;
                card_7.GetComponent<Image>().sprite = Kartebackward;
                card_8.GetComponent<Image>().sprite = Kartebackward;
                card_9.GetComponent<Image>().sprite = Kartebackward;
                card_10.GetComponent<Image>().sprite = Kartebackward;
                card_11.GetComponent<Image>().sprite = Kartebackward;
                card_12.GetComponent<Image>().sprite = Kartebackward;
                card_13.GetComponent<Image>().sprite = Kartebackward;
                card_14.GetComponent<Image>().sprite = Kartebackward;
                card_15.GetComponent<Image>().sprite = Kartebackward;
                card_16.GetComponent<Image>().sprite = Kartebackward;
                #endregion

                // Reset der Werte fuer den RundenBegin Animation
                TimerStufe = 0;
                kartenaufklappzaehler = 1;
                NPCcountdownaktiv = false;
                NPCcooldown = 2f;

                // Fuer die "Neue Runde" Meldung
                timeRemaining1 = 2f;
                ui_nextroundTEXT.SetActive(true);
            }

        }
    }
    //=======================================================================
    /// ////////////////////////////////////////////////////////////////////
    //=======================================================================

    public void card1_OnCLick()
    {
        // Prueft ob der Spieler dran ist und ob die Karte auch noch nicht bereits in dieser Runde aufgedeckt wurde:
        // Rundenanimation == false tut verhindern das man in der Rundenanimation bereits schon was machen kann:
        if (SpielerIstDran == 1 && VerwendeteKarte[1] == false && RundenAnimation == false || SpielerIstDran == 2 && VerwendeteKarte[1] == false && RundenAnimation == false)
        {
            // Damit LateUpdate weiß welcher Knopf und somit welcher CUrrentCardArray es ist:
            WelcherKnopfArray = 1;
            buttoneingabe_getaetigt = true;



            // Spieler hat einen Kartenversuch genommen:
            if (SpielerIstDran == 1)
            {
                //"SpieleristDran++;" wird im LateUpdate ausgefuehrt weil es hier sonst schon zu frueh hochgelevelt werden wuerde!
                ui_nextroundTEXT.SetActive(false);
            }
            else if (SpielerIstDran == 2)
            {
                NPCcooldown = 2f;
                RundenEndeCooldown = 2f;
            }

            // Reserviert den Platz fuer die gewaehlte Karte:
            kartezugewiesen[1] = true;

            // Array Nummer "1" ist auch Button Nummer "1"!
            switch (CurrentCard_alpha[1]) // geht alle 16 moegliche Zahlen im Array Nummer "1" durch...
            {
                case 1: // Die Karte/Button 1 waehlt hier seine zubestimmte Farbe aus,
                        //die es in seinem eigentlichen CurrentCard Wert hat:
                    card_1.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 2:
                    card_1.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 3:
                    card_1.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 4:
                    card_1.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 5:
                    card_1.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 6:
                    card_1.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 7:
                    card_1.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 8:
                    card_1.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 9:
                    card_1.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 10:
                    card_1.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 11:
                    card_1.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 12:
                    card_1.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 13:
                    card_1.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 14:
                    card_1.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 15:
                    card_1.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
                case 16:
                    card_1.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
            }


            // DIe Array Nummer steht hier wieder auch fuer die Kartenpositionsnummer:
            // "VerwendeteKarte" bedeutet das die Karte am jeweiligen Array Feld freigelegt wurde entweder vom Spieler oder der KI:
            VerwendeteKarte[1] = true;
           
        }

    }
    public void card2_OnCLick()
    {
        if (SpielerIstDran == 1 && VerwendeteKarte[2] == false && RundenAnimation == false || SpielerIstDran == 2 && VerwendeteKarte[2] == false && RundenAnimation == false)
        {
            // Damit LateUpdate weiß welcher Knopf und somit welcher CUrrentCardArray es ist:
            WelcherKnopfArray = 2;
            buttoneingabe_getaetigt = true;


            // Spieler hat einen Kartenversuch genommen:
            if (SpielerIstDran == 1)
            {
                ui_nextroundTEXT.SetActive(false);
            }
            else if (SpielerIstDran == 2)
            {
                NPCcooldown = 2f;
                RundenEndeCooldown = 2f;
            }

            // Reserviert den Platz fuer die gewaehlte Karte:
            kartezugewiesen[2] = true;


            switch (CurrentCard_alpha[2])
            {
                case 1:
                    card_2.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 2:
                    card_2.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 3:
                    card_2.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 4:
                    card_2.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 5:
                    card_2.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 6:
                    card_2.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 7:
                    card_2.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 8:
                    card_2.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 9:
                    card_2.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 10:
                    card_2.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 11:
                    card_2.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 12:
                    card_2.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 13:
                    card_2.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 14:
                    card_2.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 15:
                    card_2.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
                case 16:
                    card_2.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
            }
            VerwendeteKarte[2] = true;

        }

    }
    public void card3_OnCLick()
    {
        if (SpielerIstDran == 1 && VerwendeteKarte[3] == false && RundenAnimation == false || SpielerIstDran == 2 && VerwendeteKarte[3] == false && RundenAnimation == false)
        {
            // Damit LateUpdate weiß welcher Knopf und somit welcher CUrrentCardArray es ist:
            WelcherKnopfArray = 3;
            buttoneingabe_getaetigt = true;


            // Spieler hat einen Kartenversuch genommen:
            if (SpielerIstDran == 1)
            {
                ui_nextroundTEXT.SetActive(false);
            }
            else if (SpielerIstDran == 2)
            {
                NPCcooldown = 2f;
                RundenEndeCooldown = 2f;
            }

            // Reserviert den Platz fuer die gewaehlte Karte:
            kartezugewiesen[3] = true;


            switch (CurrentCard_alpha[3])
            {
                case 1:
                    card_3.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 2:
                    card_3.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 3:
                    card_3.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 4:
                    card_3.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 5:
                    card_3.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 6:
                    card_3.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 7:
                    card_3.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 8:
                    card_3.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 9:
                    card_3.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 10:
                    card_3.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 11:
                    card_3.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 12:
                    card_3.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 13:
                    card_3.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 14:
                    card_3.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 15:
                    card_3.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
                case 16:
                    card_3.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
            }
            VerwendeteKarte[3] = true;

        }

    }
    public void card4_OnCLick()
    {
        if (SpielerIstDran == 1 && VerwendeteKarte[4] == false && RundenAnimation == false || SpielerIstDran == 2 && VerwendeteKarte[4] == false && RundenAnimation == false)
        {
            // Damit LateUpdate weiß welcher Knopf und somit welcher CUrrentCardArray es ist:
            WelcherKnopfArray = 4;
            buttoneingabe_getaetigt = true;



            // Spieler hat einen Kartenversuch genommen:
            if (SpielerIstDran == 1)
            {
                ui_nextroundTEXT.SetActive(false);
            }
            else if (SpielerIstDran == 2)
            {
                NPCcooldown = 2f;
                RundenEndeCooldown = 2f;
            }

            // Reserviert den Platz fuer die gewaehlte Karte:
            kartezugewiesen[4] = true;


            switch (CurrentCard_alpha[4])
            {
                case 1:
                    card_4.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 2:
                    card_4.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 3:
                    card_4.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 4:
                    card_4.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 5:
                    card_4.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 6:
                    card_4.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 7:
                    card_4.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 8:
                    card_4.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 9:
                    card_4.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 10:
                    card_4.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 11:
                    card_4.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 12:
                    card_4.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 13:
                    card_4.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 14:
                    card_4.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 15:
                    card_4.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
                case 16:
                    card_4.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
            }
            VerwendeteKarte[4] = true;

        }

    }
    public void card5_OnCLick()
    {
        if (SpielerIstDran == 1 && VerwendeteKarte[5] == false && RundenAnimation == false || SpielerIstDran == 2 && VerwendeteKarte[5] == false && RundenAnimation == false)
        {
            // Damit LateUpdate weiß welcher Knopf und somit welcher CUrrentCardArray es ist:
            WelcherKnopfArray = 5;
            buttoneingabe_getaetigt = true;


            // Spieler hat einen Kartenversuch genommen:
            if (SpielerIstDran == 1)
            {
                ui_nextroundTEXT.SetActive(false);
            }
            else if (SpielerIstDran == 2)
            {
                NPCcooldown = 2f;
                RundenEndeCooldown = 2f;
            }

            // Reserviert den Platz fuer die gewaehlte Karte:
            kartezugewiesen[5] = true;


            switch (CurrentCard_alpha[5])
            {
                case 1:
                    card_5.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 2:
                    card_5.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 3:
                    card_5.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 4:
                    card_5.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 5:
                    card_5.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 6:
                    card_5.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 7:
                    card_5.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 8:
                    card_5.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 9:
                    card_5.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 10:
                    card_5.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 11:
                    card_5.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 12:
                    card_5.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 13:
                    card_5.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 14:
                    card_5.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 15:
                    card_5.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
                case 16:
                    card_5.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
            }
            VerwendeteKarte[5] = true;

        }

    }
    public void card6_OnCLick()
    {
        if (SpielerIstDran == 1 && VerwendeteKarte[6] == false && RundenAnimation == false || SpielerIstDran == 2 && VerwendeteKarte[6] == false && RundenAnimation == false)
        {
            // Damit LateUpdate weiß welcher Knopf und somit welcher CUrrentCardArray es ist:
            WelcherKnopfArray = 6;
            buttoneingabe_getaetigt = true;


            // Spieler hat einen Kartenversuch genommen:
            if (SpielerIstDran == 1)
            {
                ui_nextroundTEXT.SetActive(false);
            }
            else if (SpielerIstDran == 2)
            {
                NPCcooldown = 2f;
                RundenEndeCooldown = 2f;
            }

            // Reserviert den Platz fuer die gewaehlte Karte:
            kartezugewiesen[6] = true;


            switch (CurrentCard_alpha[6])
            {
                case 1:
                    card_6.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 2:
                    card_6.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 3:
                    card_6.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 4:
                    card_6.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 5:
                    card_6.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 6:
                    card_6.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 7:
                    card_6.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 8:
                    card_6.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 9:
                    card_6.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 10:
                    card_6.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 11:
                    card_6.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 12:
                    card_6.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 13:
                    card_6.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 14:
                    card_6.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 15:
                    card_6.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
                case 16:
                    card_6.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
            }
            VerwendeteKarte[6] = true;

        }

    }
    public void card7_OnCLick()
    {
        if (SpielerIstDran == 1 && VerwendeteKarte[7] == false && RundenAnimation == false || SpielerIstDran == 2 && VerwendeteKarte[7] == false && RundenAnimation == false)
        {
            // Damit LateUpdate weiß welcher Knopf und somit welcher CUrrentCardArray es ist:
            WelcherKnopfArray = 7;
            buttoneingabe_getaetigt = true;


            // Spieler hat einen Kartenversuch genommen:
            if (SpielerIstDran == 1)
            {
                ui_nextroundTEXT.SetActive(false);
            }
            else if (SpielerIstDran == 2)
            {
                NPCcooldown = 2f;
                RundenEndeCooldown = 2f;
            }

            // Reserviert den Platz fuer die gewaehlte Karte:
            kartezugewiesen[7] = true;


            switch (CurrentCard_alpha[7])
            {
                case 1:
                    card_7.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 2:
                    card_7.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 3:
                    card_7.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 4:
                    card_7.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 5:
                    card_7.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 6:
                    card_7.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 7:
                    card_7.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 8:
                    card_7.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 9:
                    card_7.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 10:
                    card_7.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 11:
                    card_7.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 12:
                    card_7.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 13:
                    card_7.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 14:
                    card_7.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 15:
                    card_7.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
                case 16:
                    card_7.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
            }
            VerwendeteKarte[7] = true;

        }

    }
    public void card8_OnCLick()
    {
        if (SpielerIstDran == 1 && VerwendeteKarte[8] == false && RundenAnimation == false || SpielerIstDran == 2 && VerwendeteKarte[8] == false && RundenAnimation == false)
        {
            // Damit LateUpdate weiß welcher Knopf und somit welcher CUrrentCardArray es ist:
            WelcherKnopfArray = 8;
            buttoneingabe_getaetigt = true;


            // Spieler hat einen Kartenversuch genommen:
            if (SpielerIstDran == 1)
            {
                ui_nextroundTEXT.SetActive(false);
            }
            else if (SpielerIstDran == 2)
            {
                NPCcooldown = 2f;
                RundenEndeCooldown = 2f;
            }

            // Reserviert den Platz fuer die gewaehlte Karte:
            kartezugewiesen[8] = true;


            switch (CurrentCard_alpha[8])
            {
                case 1:
                    card_8.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 2:
                    card_8.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 3:
                    card_8.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 4:
                    card_8.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 5:
                    card_8.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 6:
                    card_8.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 7:
                    card_8.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 8:
                    card_8.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 9:
                    card_8.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 10:
                    card_8.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 11:
                    card_8.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 12:
                    card_8.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 13:
                    card_8.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 14:
                    card_8.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 15:
                    card_8.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
                case 16:
                    card_8.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
            }
            VerwendeteKarte[8] = true;

        }

    }
    public void card9_OnCLick()
    {
        if (SpielerIstDran == 1 && VerwendeteKarte[9] == false && RundenAnimation == false || SpielerIstDran == 2 && VerwendeteKarte[9] == false && RundenAnimation == false)
        {
            // Damit LateUpdate weiß welcher Knopf und somit welcher CUrrentCardArray es ist:
            WelcherKnopfArray = 9;
            buttoneingabe_getaetigt = true;


            // Spieler hat einen Kartenversuch genommen:
            if (SpielerIstDran == 1)
            {
                ui_nextroundTEXT.SetActive(false);
            }
            else if (SpielerIstDran == 2)
            {
                NPCcooldown = 2f;
                RundenEndeCooldown = 2f;
            }

            // Reserviert den Platz fuer die gewaehlte Karte:
            kartezugewiesen[9] = true;


            switch (CurrentCard_alpha[9])
            {
                case 1:
                    card_9.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 2:
                    card_9.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 3:
                    card_9.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 4:
                    card_9.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 5:
                    card_9.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 6:
                    card_9.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 7:
                    card_9.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 8:
                    card_9.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 9:
                    card_9.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 10:
                    card_9.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 11:
                    card_9.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 12:
                    card_9.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 13:
                    card_9.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 14:
                    card_9.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 15:
                    card_9.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
                case 16:
                    card_9.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
            }
            VerwendeteKarte[9] = true;

        }

    }
    public void card10_OnCLick()
    {
        if (SpielerIstDran == 1 && VerwendeteKarte[10] == false && RundenAnimation == false || SpielerIstDran == 2 && VerwendeteKarte[10] == false && RundenAnimation == false)
        {
            // Damit LateUpdate weiß welcher Knopf und somit welcher CUrrentCardArray es ist:
            WelcherKnopfArray = 10;
            buttoneingabe_getaetigt = true;


            // Spieler hat einen Kartenversuch genommen:
            if (SpielerIstDran == 1)
            {
                ui_nextroundTEXT.SetActive(false);
            }
            else if (SpielerIstDran == 2)
            {
                NPCcooldown = 2f;
                RundenEndeCooldown = 2f;
            }

            // Reserviert den Platz fuer die gewaehlte Karte:
            kartezugewiesen[10] = true;


            switch (CurrentCard_alpha[10])
            {
                case 1:
                    card_10.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 2:
                    card_10.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 3:
                    card_10.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 4:
                    card_10.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 5:
                    card_10.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 6:
                    card_10.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 7:
                    card_10.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 8:
                    card_10.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 9:
                    card_10.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 10:
                    card_10.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 11:
                    card_10.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 12:
                    card_10.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 13:
                    card_10.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 14:
                    card_10.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 15:
                    card_10.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
                case 16:
                    card_10.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
            }
            VerwendeteKarte[10] = true;

        }

    }
    public void card11_OnCLick()
    {
        if (SpielerIstDran == 1 && VerwendeteKarte[11] == false && RundenAnimation == false || SpielerIstDran == 2 && VerwendeteKarte[11] == false && RundenAnimation == false)
        {
            // Damit LateUpdate weiß welcher Knopf und somit welcher CUrrentCardArray es ist:
            WelcherKnopfArray = 11;
            buttoneingabe_getaetigt = true;


            // Spieler hat einen Kartenversuch genommen:
            if (SpielerIstDran == 1)
            {
                ui_nextroundTEXT.SetActive(false);
            }
            else if (SpielerIstDran == 2)
            {
                NPCcooldown = 2f;
                RundenEndeCooldown = 2f;
            }

            // Reserviert den Platz fuer die gewaehlte Karte:
            kartezugewiesen[11] = true;


            switch (CurrentCard_alpha[11])
            {
                case 1:
                    card_11.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 2:
                    card_11.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 3:
                    card_11.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 4:
                    card_11.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 5:
                    card_11.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 6:
                    card_11.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 7:
                    card_11.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 8:
                    card_11.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 9:
                    card_11.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 10:
                    card_11.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 11:
                    card_11.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 12:
                    card_11.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 13:
                    card_11.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 14:
                    card_11.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 15:
                    card_11.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
                case 16:
                    card_11.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
            }
            VerwendeteKarte[11] = true;

        }

    }
    public void card12_OnCLick()
    {
        if (SpielerIstDran == 1 && VerwendeteKarte[12] == false && RundenAnimation == false || SpielerIstDran == 2 && VerwendeteKarte[12] == false && RundenAnimation == false)
        {
            // Damit LateUpdate weiß welcher Knopf und somit welcher CUrrentCardArray es ist:
            WelcherKnopfArray = 12;
            buttoneingabe_getaetigt = true;


            // Spieler hat einen Kartenversuch genommen:
            if (SpielerIstDran == 1)
            {
                ui_nextroundTEXT.SetActive(false);
            }
            else if (SpielerIstDran == 2)
            {
                NPCcooldown = 2f;
                RundenEndeCooldown = 2f;
            }

            // Reserviert den Platz fuer die gewaehlte Karte:
            kartezugewiesen[12] = true;


            switch (CurrentCard_alpha[12])
            {
                case 1:
                    card_12.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 2:
                    card_12.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 3:
                    card_12.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 4:
                    card_12.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 5:
                    card_12.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 6:
                    card_12.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 7:
                    card_12.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 8:
                    card_12.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 9:
                    card_12.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 10:
                    card_12.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 11:
                    card_12.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 12:
                    card_12.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 13:
                    card_12.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 14:
                    card_12.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 15:
                    card_12.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
                case 16:
                    card_12.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
            }
            VerwendeteKarte[12] = true;

        }

    }
    public void card13_OnCLick()
    {
        if (SpielerIstDran == 1 && VerwendeteKarte[13] == false && RundenAnimation == false || SpielerIstDran == 2 && VerwendeteKarte[13] == false && RundenAnimation == false)
        {
            // Damit LateUpdate weiß welcher Knopf und somit welcher CUrrentCardArray es ist:
            WelcherKnopfArray = 13;
            buttoneingabe_getaetigt = true;


            // Spieler hat einen Kartenversuch genommen:
            if (SpielerIstDran == 1)
            {
                ui_nextroundTEXT.SetActive(false);
            }
            else if (SpielerIstDran == 2)
            {
                NPCcooldown = 2f;
                RundenEndeCooldown = 2f;
            }

            // Reserviert den Platz fuer die gewaehlte Karte:
            kartezugewiesen[13] = true;


            switch (CurrentCard_alpha[13])
            {
                case 1:
                    card_13.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 2:
                    card_13.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 3:
                    card_13.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 4:
                    card_13.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 5:
                    card_13.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 6:
                    card_13.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 7:
                    card_13.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 8:
                    card_13.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 9:
                    card_13.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 10:
                    card_13.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 11:
                    card_13.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 12:
                    card_13.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 13:
                    card_13.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 14:
                    card_13.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 15:
                    card_13.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
                case 16:
                    card_13.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
            }
            VerwendeteKarte[13] = true;

        }

    }
    public void card14_OnCLick()
    {
        if (SpielerIstDran == 1 && VerwendeteKarte[14] == false && RundenAnimation == false || SpielerIstDran == 2 && VerwendeteKarte[14] == false && RundenAnimation == false)
        {
            // Damit LateUpdate weiß welcher Knopf und somit welcher CUrrentCardArray es ist:
            WelcherKnopfArray = 14;
            buttoneingabe_getaetigt = true;



            // Spieler hat einen Kartenversuch genommen:
            if (SpielerIstDran == 1)
            {
                ui_nextroundTEXT.SetActive(false);
            }
            else if (SpielerIstDran == 2)
            {
                NPCcooldown = 2f;
                RundenEndeCooldown = 2f;
            }

            // Reserviert den Platz fuer die gewaehlte Karte:
            kartezugewiesen[14] = true;


            switch (CurrentCard_alpha[14])
            {
                case 1:
                    card_14.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 2:
                    card_14.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 3:
                    card_14.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 4:
                    card_14.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 5:
                    card_14.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 6:
                    card_14.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 7:
                    card_14.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 8:
                    card_14.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 9:
                    card_14.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 10:
                    card_14.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 11:
                    card_14.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 12:
                    card_14.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 13:
                    card_14.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 14:
                    card_14.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 15:
                    card_14.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
                case 16:
                    card_14.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
            }
            VerwendeteKarte[14] = true;

        }

    }
    public void card15_OnCLick()
    {
        if (SpielerIstDran == 1 && VerwendeteKarte[15] == false && RundenAnimation == false || SpielerIstDran == 2 && VerwendeteKarte[15] == false && RundenAnimation == false)
        {
            // Damit LateUpdate weiß welcher Knopf und somit welcher CUrrentCardArray es ist:
            WelcherKnopfArray = 15;
            buttoneingabe_getaetigt = true;



            // Spieler hat einen Kartenversuch genommen:
            if (SpielerIstDran == 1)
            {
                ui_nextroundTEXT.SetActive(false);
            }
            else if (SpielerIstDran == 2)
            {
                NPCcooldown = 2f;
                RundenEndeCooldown = 2f;
            }

            // Reserviert den Platz fuer die gewaehlte Karte:
            kartezugewiesen[15] = true;


            switch (CurrentCard_alpha[15])
            {
                case 1:
                    card_15.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 2:
                    card_15.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 3:
                    card_15.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 4:
                    card_15.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 5:
                    card_15.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 6:
                    card_15.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 7:
                    card_15.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 8:
                    card_15.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 9:
                    card_15.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 10:
                    card_15.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 11:
                    card_15.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 12:
                    card_15.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 13:
                    card_15.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 14:
                    card_15.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 15:
                    card_15.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
                case 16:
                    card_15.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
            }
            VerwendeteKarte[15] = true;

        }

    }
    public void card16_OnCLick()
    {
        if (SpielerIstDran == 1 && VerwendeteKarte[16] == false && RundenAnimation == false || SpielerIstDran == 2 && VerwendeteKarte[16] == false && RundenAnimation == false)
        {
            // Damit LateUpdate weiß welcher Knopf und somit welcher CUrrentCardArray es ist:
            WelcherKnopfArray = 16;
            buttoneingabe_getaetigt = true;



            // Spieler hat einen Kartenversuch genommen:
            if (SpielerIstDran == 1)
            {
                ui_nextroundTEXT.SetActive(false);
            }
            else if (SpielerIstDran == 2)
            {
                NPCcooldown = 2f;
                RundenEndeCooldown = 2f;
            }

            // Reserviert den Platz fuer die gewaehlte Karte:
            kartezugewiesen[16] = true;


            switch (CurrentCard_alpha[16])
            {
                case 1:
                    card_16.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 2:
                    card_16.GetComponent<Image>().sprite = KartengruppenSprite_1;
                    break;
                case 3:
                    card_16.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 4:
                    card_16.GetComponent<Image>().sprite = KartengruppenSprite_2;
                    break;
                case 5:
                    card_16.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 6:
                    card_16.GetComponent<Image>().sprite = KartengruppenSprite_3;
                    break;
                case 7:
                    card_16.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 8:
                    card_16.GetComponent<Image>().sprite = KartengruppenSprite_4;
                    break;
                case 9:
                    card_16.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 10:
                    card_16.GetComponent<Image>().sprite = KartengruppenSprite_5;
                    break;
                case 11:
                    card_16.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 12:
                    card_16.GetComponent<Image>().sprite = KartengruppenSprite_6;
                    break;
                case 13:
                    card_16.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 14:
                    card_16.GetComponent<Image>().sprite = KartengruppenSprite_7;
                    break;
                case 15:
                    card_16.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
                case 16:
                    card_16.GetComponent<Image>().sprite = KartengruppenSprite_8;
                    break;
            }
            VerwendeteKarte[16] = true;

        }

    }

    private int[] zwischenSpeicher1_Spieler = new int[17];
    private int[] zwischenSpeicher2_Spieler = new int[17];
    private int zwischenSpeicher1_Array, zwischenSpeicher2_Array;
    private int[] zwischenSpeicher1_NPC = new int[17];
    private int[] zwischenSpeicher2_NPC = new int[17];
    private int KartenGruppenWert_ErsteKarte, KartenGruppenWert_ZweiteKarte;
    private bool Kartenvergleichabgelaufen, buttoneingabe_getaetigt = false;
    private int WelcherKnopfArray;
    private int punkte_spieler = 0, punkte_yuno = 0;
    public float umkehrcountdown = 1.4f;
    public bool kartenumkehrenFreigabe = false;
    private void LateUpdate()
    {
        if (SpielerIstDran == 1 && buttoneingabe_getaetigt == true)
        {
            SpielerIstDran++;
            //"buttoneingabe_getaetigt" prueft ob auch ein knopf gedrueckt wurde weil ansonsten alles durchgesprinten wird:
            buttoneingabe_getaetigt = false;

            // fuehrt den Kartengruppenwert in den zwischenspeicher hiervon ein:
            zwischenSpeicher1_Spieler[WelcherKnopfArray] = CurrentCard_alpha[WelcherKnopfArray];
            zwischenSpeicher1_Array = WelcherKnopfArray;

            // Buendelt die Karten in 2er Gruppen auf um daraus ein vergleich ziehen zu koennen:
            switch(zwischenSpeicher1_Spieler[WelcherKnopfArray])
            {
                case 1:
                    KartenGruppenWert_ErsteKarte = 1;
                    break;
                case 2:
                    KartenGruppenWert_ErsteKarte = 1;
                    break;
                case 3:
                    KartenGruppenWert_ErsteKarte = 2;
                    break;
                case 4:
                    KartenGruppenWert_ErsteKarte = 2;
                    break;
                case 5:
                    KartenGruppenWert_ErsteKarte = 3;
                    break;
                case 6:
                    KartenGruppenWert_ErsteKarte = 3;
                    break;
                case 7:
                    KartenGruppenWert_ErsteKarte = 4;
                    break;
                case 8:
                    KartenGruppenWert_ErsteKarte = 4;
                    break;
                case 9:
                    KartenGruppenWert_ErsteKarte = 5;
                    break;
                case 10:
                    KartenGruppenWert_ErsteKarte = 5;
                    break;
                case 11:
                    KartenGruppenWert_ErsteKarte = 6;
                    break;
                case 12:
                    KartenGruppenWert_ErsteKarte = 6;
                    break;
                case 13:
                    KartenGruppenWert_ErsteKarte = 7;
                    break;
                case 14:
                    KartenGruppenWert_ErsteKarte = 7;
                    break;
                case 15:
                    KartenGruppenWert_ErsteKarte = 8;
                    break;
                case 16:
                    KartenGruppenWert_ErsteKarte = 8;
                    break;

            }

           
        }
        else if (SpielerIstDran == 2 && buttoneingabe_getaetigt == true)
        {
            SpielerIstDran++;
            buttoneingabe_getaetigt = false;

            // fuehrt den Kartengruppenwert in den zwischenspeicher hiervon ein:
            zwischenSpeicher2_Spieler[WelcherKnopfArray] = CurrentCard_alpha[WelcherKnopfArray];
            zwischenSpeicher2_Array = WelcherKnopfArray;
            // Buendelt die Karten in 2er Gruppen auf um daraus ein vergleich ziehen zu koennen:
            switch (zwischenSpeicher2_Spieler[WelcherKnopfArray])
            {
                case 1:
                    KartenGruppenWert_ZweiteKarte = 1;
                    break;
                case 2:
                    KartenGruppenWert_ZweiteKarte = 1;
                    break;
                case 3:
                    KartenGruppenWert_ZweiteKarte = 2;
                    break;
                case 4:
                    KartenGruppenWert_ZweiteKarte = 2;
                    break;
                case 5:
                    KartenGruppenWert_ZweiteKarte = 3;
                    break;
                case 6:
                    KartenGruppenWert_ZweiteKarte = 3;
                    break;
                case 7:
                    KartenGruppenWert_ZweiteKarte = 4;
                    break;
                case 8:
                    KartenGruppenWert_ZweiteKarte = 4;
                    break;
                case 9:
                    KartenGruppenWert_ZweiteKarte = 5;
                    break;
                case 10:
                    KartenGruppenWert_ZweiteKarte = 5;
                    break;
                case 11:
                    KartenGruppenWert_ZweiteKarte = 6;
                    break;
                case 12:
                    KartenGruppenWert_ZweiteKarte = 6;
                    break;
                case 13:
                    KartenGruppenWert_ZweiteKarte = 7;
                    break;
                case 14:
                    KartenGruppenWert_ZweiteKarte = 7;
                    break;
                case 15:
                    KartenGruppenWert_ZweiteKarte = 8;
                    break;
                case 16:
                    KartenGruppenWert_ZweiteKarte = 8;
                    break;

            }

            Kartenvergleichabgelaufen = false;
        }
        // Der Finale Kartenvergleich und Punktegebung fuer den Spieler:
        if (KartenGruppenWert_ErsteKarte == KartenGruppenWert_ZweiteKarte && Kartenvergleichabgelaufen == false && KartenGruppenWert_ErsteKarte != 0)
        {
            Kartenvergleichabgelaufen = true;
            punkte_spieler++;

        }
       

        // Nun folgt die Kartenzurueckdreher abfrage:
        else if (KartenGruppenWert_ErsteKarte != KartenGruppenWert_ZweiteKarte && Kartenvergleichabgelaufen == false && KartenGruppenWert_ErsteKarte != 0 && KartenGruppenWert_ZweiteKarte != 0)
        {
            Kartenvergleichabgelaufen = true;
            kartenumkehrenFreigabe = true;
        }

        if (kartenumkehrenFreigabe == true)
        {
            // Countdown Runterzaehler:
            if (umkehrcountdown > 0f)
            {
                umkehrcountdown -= Time.deltaTime;
            }



            // Countdown auf "0" - Karten umklappen:
            if (umkehrcountdown < 0.01f)
            {
                kartenumkehrenFreigabe = false;
                umkehrcountdown = 1.4f;

                // Dreht die zuerst gewaehlte Karte wieder um:
                switch (zwischenSpeicher1_Array)
                {
                    case 1:
                        card_1.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[1] = false;
                        VerwendeteKarte[1] = false;
                        break;
                    case 2:
                        card_2.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[2] = false;
                        VerwendeteKarte[2] = false;
                        break;
                    case 3:
                        card_3.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[3] = false;
                        VerwendeteKarte[3] = false;
                        break;
                    case 4:
                        card_4.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[4] = false;
                        VerwendeteKarte[4] = false;
                        break;
                    case 5:
                        card_5.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[5] = false;
                        VerwendeteKarte[5] = false;
                        break;
                    case 6:
                        card_6.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[6] = false;
                        VerwendeteKarte[6] = false;
                        break;
                    case 7:
                        card_7.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[7] = false;
                        VerwendeteKarte[7] = false;
                        break;
                    case 8:
                        card_8.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[8] = false;
                        VerwendeteKarte[8] = false;
                        break;
                    case 9:
                        card_9.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[9] = false;
                        VerwendeteKarte[9] = false;
                        break;
                    case 10:
                        card_10.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[10] = false;
                        VerwendeteKarte[10] = false;
                        break;
                    case 11:
                        card_11.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[11] = false;
                        VerwendeteKarte[11] = false;
                        break;
                    case 12:
                        card_12.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[12] = false;
                        VerwendeteKarte[12] = false;
                        break;
                    case 13:
                        card_13.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[13] = false;
                        VerwendeteKarte[13] = false;
                        break;
                    case 14:
                        card_14.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[14] = false;
                        VerwendeteKarte[14] = false;
                        break;
                    case 15:
                        card_15.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[15] = false;
                        VerwendeteKarte[15] = false;
                        break;
                    case 16:
                        card_16.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[16] = false;
                        VerwendeteKarte[16] = false;
                        break;
                }
                // Dreht die zweite gewaehlte Karte wieder um:
                switch (zwischenSpeicher2_Array)
                {
                    case 1:
                        card_1.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[1] = false;
                        VerwendeteKarte[1] = false;
                        break;
                    case 2:
                        card_2.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[2] = false;
                        VerwendeteKarte[2] = false;
                        break;
                    case 3:
                        card_3.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[3] = false;
                        VerwendeteKarte[3] = false;
                        break;
                    case 4:
                        card_4.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[4] = false;
                        VerwendeteKarte[4] = false;
                        break;
                    case 5:
                        card_5.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[5] = false;
                        VerwendeteKarte[5] = false;
                        break;
                    case 6:
                        card_6.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[6] = false;
                        VerwendeteKarte[6] = false;
                        break;
                    case 7:
                        card_7.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[7] = false;
                        VerwendeteKarte[7] = false;
                        break;
                    case 8:
                        card_8.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[8] = false;
                        VerwendeteKarte[8] = false;
                        break;
                    case 9:
                        card_9.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[9] = false;
                        VerwendeteKarte[9] = false;
                        break;
                    case 10:
                        card_10.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[10] = false;
                        VerwendeteKarte[10] = false;
                        break;
                    case 11:
                        card_11.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[11] = false;
                        VerwendeteKarte[11] = false;
                        break;
                    case 12:
                        card_12.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[12] = false;
                        VerwendeteKarte[12] = false;
                        break;
                    case 13:
                        card_13.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[13] = false;
                        VerwendeteKarte[13] = false;
                        break;
                    case 14:
                        card_14.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[14] = false;
                        VerwendeteKarte[14] = false;
                        break;
                    case 15:
                        card_15.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[15] = false;
                        VerwendeteKarte[15] = false;
                        break;
                    case 16:
                        card_16.GetComponent<Image>().sprite = Kartebackward;
                        kartezugewiesen[16] = false;
                        VerwendeteKarte[16] = false;
                        break;
                }
            }
        }
        Debug.Log("Spieler Punkte: " + punkte_spieler);
        Debug.Log("SpielerIstDran: " + SpielerIstDran);
        Debug.Log("umkehrcountdown: " + umkehrcountdown);

    }
}

You should learn to use arrays, collections and loops. Your code will become a lot more concise and simpler. About 90% of your code above could be eliminated.

https://www.w3schools.com/cs/cs_arrays.asp

2 Likes

There is so much code just copied and pasted over and over and over and over and over.

Use more functions. For example, look at this code:

                                switch (CurrentCard_alpha[2])
                                {
                                    case 1:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 2:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 3:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 4:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 5:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 6:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 7:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 8:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 9:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 10:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 11:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 12:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 13:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 14:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 15:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                    case 16:
                                        card_2.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                }

You have the exact chunk of code copied and pasted over and over and over and over again. The only difference between them is the card that is being modified, and the card “alpha”. Turn it into a function, something like this:

void SelectCardSprite(int cardAlpha, Button card)
{
                                switch (cardAlpha)
                                {
                                    case 1:
                                        card.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 2:
                                        card.GetComponent<Image>().sprite = KartengruppenSprite_1;
                                        break;
                                    case 3:
                                        card.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 4:
                                        card.GetComponent<Image>().sprite = KartengruppenSprite_2;
                                        break;
                                    case 5:
                                        card.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 6:
                                        card.GetComponent<Image>().sprite = KartengruppenSprite_3;
                                        break;
                                    case 7:
                                        card.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 8:
                                        card.GetComponent<Image>().sprite = KartengruppenSprite_4;
                                        break;
                                    case 9:
                                        card.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 10:
                                        card.GetComponent<Image>().sprite = KartengruppenSprite_5;
                                        break;
                                    case 11:
                                        card.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 12:
                                        card.GetComponent<Image>().sprite = KartengruppenSprite_6;
                                        break;
                                    case 13:
                                        card.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 14:
                                        card.GetComponent<Image>().sprite = KartengruppenSprite_7;
                                        break;
                                    case 15:
                                        card.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                                    case 16:
                                        card.GetComponent<Image>().sprite = KartengruppenSprite_8;
                                        break;
                              }
}

and call it whenever you need to. That one simple change would drastically shrink your code and make it far easier to maintain.

The next step would be to make “KartengruppenSprite” an array, instead of having variables called “KartengruppenSprite_1”, “KartengruppenSprite_2” etc.

public Sprite KartengruppenSprite[];

and modify the above function to something like this:

void SelectCardSprite(int cardAlpha, Button card)
{
       card.GetComponent<Image>().sprite = KartengruppenSprite[Mathf.RoundToInt((cardAlpha/2)+0.1)];
}

Remember, if you find yourself doing something over and over again, there is almost certainly a better way to do it.

2 Likes

This is not possible!
You can’t do a array to put all buttons in because buttons are buttons and not int and bools.
There are 16 Buttons in the game and the 16 buttons have to stay in every “public Button …”:
public Button card_1, card_2, card_3, card_4, card_5, card_6, card_7, card_8, card_9, card_10, card_11, card_12, card_13, card_14, card_15, card_16;
YOu cant do it in other ways thats why I am forces to do a the copy paste way because you can’t modify the “card_1”
tag on the: “card_1.GetComponent().sprite = KartengruppenSprite_1;”
so you have to ask them in every szenario!

You can definitely make arrays of buttons.

public Button[] cards;

Now look at it in the inspector. You’ve got an array of slots to drag Buttons into.
Same with Sprites.

5 Likes

Another trick is separating discovery of the value and using it. So something like:

Sprite sp;
// logic to put the correct sprite in sp:
switch(n):
  case 1: sp=horseSprite;
  ...
if(...) sp=dogSprite;

// now use it:
card.GetComponent<...>().sprite=sp;

Besides shorter code, you can now test by applying sp to some simple object. There’s also only one place to change the code if the sprite needs to be put in a slightly different place (like a child of the card, which becomes an empty parent).

1 Like

cards[1].GetComponent().sprite = KartengruppenSprite_1;

You can do that as previously mentioned. Not sure where you got the idea that an array can only be integers or booleans.

https://docs.microsoft.com/en-us/dotnet/api/system.array

public GameObject[ ] arrayOfGameObjects;
public Button[ ] arrayOfButtons;

3 Likes

What gives you this idea that you can’t do this? Did you try it?

Wait until OP finds out you can have an array of arrays.

2 Likes

While you can have an array of arrays or multidimensional arrays, they are not serialized in the inspector which is his main concern. However single arrays or generic Lists are serializable by Unity in the inspector.

Though a lot of things could be simplified by using an actual Card class which is attached to each of the card gameobjects. This card class could manage most things related to this single card. All those extra int and bool arrays are just bad design. Those variables are directly related to each card and should therefore be part of the Card class. Each card can manage its own button and image.

The code has a lot of bad practices like declaring a loop variable somewhere at the top of a method which is reused at various levels. Also using a while loop for a plain iteration is much more likely to miss something and could result in an infinite loop. Also the use of hardcoded loop limits is generally bad. The variable i for some reason starts at index 1 instead of 0, the randomizing of the cards is horrible inefficient and, again, when the limits and exit conditions are messed up you could easily end up in an infinite loop again.

Even though I’m german and I can read all the comments and variable names, they are not that descriptive. Overall the code looks like an assembler / µC programmer just started with C# ^^. I’m kinda suprised there’s no goto in those 2.8k lines of code. I think we could confidently call this spaghetti code. At least for me it’s quite difficult to follow the program flow.

2 Likes

I honestly can’t name a time where I’ve ever needed to use multi-dimensional arrays over just grouping related values into a class or struct.
The only times I’ve used them were when I was learning about them in school years ago for a typical tic-tac-toe grid setup, where the first dimension represented the x-coordinates, and the second dimension represented the y-coordinates in the grid, but it always looked so messy and confusing:

int[,] points = {
   { 0, 0 },
   { 1, 0 },
   { 2, 0 },
   { 0, 1 },
   { 1, 1 },
   { 2, 1 },
   { 0, 2 },
   { 1, 2 },
   { 2, 2 }
};

void DrawGrid() {
   for(int i = 0; i < points.Length; i++) {
      DrawPoint(points[i, 0], points[i, 1]);
   }
}

void DrawPoint(int x, int y) {
   //etc...
}

Whereas doing something like grouping the (x, y) values in a struct and having a single-dimensional array of that looks much more readable:

public struct Point {
   public int X { get; }
   public int Y { get; }

   public Point(int x, int y) {
      X = x;
      Y = y;
   }
}
Point[] points = {
   new Point(0, 0),
   new Point(1, 0),
   new Point(2, 0),
   new Point(0, 1),
   new Point(1, 1),
   new Point(2, 1),
   new Point(0, 2),
   new Point(1, 2),
   new Point(2, 2)
};

void DrawGrid() {
   for(int i = 0; i < points.Length; i++) {
      DrawPoint(points[i]);
   }
}

void DrawPoint(Point point) {
   //etc...
}

Fun trick which I wish I knew years ago: with the array of slots visible (and the Inspector locked), shift-click or select all the assets you want to insert, and drag them to the first slot. All will fill at once.

1 Like

You can control everything from a master script or split out the functionality with scripts on the cards themselves. I typically have big master scripts and then smaller ones on the objects, like changing color for being selected etc., which are just function calls from the master script (or when clicked on). That said, you also need the objects to be able to communicate back up to the master script sometimes (“I was clicked!”), not always just from the master script downward.

Really, the first and most important change is to use arrays, which will shrink your code enormously. Anytime you have multiple instances of similar objects, they should be in an array.

I’m curious about this, because I made a custom class for audio clips, which is just an array of them. Then in the main script, I instantiate an array of that class, so it’s in effect a 2D array. I have multiple “instruments”, each of which plays from a selection of “notes” (audio clips), and I wanted to be able to say

myAudioSource.play(instrument[i].clip[k]);

Everything shows up in the Inspector, so is that “serialized”? (Never been 100% clear on what that means/implies exactly…)

Also, sorry to divert the thread, but wanted to figure this out…:smile:

6616291--753442--screenshot_2D_array_inspector.JPG

In effect, yes, but it’s not technically a 2D array, which is why its able to be serialized in the inspector.
Actual multidimensional arrays will not be serialized though. If you wrote your implementation like this…

public AudioClip[,] clips;

…It wouldn’t show in the inspector.

2 Likes

Yeah, that is serialized. You can serialize an array of a class containing another array, but not an array directly containing other arrays.

2 Likes

Cool, thanks for the clarifications.

1 Like