Register for your free account! | Forgot your password?

You last visited: Today at 21:07

  • Please register to post and access all features, it's quick, easy and FREE!

Advertisement



[C#]Problem

Discussion on [C#]Problem within the .NET Languages forum part of the Coders Den category.

Reply
 
Old   #1
 
elementskate's Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 314
Received Thanks: 107
[C#]Problem

Hi Liebe Epvpers User!

Ich habe folgendes Problem:

Ich möchte ein kleines Programm schreiben, dass für mich ein Memoryspiel ( Ihr wisst schon, immer 2 gleiche Bilder finden ) mit 24 Feldern löst. Und zwar läuft das so ab:

Das Programm deckt per Zufall Felder auf und speichert die Nummer des Bildes das darunter erscheint ( Das habe ich schon gelöst )
Und nun mein Problem:

Wie schaffe ich es, das mein Programm erkennt wenn er zwei gleiche Bilder entdeckt hat und auch weiß welche Bilder das waren? ( Um beide nachher aufzudecken )

Ich hoffe ihr versteht mein Problem und könnt mir helfen,

mfg elementskate
elementskate is offline  
Old 02/16/2011, 00:22   #2
 
Mamon110's Avatar
 
elite*gold: 0
Join Date: Mar 2008
Posts: 289
Received Thanks: 174
Wenn ich richtig verstanden habe, hast du es so geschrieben das er die Nummern der Felder liest ? also z.b. Feld 2 : Bild 1 .
Oder hab ich das falsch verstanden ?
Mamon110 is offline  
Old 02/16/2011, 00:28   #3
 
elementskate's Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 314
Received Thanks: 107
Ja genau

Was muss ich nun machen, dass es erkennt ob es 2 gleiche Bilder hat?
elementskate is offline  
Old 02/16/2011, 00:57   #4
 
Mamon110's Avatar
 
elite*gold: 0
Join Date: Mar 2008
Posts: 289
Received Thanks: 174
Ich kenn mich da nicht so aus.. Also ich kenn die ganzen Codes nicht und soo..
Aber würder dir anraten erstmal zu schauen das der dann auch bei jedem selben bild die selben nummern hat, und das dann immer speichert.
Mehr kann ich dir nicht anraten. =)
Mamon110 is offline  
Old 02/16/2011, 08:28   #5
 
-AmA-'s Avatar
 
elite*gold: 0
Join Date: Dec 2007
Posts: 728
Received Thanks: 460
Ich würde sagen du machst das ganze in einem Array (2 dimensional versteht sich)...

Beispiel für ein Memory mit 12 Karten:

Code:
[U] |1|2|3|4[/U]
[U]1| | | | [/U]
[U]2| | | | [/U]
3| | | |
Sobald eine Zahl aufgedeckt ist, kommt in die Tabelle ein Wert.(Zb.True oder etwas anderes)

So kanst du ein Algorithmus der immer 2 neue Karten auswählt einbauen.

Sobald du Lust hast dich zu vertiefen, kannst du dein Algorithmus um eine Wahrscheinlichkeitsrechnung verfeinern

Mfg AmA
-AmA- is offline  
Old 02/16/2011, 15:14   #6
 
elementskate's Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 314
Received Thanks: 107
Könntest du mir vielleicht ein Codebeispiel geben?

Und ich weiß eigentlich immer noch nicht wie ich sie vergleichen soll!
elementskate is offline  
Old 02/16/2011, 16:22   #7
 
RealEmX's Avatar
 
elite*gold: 0
Join Date: Oct 2008
Posts: 428
Received Thanks: 179
Ich würde die Objekte der Karten in Array packen. In's eine Feld kommt die ID der Karte, in's zweite eine ID des "Musters".

Bsp:
Code:
int[] arrCard1 = new int[2]{1, 255} //1 = ID der Karte; 255 = ID des Musters
int[] arrCard2 = new int[2]{2, 255} //selbes Muster wie die Karte mit ID 1
int[] arrCard3 = new int[2]{3, 477} //Anders Muster :P
// [....]
Und das Abfragen wirst wohl selbst hinbekommen :P

Du kannst natürlich auch alle Karten in ein verschachteltes Array oder Mehrdimensionales Array packen, je nachdem was dir besser liegt.



MfG
EmX
RealEmX is offline  
Old 02/16/2011, 16:29   #8
 
elementskate's Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 314
Received Thanks: 107
Danke, aber du wirst lachen, genau wegen dem Abfragen habe ich Probleme!
Das Speichern krieg ich schon selbst hin aber ich hab keine Ahnung wie ich überprüfe, ob es schon einen Wert gibt der das selbe "Muster" hat und dann die Nummer(n) der Karte(n) ausgibt, die das selbe Muster haben
elementskate is offline  
Old 02/16/2011, 16:30   #9
 
elite*gold: 0
Join Date: May 2010
Posts: 793
Received Thanks: 268
man kann auch einfach alle karten in einer liste speichern:

Code:
    class MemoryPlayer 
    {
        List<Karte> bekannteKarten;
        List<Karte> AlleKarten;
        MemoryPlayer() 
        {
            this.bekannteKarten = new List<Karte>();
            //Alle Karten füllen(mit einer doppelten for schleife am besten)
        }
        //Gibt falls zu der karte ein gegenstüch exixstiert dias gegenstueck zurück, ansonsten null
        //auzsserdem fügt es die neue karte den bisher bekannten hinzu
        public Karte VerarbeteNeueKarte(Karte neue) 
        {
            Karte gegenstueck = null;
            try 
            {
                gegenstueck = bekannteKarten.First(karte => karte.MusterId == neue.MusterId );
            }
            catch(InvalidOperationException)
            {
                //Es existeirt kein gegenstueck
            }
            bekannteKarten.Add(neue);
            return gegenstueck;
        }
        //Ermittelt welche karte als nächstes aufgedeckt werden soll
        public Karte ErmitleNeueUnbekannte() 
        {
            return AlleKarten.First(karte => bekannteKarten.Count(bk => bk.posX == karte.posX && bk.posY == karte.posY) == 0);
        }
    }
    class Karte 
    {
        public int posX { get; set; }
        public int posY { get; set; }
        public int MusterId { get; set; }
    }
kann aber nicht dafür garantuieren das der code funktioniert hab ihn nicht getetstet. Bin mir aber ziemlich sicher das er funktioniert.
nkkk is offline  
Old 02/16/2011, 16:43   #10
 
elementskate's Avatar
 
elite*gold: 0
Join Date: May 2010
Posts: 314
Received Thanks: 107
Ich habs jetzt selbst gelöst, mit einer Hashtable!

Hier mein Code:

Code:
 Hashtable table = new Hashtable();
            table.Add(99, 5); // 1. wert ist die Nummer des Musters, 2. Wert die des Bildes
            
            int erg =Convert.ToInt32(Console.ReadLine());
            int bildnummer = Convert.ToInt32(Console.ReadLine());
         
                

            int nElementCount = table.Count;
            bool bValueCont = table.ContainsValue(bildnummer);

            if (bValueCont == false)
            {

                bool bKeyCont = table.ContainsKey(erg);
                if (bKeyCont == true)
                {
                    object ergebniss = table[erg];

                    Console.WriteLine(ergebniss);// Wenn die Nummer des Musters schon vorhanden ist, zeigt er die Nummer des Bildes an das doppelt ist
                       

                    

                  


                }
                
            }
            else
            {
                Console.WriteLine("lol");
                table.Add(erg, bildnummer);
            }
            Console.ReadKey();

Trotzdem Danke für eure Ideen!

mfg elementskate
elementskate is offline  
Reply


Similar Threads Similar Threads
[Hilfe]Ungelöstes Server Erstell Problem, ausführliche Problem Schilderung
09/15/2011 - Flyff Private Server - 8 Replies
Hey Com! Ich hoffe, dass dieser Thread nicht als Spamthread angesehen wird, da ich ja gestern schon einen zu diesem Thema eröffnet habe. Sorry wenn ich euch mit dem Thema nerve, aber ich sitze nun schon 4 Tage über dem Problem, und finde einfach keine Lösung. Nun werde ich hier allerdings eine ausführlichere Beschreibung des Problems geben. Mein Problem ist, dass ich den Windows Mssql Server 2008/2005 aus Sedrika's TuT nicht installieren kann, da sobald ich ihn immer installiere...
[Problem] Problem with server starting - cannot find quest index for PaxHeader
12/22/2009 - Metin2 Private Server - 1 Replies
Hello! I have this same problem as here when i'm starting my server: http://www.elitepvpers.com/forum/metin2-pserver-di scussions-questions/307143-metin2-serverfiles-ques t-index-fehler.html But I didn't know the answer.. how to repair this? Greetings



All times are GMT +2. The time now is 21:07.


Powered by vBulletin®
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.

Support | Contact Us | FAQ | Advertising | Privacy Policy | Terms of Service | Abuse
Copyright ©2024 elitepvpers All Rights Reserved.