Challenge de programmation: Rock, Paper, Scissors

  • SpooF
  • ٩๏̯͡๏۶
  • Bronze Member
  • Avatar de l’utilisateur
  • Inscription: Mai 22, 2004
  • Messages: 3415
  • Loc: Richland, WA
  • Status: Offline

Message Décembre 3rd, 2010, 4:17 pm

Cela pourrait être un raté, mais Im se demandant combien de façons peut-on écrire une fonction pour vous dire le résultat de qui allait gagner dans un jeu de Rock papier, ciseaux.

Argument choix est le vôtre, la fonction vient de retourner une sorte de réponse qui vous dire qui a gagné le jeu, lecteur aka 1 ou le joueur 2 ou un tirage au sort.

* La fonction doit prendre deux entrées joueur d'une certaine façon et de retour qui a gagné.

Et non, Rock ne peut pas le buste à travers du papier gif "title =";)" alt =" Wink ">

J'ai une solution que le poste III à une date ultérieure (Son tout à fait une solution simple *). Venez avec autant de façons que vous pouvez, toute langue peut être soumis, une fois qu'une solution a été écrit, essayer de le résoudre d'une manière différente.

Si vous n'êtes pas familier avec le jeu: http://en.wikipedia.org/wiki/Rock-paper-scissors
#define NULL (::rand() % 2)
  • Anonymous
  • Bot
  • No Avatar
  • Inscription: 25 Feb 2008
  • Messages: ?
  • Loc: Ozzuland
  • Status: Online

Message Décembre 3rd, 2010, 4:17 pm

  • Bogey
  • Bogey
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Juil 14, 2005
  • Messages: 8211
  • Loc: USA
  • Status: Offline

Message Décembre 3rd, 2010, 4:59 pm

PHP Code: [ Select ]
<?php
$solutions = array('1' => 'Player 1', '2' => 'Player 2', '3' => 'Draw');
$id = rand('1','3');
echo $solutions[$id];
?>
  1. <?php
  2. $solutions = array('1' => 'Player 1', '2' => 'Player 2', '3' => 'Draw');
  3. $id = rand('1','3');
  4. echo $solutions[$id];
  5. ?>
Là vous allez :D Ça m'a pris 5 secondes.
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • SpooF
  • ٩๏̯͡๏۶
  • Bronze Member
  • Avatar de l’utilisateur
  • Inscription: Mai 22, 2004
  • Messages: 3415
  • Loc: Richland, WA
  • Status: Offline

Message Décembre 3rd, 2010, 5:47 pm

Peut-être que je dois préciser qu'il a effectivement de prendre deux entrées joueur comme arguments et retour le vainqueur.

Que vous transmettre ces valeurs par renvoi dans un tableau, classe, struct ou toute autre chose est à vous. Outre Bogey, ça n'est pas une fonction :P
#define NULL (::rand() % 2)
  • Bogey
  • Bogey
  • Genius
  • Avatar de l’utilisateur
  • Inscription: Juil 14, 2005
  • Messages: 8211
  • Loc: USA
  • Status: Offline

Message Décembre 3rd, 2010, 9:43 pm

Fine, voici quelque chose Ive créé qui m'a pris 2 minutes :lol:
PHP Code: [ Select ]
<?php
function ropasci($pl1, $pl2)
{
    if($pl1 == 'rock' && $pl2 == 'paper')
    {
        return 'Player 2 wins: paper over rock';
    }
    elseif($pl1 == 'rock' && $pl2 == 'scissors')
    {
        return 'Player 1 wins: Rock over scissors';
    }
    elseif($pl1 == 'paper' && $pl2 == 'rock')
    {
        return 'Player 1 wins: paper over rock';
    }
    elseif($pl1 == 'paper' && $pl2 == 'scissors')
    {
        return 'Player 2 wins: Scissors over paper';
    }
    elseif($pl1 == 'scissors' && $pl2 == 'rock')
    {
        return 'Player 2 wins: Rock over scissors';
    }
    elseif($pl1 == 'scissors' && $pl2 == 'paper')
    {
        return 'Player 1 wins: Scissors over paper';
    }
    elseif($pl1 == $pl2)
    {
        return "Draw: $pl1 equals $pl2";
    }
    else
    {
        return false;
    }
}
?>
  1. <?php
  2. function ropasci($pl1, $pl2)
  3. {
  4.     if($pl1 == 'rock' && $pl2 == 'paper')
  5.     {
  6.         return 'Player 2 wins: paper over rock';
  7.     }
  8.     elseif($pl1 == 'rock' && $pl2 == 'scissors')
  9.     {
  10.         return 'Player 1 wins: Rock over scissors';
  11.     }
  12.     elseif($pl1 == 'paper' && $pl2 == 'rock')
  13.     {
  14.         return 'Player 1 wins: paper over rock';
  15.     }
  16.     elseif($pl1 == 'paper' && $pl2 == 'scissors')
  17.     {
  18.         return 'Player 2 wins: Scissors over paper';
  19.     }
  20.     elseif($pl1 == 'scissors' && $pl2 == 'rock')
  21.     {
  22.         return 'Player 2 wins: Rock over scissors';
  23.     }
  24.     elseif($pl1 == 'scissors' && $pl2 == 'paper')
  25.     {
  26.         return 'Player 1 wins: Scissors over paper';
  27.     }
  28.     elseif($pl1 == $pl2)
  29.     {
  30.         return "Draw: $pl1 equals $pl2";
  31.     }
  32.     else
  33.     {
  34.         return false;
  35.     }
  36. }
  37. ?>
