Excel Forum - Porady, Pomoc,  Excel Help, Excel FAQ Strona Główna
 FAQ  RegulaminRegulamin  Szukaj   Użytkownicy   Grupy   Rejestracja   Profil   Twoje wiadomości   Zaloguj 


Poprzedni temat «» Następny temat
ID tematu: 735 Skopiuj do schowka Poker w Excelu
Autor Wiadomość
slgn
[Usunięty]

Wysłany: 19-03-2007, 23:17   Poker w Excelu

Witam!
Bawie sie Excelem i chce zrobic cos takiego:

mam 52 karty zapisane w A1:A52, sa one losowane do B1:B52 przez takie makro:
Kod:

Sub Losowanie()

Set cel = Range("B1:B52")
Set zrodlo = Range("A1:A52")

IleLosowan = cel.Cells.Count
liczMax = zrodlo.Cells.Count

BezPowtorzen = True

For x = 1 To IleLosowan

Randomize
Do
myVal = zrodlo.Cells(Int((liczMax * Rnd) + 1), 1)
Loop Until Not BezPowtorzen Or _
Application.CountIf(Range(cel.Cells(1, 1), _
cel.Cells(x, 1)), myVal) = 0
cel.Cells(x, 1) = myVal

Next
End Sub


jak zrobic zeby DOKLADNIE sie przenosily wartosci z kolumny A do B (w komorce A1 tekst jest czerwony po wylosowaniu do kolumny B czarny)
ID posta: 3858 Skopiuj do schowka
 
 
Tajan


Pomógł: 5252 razy
Posty: 11450
Wysłany: 19-03-2007, 23:46   

Spróbuj w ten sposób:
Kod:
Sub Losowanie()

Set cel = Range("B1:B52")
Set zrodlo = Range("A1:A52")

IleLosowan = cel.Cells.Count
liczMax = zrodlo.Cells.Count

BezPowtorzen = True

For x = 1 To IleLosowan

    Randomize
    Do
        Set myVal = zrodlo.Cells(Int((liczMax * Rnd) + 1), 1)
    Loop Until Not BezPowtorzen Or _
         Application.CountIf(Range(cel.Cells(1, 1), _
                           cel.Cells(x, 1)), myVal.Value) = 0
    myVal.Copy
    cel.Cells(x, 1).PasteSpecial xlPasteAll
Next
Application.CutCopyMode = False
End Sub
ID posta: 3863 Skopiuj do schowka
 
 
slgn
[Usunięty]

Wysłany: 20-03-2007, 00:21   

Prawie o to mi chodzilo,
Dziala dobrze, kolumna B wyglada tak jak bym chcial, tylko ekran mi przenosi
dodaje pliczek
http://www.gamenet.pl/datas/users/65-poker.zip

[ Dodano: 2007-03-20, 00:36 ]
btw jak mozna sie nauczyc tak wymiatac w VBA?
ID posta: 3868 Skopiuj do schowka
 
 
Tajan


Pomógł: 5252 razy
Posty: 11450
Wysłany: 20-03-2007, 09:36   

Na początku makra dodaj linię:
Kod:
Application.ScreenUpdating = False

a na końcu:
Kod:
Application.ScreenUpdating = True
ID posta: 3872 Skopiuj do schowka
 
 
slgn
[Usunięty]

Wysłany: 22-03-2007, 22:58   

jeszcze jedno pytanko jak zrobic wszystkie mozliwe "przetasowania" kart? ile takich tali jest mozliwych 52! ?

Kod:

Sub Losowanie()
Application.ScreenUpdating = False
Set cel = Range("B1:B52")
Set zrodlo = Range("A1:A52")

IleLosowan = cel.Cells.Count
liczMax = zrodlo.Cells.Count

BezPowtorzen = True

For x = 1 To IleLosowan

    Randomize
    Do
        Set myVal = zrodlo.Cells(Int((liczMax * Rnd) + 1), 1)
    Loop Until Not BezPowtorzen Or _
         Application.CountIf(Range(cel.Cells(1, 1), _
                           cel.Cells(x, 1)), myVal.Value) = 0
    myVal.Copy
    cel.Cells(x, 1).PasteSpecial xlPasteAll
Next
Application.CutCopyMode = False
Application.ScreenUpdating = True

End Sub


czyli zeby C1:C52 nie bylo identyczne z A1:A52 lub B1:B52, D1:D52 nie bylo identyczne z A1:A52 lub B1:B52 lub C1:C52 ... itd.
ID posta: 3978 Skopiuj do schowka
 
 
Tajan


Pomógł: 5252 razy
Posty: 11450
Wysłany: 23-03-2007, 13:43   

Zgadza się - 52! Zajmie to zapewne kilka lat. Zwłaszcza, że czas generowania nie będzie liniowy. Trzeba będzie sprawdzać, czy utworzona kombinacja nie powtórzyła się wcześniej.
ID posta: 3992 Skopiuj do schowka
 
 
wirusek 
Starszy Forumowicz


Pomógł: 1 raz
Posty: 26
Wysłany: 03-04-2007, 11:33   

