Witamy na forum PC Format Zapraszamy do REJESTRACJI


Użytkownicy przeglądający ten wątek: 1 gości

[Matlab] Gra "Papier kamień nożyce"

#1
[Matlab] Gra "Papier kamień nożyce"
Witam 
Nie znam się kompletnie na programowaniu ,a musze napisać na zaliczenie program w matlabie ,który będzie polegał na grze w papier kamien nozyce czyli tzw marynarza. Ktoś mógłby mi pomóc w tym ? 
 System operacyjny: windows_eight Przeglądarka: chrome
#2
RE: [Matlab] Gra "Papier kamień nożyce"
Witam, czy to ma być na zasadzie, że program losuje gest (papier/kamień/nożyce), po czym użytkownik wprowadza swój typ, a następnie porównywane są oba i mamy albo dogrywkę, albo zwycięzcę? Czy to ma być zwykły skrypt (dane wprowadzane z wiersza poleceń)?
Kod:
clc
koniec = 0;
stany = {'papier', 'kamień', 'nożyce'};
typy = [0 1 -1; -1 0 1; 1 -1 0];
rng('shuffle');
while koniec == 0
    komp = randi(3);
    gracz = input('Podaj swój typ (1 - papier, 2 - kamień, 3 - nożyce ');
    while gracz ~= 1 && gracz ~= 2 && gracz ~= 3
        gracz = input('Podaj swój typ (1 - papier, 2 - kamień, 3 - nożyce ');
    end
    if komp == gracz
        disp([stany{komp} ' kontra ' stany{komp} ' - dogrywka'])
    else
        koniec = 1;
        if typy(komp, gracz) == 1
            disp([stany{komp} ' kontra ' stany{gracz} ' - wygrywa MATLAB'])
        else
            disp([stany{komp} ' kontra ' stany{gracz} ' - wygrywasz'])
        end
    end
end
 System operacyjny: linux_ubuntu Przeglądarka: firefox
#3
RE: [Matlab] Gra "Papier kamień nożyce"
Dziękuje bardzo za pomoc .

Co do programu... nie dostałam konkretnych wytycznych jak ma działać - niech więc zostanie tak jak jest.

Mam jeszcze pytanko :
Czy ten program można delikatnie przerobić(dodać więcej stanów) , tak aby powstała Nam gra w karty ,a dokładnie w wojnę ? Pytam ponieważ koleżanka dostała taki program , a nie chce zaśmiecać forum zakładając nowy temat.
 System operacyjny: windows_eight Przeglądarka: chrome
#4
RE: [Matlab] Gra "Papier kamień nożyce"
Wojnę raczej inaczej by wypadało zrobić, bo stanów byłoby zbyt wiele. Wystarczy jedynie znać starszeństwo kart i odpowiednio rozpisać pętlę dotyczącą rozgrywki (dopisywanie kart graczowi, który wziął karty bądź wygrał wojnę).
 System operacyjny: linux_ubuntu Przeglądarka: firefox
#5
RE: [Matlab] Gra "Papier kamień nożyce"
W wojnie ja bym przypisał każdej karcie cyfrę (od 2 do 14, gdzie 14 to by był as). Następnie bym losował karty i porównywał ich siłę. Gracz, który ma silniejszą kartę, dodaje karty do swojego stanu posiadania (a przegrany odejmuje). W przypadku podobnych wartości robi się drugie losowanie itd... Oczywiście należy pamiętać, że są cztery kolory. Utworzyć dwie tablice z kartami i na nich operować.
Pozdrawiam.
Ajgor
 System operacyjny: windows_ten Przeglądarka: chrome
#6
RE: [Matlab] Gra "Papier kamień nożyce"
Ale w wojnę się gra inaczej - tasuje się talię 52 kart i rozdaje po równo (czyli po 26), a następnie ściąga się ze stosu górną kartę i jeśli jest silniejsza, to karty wędrują na spód stosu gracza (tak - to jest raczej kolejka aniżeli stosOczko ). W przypadku równych kart toczy się wojna (ja znałem tylko odmianę, że jedną kartę kładło się zakrytą a na nią kartę odkrytą, która rozstrzygała (bądź nie) wynik) i karty wędrują do zwycięzcy. I tak dalej aż do wyczerpania się komuś kart.
 System operacyjny: linux_ubuntu Przeglądarka: firefox