"Bring forth therefore fruits meet for repentance:" Matthew 3:8
  • spork
  • Brewmaster
  • Silver Member
  • Avatar de l’utilisateur
  • Inscription: Sep 22, 2003
  • Messages: 6129
  • Loc: Seattle, WA
  • Status: Offline

Message Décembre 5th, 2010, 2:10 pm

HASKELL Code: [ Select ]
winner :: String -> String -> String
winner p1 p2
  | p1c - p2c == 1 || p1c - p2c == -2 = p1
  | p1c == p2c = "Tie"
  | otherwise p2
  where
    p1c = rand 2
    p2c = rand 2
  1. winner :: String -> String -> String
  2. winner p1 p2
  3.   | p1c - p2c == 1 || p1c - p2c == -2 = p1
  4.   | p1c == p2c = "Tie"
  5.   | otherwise p2
  6.   where
  7.     p1c = rand 2
  8.     p2c = rand 2
The Beer Monocle. Classy.
  • SpooF
  • ٩๏̯͡๏۶
  • Bronze Member
  • Avatar de l’utilisateur
  • Inscription: Mai 22, 2004
  • Messages: 3415
  • Loc: Richland, WA
  • Status: Offline

Message Décembre 6th, 2010, 10:28 am

C'est ce que je suis venu avec après un certain temps

Code: [ Select ]
function name(p1,p2) {
  return (3+p1-p2) % 3;
}
  1. function name(p1,p2) {
  2.   return (3+p1-p2) % 3;
  3. }


Retourne "1" - Un joueur a gagné.
Retourne "2" - Lecteur deux a gagné.
Retourne "3" - égalité entre les joueurs.

Lorsque P1, P2 sont les suivants:
0 - Rock
1 - Livre
2 - Ciseaux
#define NULL (::rand() % 2)
  • spork
  • Brewmaster
  • Silver Member
  • Avatar de l’utilisateur
  • Inscription: Sep 22, 2003
  • Messages: 6129
  • Loc: Seattle, WA
  • Status: Offline

Message Décembre 6th, 2010, 11:30 am

Oh, j'ai lu la question tout à fait tort. J'ai pris deux noms de joueurs et a généré des valeurs aléatoires pour la «lance». :lol:
The Beer Monocle. Classy.
  • joebert
  • Sledgehammer
  • Genius
  • No Avatar
  • Inscription: Fév 10, 2004
  • Messages: 13455
  • Loc: Florida
  • Status: Offline

Message Décembre 6th, 2010, 4:35 pm

Thats jolie nappe frauduleux. :D Je lui ai donné un tourbillon avec les opérateurs bit à bit, mais je n'ai pas partout avec eux.
Strong with this one, the sudo is.

Afficher de l'information

  • Total des messages de ce sujet: 8 messages
  • Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 188 invités
  • Vous ne pouvez pas poster de nouveaux sujets
  • Vous ne pouvez pas répondre aux sujets
  • Vous ne pouvez pas éditer vos messages
  • Vous ne pouvez pas supprimer vos messages
  • Vous ne pouvez pas joindre des fichiers
 
 

© 2011 Unmelted, LLC. Ozzu® est une marque déposée de Unmelted, LLC