Tak, tylko dla Twojej informacji:
51! = około circa ebałt 1,55112 E+66 ( z dokładnością excelowską)
ID posta: 4411 Skopiuj do schowka
 
 
slgn
[Usunięty]

Wysłany: 06-04-2007, 03:45   

Chce żeby Excel sprawdził która ręka jest mocniejsza,

tu zasady:

Zasady gry w Texas Holdem

1. Wprowadzenie i siła rąk

W Texas Hold'em Poker gramy talią 52 kart. Grać może od 2 do kilkunastu osób ale w praktyce grywa się w maksymalnie 10 osób przy jednym stoliku. W Texas Hold'em gracze korzystają z tzw. kart wspólnych czyli pięciu odkrytych kart leżących na stole. Na poczatku każdej rundy wszyscy gracze otrzymują od rozdającego po dwie karty zakryte. Zwycięża gracz, któremu uda się stworzyć z zakrytych i wspólnych kart najsliniejszy pięciokartowy układ

Zacznijmy od przeglądu poszczególnych rąk (w kolejności od najsilniejszej do najsłabszej):

POKER - Straight Flush - pięć kolejnych kart w tym samym kolorze. Kiedy dwóch graczy ma pokera, wygrywa ten, którego poker zaczyna się od wyższej karty. Tak więc najwyższym możliwym pokerem jest tzw. Royal Straight Flush - Poker Królewski zaczynający się od Asa.

jest lepsze od


KARETA - Four of a kind - cztery karty o jednakowej wartości, np. cztery króle bądź cztery dziewiątki. Kareta króli jest oczywiście lepsza niż kareta dziewiątek. Kiedy dwóch graczy ma tą samą karetę o wyniku rozstrzyga tzw. kicker, czyli piąta karta. Przykładowo: A A A A J jest lepsza niż A A A A T . Kiedy kicker jest ten sam to mamy remis.

jest lepsze od

FULL - Full house - trzy karty o jednakowej wartości w połączeniu z parą kart o innej wartości. Kiedy dwóch graczy ma fulla, wygrywa ten, kto ma silniejszą trójkę. Jeśli obaj mają taką samą trójkę, wtedy decyduje para a jeśli i ona jest taka sama to mamy remis.

jest lepsze od

KOLOR - Flush - Pięć dowolnych kart jednego koloru. Kiedy dwóch graczy ma kolor, wygrywa ten, którego kolor ma najsilniejszą kartę.

jest lepsze od

STRIT - Straight - pięć kolejnych kart nie będących w tym samym kolorze. Kiedy dwóch graczy ma strita, wygrywa ten, którego strit zawiera najsilniejszą kartę. Warto pamiętać, że As może być użyty jako element najwyższego możliwego strita - A K Q J T, jak i najsłabszego - 5 4 3 2 A.

jest lepsze od

TRÓJKA - Three of a kind - trzy karty o jednakowej wartości, np. trzy damy bądź trzy ósemki. Trójka dam jest lepsza niż trójka ósemek. Kiedy dwóch graczy ma tą samą trójkę o wyniku rozstrzyga czwarta karta a jeśli i ona jest taka sama u obu graczy, wtedy piąta. Jeżeli piąte karty również są takie same to mamy remis.

jest lepsze od

DWIE PARY - Two pairs - Nazwa mówi sama za siebie. Przykładowo: A A Q Q. Kiedy dwóch graczy ma dwie pary o wyniku rozstrzyga para wyższa, jeśli jest on taka sama to para niższa, ostatecznie rozstrzyga kicker a jeśli i on jest taki sam to mamy remis.

jest lepsze od

JEDNA PARA - One pair - Dwie karty o jednakowej wartości. Przykładowo A A bądź 3 3. Kiedy dwóch graczy ma parę to rozstrzyga wartość pary a potem kolejno trzecia, czwarta i piąta karta.

jest lepsze od

WYSOKA KARTA - High Card - kiedy nie mamy żadnego z powyższych układów to mamy tzw. wysoką kartę. Jeśli przeciwnik też ma wysoką kartę to o zwycięztwie zadecyduje czyja wysoka karta jest wyższa, a jeśli są takie same to druga, potem trzecia, czwarta i piąta.

jest lepsze od

zastanawiam się jak to zrobic najprościej

tu mój arkusz z tym co mam już zrobione:
http://www.grochowski.info/poker.xls
ID posta: 4548 Skopiuj do schowka
 
 
Wyświetl posty z ostatnich:   
Odpowiedz do tematu
Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Nie możesz załączać plików na tym forum
Możesz ściągać załączniki na tym forum
Dodaj temat do Ulubionych
Wersja do druku

Skocz do:  

Powered by phpBB modified by Przemo © 2003 phpBB Group
Theme xandgreen created by spleen& Programosy modified v0.3 by warna
Opieka techniczna www.wip.pl

Archiwum

Strona używa plików cookies.

Kliknij tutaj, żeby dowiedzieć się jaki jest cel używania cookies oraz jak zmienić ustawienia cookie w przeglądarce.
Korzystając ze strony użytkownik wyraża zgodę na używanie plików cookies, zgodnie z bieżącymi ustawieniami przeglądarki.
Sprawdź, w jaki sposób przetwarzamy dane osobowe