Keresés


Toplista

Toplista
  • betöltés...

Magántanár kereső

Ha szívesen korrepetálnál, hozd létre magántanár profilodat itt.
Ha diák vagy és korrepetálásra van szükséged, akkor regisztrálj be és írd meg itt, hogy milyen tantárgyban!

Programozás kő, papír, olló

175

Sziasztok!
Valaki tud nekem segíteni nagyon nem megy a feladat és fontos, hogy jó legyen. Ezt a feladatot kaptam, amit nem tudok megcsinálni:
Készítsünk programot, ami a kő, papír, olló játékot modellezi.
Két játékosunk van, a nevüket kérjük be és azt is kérdezzük meg tőlük ki mit választ (kő, papír, vagy olló)
A játék szabályainak ismeretében (kő legyőzi az ollót, a papír legyőzi a követ, az olló elvágja a papírt, de elcsorbul, ha kőbe vág.. papír-papír, kő-kő és olló-olló párosok esetén nincs győztes) a program hirdessen győztest.
A program a játék végén kérdezze meg akarunk e újabb kört játszani. Ha igen, akkor kezdődjön előről a játék.

A válaszotokat előre is köszönöm!:)


Jelenleg 1 felhasználó nézi ezt a kérdést.
-1
Középiskola / Informatika

Válaszok

2
Melyik része nem megy? Ez egy halom if, nem kell túlbonyolítani.
1

Lévén semmi kikötés nem volt a programozási nyelvre vonatkozóan, a kedvencemet használtam: Perl.

use strict;
use warnings;
use experimental 'smartmatch';

my @valasz = ('kő', 'papír', 'olló');

print 'Első játékos neve: ';
chomp (my $nev1 = <STDIN>);

print 'Második játékos neve: ';
chomp (my $nev2 = <STDIN>);

do {

    my $valasz1;
    do {
        print "$nev1 válasza: ";
        chomp ($valasz1 = <STDIN>);
    } until ($valasz1 ~~ @valasz);

    my $valasz2;
    do {
        print "$nev2 válasza: ";
        chomp ($valasz2 = <STDIN>);
    } until ($valasz2 ~~ @valasz);

    if ($valasz1 eq $valasz2) {
        print "Döntetlen\n";
    } elsif ($valasz[((grep { $valasz[$_] eq $valasz1 } 0 .. $#valasz)[0] + 1) % 3] eq $valasz2) {
        print "$nev2 nyert\n";
    } else {
        print "$nev1 nyert\n";
    }

    print 'Ez gyors volt. Mehet még egy kör? (i/N): ';
} while (<STDIN> =~ m/^i$/i);
0