#7
RE: [Matlab] Gra "Papier kamień nożyce"
No i o tym pisałem. Od 2 do 14 to daje 13 kart. Razy cztery kolory - masz 52 karty Wesoły Tworzysz dwie tablice i losowo rozkładasz karty w tych tablicach. Następnie losujesz (jak chcesz, to możesz brać po kolei) karty i je porównujesz. DOKŁADNIE tak miałem to na myśli. Tylko napisałem skrótem.
Pozdrawiam.
Ajgor
 System operacyjny: windows_ten Przeglądarka: chrome
#8
RE: [Matlab] Gra "Papier kamień nożyce"
Skoro tak, to nie było wpisu Wesoły A wracając do tematu - do symulacji tasowania talii kart można posłużyć się funkcją randperm, która zwróci wektor losowo uporządkowanych liczb od 1 do n, a następnie połowę tablicy przypisać jednemu graczowi, a drugą połowę drugiemu graczowi. Teraz wystarczy napisać procedurę gry.
 System operacyjny: linux_ubuntu Przeglądarka: firefox
Programy: Polecane / Nowe / Inne




Podobne wątki ([Matlab] Gra "Papier kamień nożyce")
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  [ Matlab] metodaHooke-Jeavese znajdz jej minimum piotrek132 0 5930 11.12.2016, 13:12
Ostatni post: piotrek132
  Matlab - prośba o pomoc w rozwiązywaniu zadań szefusik 3 6404 20.04.2015, 19:12
Ostatni post: ptrick
  Matlab - nie działająca funkcja REPEAT Spain2010 0 6383 19.01.2015, 22:49
Ostatni post: Spain2010

Skocz do:


Wybrane wątki ([Matlab] Gra "Papier kamień nożyce")
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  .bat nie kompresuje plików GIENTY 3 7989 06.09.2018 07:20
Ostatni post: broda99
  problem z programem .bat wiktrom12 4 9108 30.08.2018 08:25
Ostatni post: wiktrom12
  Silnik do gier ZigglerGames 1 7849 23.08.2018 09:03
Ostatni post: Szachista
  Chciałbym zrobić prosty plik exe z jedną funkcją densour 4 8577 09.08.2018 16:24
Ostatni post: Ajgor
  Który język wybrać do stworzenia aplikacji synchronizujące pliki z urządzeniem mobiln Elemental 2 2363 18.07.2018 12:05
Ostatni post: Ajgor
  Pomysł napisania programu ROM FireBytes 3 9227 28.06.2018 16:56
Ostatni post: FireBytes
  [VBA] Tworzenie nowego arkusza z danymi z TextBox'a Pioro 4 9534 19.06.2018 23:24
Ostatni post: broda99
  Potwierdzenie na maila po wysłaniu pliku coci 0 8700 13.06.2018 20:37
Ostatni post: coci
  Pieczętowanie Archiwum Jar - Po co? wanhelsing 3 9302 19.05.2018 20:55
Ostatni post: koneton
  Wyszukiwarka w spawnerze nie reaguje na polskie znaki kazik666 0 9093 16.05.2018 12:04
Ostatni post: kazik666
  BASH symulator silnika dawswi1 3 9571 13.05.2018 10:43
Ostatni post: Szachista
  Autohotkey automatyczny zapis TheProgson 0 9176 07.05.2018 21:27
Ostatni post: TheProgson
  VBA Pobieranie wybranych plików z danymi julietta03 1 9434 04.05.2018 08:25
Ostatni post: broda99
  [VBA] Przenoszenie danych między formularzami Pioro 4 9844 23.04.2018 11:48
Ostatni post: broda99
  Skrypt, który szuka i zamienia armen10 2 9567 23.04.2018 10:04
Ostatni post: armen10