602 lines
27 KiB
HTML
602 lines
27 KiB
HTML
<!DOCTYPE html>
|
||
|
||
<html lang="en">
|
||
<head>
|
||
<meta charset="UTF-8">
|
||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||
|
||
<title>class Game - RDoc Documentation</title>
|
||
|
||
<meta name="keywords" content="ruby,class,Game">
|
||
|
||
<meta name="description" content="class Game: Gère le déroulement et les règles d'une partie d'Écarté.">
|
||
|
||
|
||
<script type="text/javascript">
|
||
var rdoc_rel_prefix = "./";
|
||
var index_rel_prefix = "./";
|
||
</script>
|
||
|
||
<script src="./js/navigation.js" defer></script>
|
||
<script src="./js/search.js" defer></script>
|
||
<script src="./js/search_index.js" defer></script>
|
||
<script src="./js/searcher.js" defer></script>
|
||
<script src="./js/darkfish.js" defer></script>
|
||
|
||
<link href="./css/fonts.css" rel="stylesheet">
|
||
<link href="./css/rdoc.css" rel="stylesheet">
|
||
|
||
|
||
<body id="top" role="document" class="class">
|
||
<div id="navigation-toggle" role="button" tabindex="0" aria-label="Toggle sidebar" aria-expanded="true" aria-controls="navigation">
|
||
<span aria-hidden="true">☰</span>
|
||
</div>
|
||
|
||
|
||
<nav id="navigation" role="navigation">
|
||
<div id="project-navigation">
|
||
<div id="home-section" role="region" title="Quick navigation" class="nav-section">
|
||
<h2>
|
||
<a href="./index.html" rel="home">Home</a>
|
||
</h2>
|
||
|
||
<div id="table-of-contents-navigation">
|
||
<a href="./table_of_contents.html#pages">Pages</a>
|
||
<a href="./table_of_contents.html#classes">Classes</a>
|
||
<a href="./table_of_contents.html#methods">Methods</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div id="search-section" role="search" class="project-section initially-hidden">
|
||
<form action="#" method="get" accept-charset="utf-8">
|
||
<div id="search-field-wrapper">
|
||
<input id="search-field" role="combobox" aria-label="Search"
|
||
aria-autocomplete="list" aria-controls="search-results"
|
||
type="text" name="search" placeholder="Search (/) for a class, method, ..." spellcheck="false"
|
||
title="Type to search, Up and Down to navigate, Enter to load">
|
||
</div>
|
||
|
||
<ul id="search-results" aria-label="Search Results"
|
||
aria-busy="false" aria-expanded="false"
|
||
aria-atomic="false" class="initially-hidden"></ul>
|
||
</form>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
|
||
<div id="parent-class-section" class="nav-section">
|
||
<h3>Ancestors</h3>
|
||
<ul><li>Object</li></ul>
|
||
</div>
|
||
|
||
|
||
|
||
|
||
<div class="nav-section">
|
||
<h3>Class Methods</h3>
|
||
<ul class="link-list" role="directory">
|
||
<li ><a href="#method-c-new">new</a></li>
|
||
</ul>
|
||
</div>
|
||
|
||
|
||
|
||
<div class="nav-section">
|
||
<h3>Instance Methods</h3>
|
||
<ul class="link-list" role="directory">
|
||
<li ><a href="#method-i-change_dealer">change_dealer</a></li>
|
||
<li ><a href="#method-i-deal">deal</a></li>
|
||
<li ><a href="#method-i-determine_dealer">determine_dealer</a></li>
|
||
<li ><a href="#method-i-game_winner">game_winner</a></li>
|
||
<li ><a href="#method-i-other_player">other_player</a></li>
|
||
<li ><a href="#method-i-play">play</a></li>
|
||
<li ><a href="#method-i-play_trick">play_trick</a></li>
|
||
<li ><a href="#method-i-stock">stock</a></li>
|
||
<li ><a href="#method-i-valid_follow_card-3F">valid_follow_card?</a></li>
|
||
</ul>
|
||
</div>
|
||
|
||
|
||
|
||
<footer id="validator-badges" role="contentinfo">
|
||
<p><a href="https://validator.w3.org/check/referer">Validate</a>
|
||
<p>Generated by <a href="https://ruby.github.io/rdoc/">RDoc</a> 6.14.0.
|
||
<p>Based on <a href="http://deveiate.org/projects/Darkfish-RDoc/">Darkfish</a> by <a href="http://deveiate.org">Michael Granger</a>.
|
||
</footer>
|
||
|
||
</nav>
|
||
|
||
<main role="main" aria-labelledby="class-Game">
|
||
|
||
|
||
|
||
<h1 id="class-Game" class="anchor-link class">
|
||
class Game
|
||
</h1>
|
||
|
||
<section class="description">
|
||
|
||
<p>Gère le déroulement et les règles d’une partie d’Écarté.</p>
|
||
|
||
</section>
|
||
|
||
<section id="5Buntitled-5D" class="documentation-section anchor-link">
|
||
|
||
|
||
|
||
<section class="attribute-method-details" class="method-section">
|
||
<header>
|
||
<h3>Attributes</h3>
|
||
</header>
|
||
|
||
<div id="attribute-i-dealer" class="method-detail anchor-link">
|
||
<div class="method-heading attribute-method-heading">
|
||
<a href="#attribute-i-dealer" title="Link to this attribute">
|
||
<span class="method-name">dealer</span>
|
||
<span class="attribute-access-type">[R]</span>
|
||
</a>
|
||
</div>
|
||
|
||
<div class="method-description">
|
||
|
||
</div>
|
||
</div>
|
||
<div id="attribute-i-non_dealer" class="method-detail anchor-link">
|
||
<div class="method-heading attribute-method-heading">
|
||
<a href="#attribute-i-non_dealer" title="Link to this attribute">
|
||
<span class="method-name">non_dealer</span>
|
||
<span class="attribute-access-type">[R]</span>
|
||
</a>
|
||
</div>
|
||
|
||
<div class="method-description">
|
||
|
||
</div>
|
||
</div>
|
||
<div id="attribute-i-player1" class="method-detail anchor-link">
|
||
<div class="method-heading attribute-method-heading">
|
||
<a href="#attribute-i-player1" title="Link to this attribute">
|
||
<span class="method-name">player1</span>
|
||
<span class="attribute-access-type">[R]</span>
|
||
</a>
|
||
</div>
|
||
|
||
<div class="method-description">
|
||
|
||
</div>
|
||
</div>
|
||
<div id="attribute-i-player2" class="method-detail anchor-link">
|
||
<div class="method-heading attribute-method-heading">
|
||
<a href="#attribute-i-player2" title="Link to this attribute">
|
||
<span class="method-name">player2</span>
|
||
<span class="attribute-access-type">[R]</span>
|
||
</a>
|
||
</div>
|
||
|
||
<div class="method-description">
|
||
|
||
</div>
|
||
</div>
|
||
<div id="attribute-i-trick_winner" class="method-detail anchor-link">
|
||
<div class="method-heading attribute-method-heading">
|
||
<a href="#attribute-i-trick_winner" title="Link to this attribute">
|
||
<span class="method-name">trick_winner</span>
|
||
<span class="attribute-access-type">[R]</span>
|
||
</a>
|
||
</div>
|
||
|
||
<div class="method-description">
|
||
|
||
</div>
|
||
</div>
|
||
<div id="attribute-i-trump_suit" class="method-detail anchor-link">
|
||
<div class="method-heading attribute-method-heading">
|
||
<a href="#attribute-i-trump_suit" title="Link to this attribute">
|
||
<span class="method-name">trump_suit</span>
|
||
<span class="attribute-access-type">[R]</span>
|
||
</a>
|
||
</div>
|
||
|
||
<div class="method-description">
|
||
|
||
</div>
|
||
</div>
|
||
<div id="attribute-i-upcard" class="method-detail anchor-link">
|
||
<div class="method-heading attribute-method-heading">
|
||
<a href="#attribute-i-upcard" title="Link to this attribute">
|
||
<span class="method-name">upcard</span>
|
||
<span class="attribute-access-type">[R]</span>
|
||
</a>
|
||
</div>
|
||
|
||
<div class="method-description">
|
||
|
||
</div>
|
||
</div>
|
||
</section>
|
||
|
||
|
||
<section id="public-class-5Buntitled-5D-method-details" class="method-section anchor-link">
|
||
<header>
|
||
<h3>Public Class Methods</h3>
|
||
</header>
|
||
|
||
<div id="method-c-new" class="method-detail anchor-link ">
|
||
<div class="method-header">
|
||
<div class="method-heading">
|
||
<a href="#method-c-new" title="Link to this method">
|
||
<span class="method-name">new</span>
|
||
<span class="method-args">(player_name1, player_name2)</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="method-controls">
|
||
<details class="method-source-toggle">
|
||
<summary>Source</summary>
|
||
</details>
|
||
</div>
|
||
|
||
<div class="method-description">
|
||
<div class="method-source-code" id="new-source">
|
||
<pre><span class="ruby-comment"># File lib/game.rb, line 10</span>
|
||
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">initialize</span>(<span class="ruby-identifier">player_name1</span>, <span class="ruby-identifier">player_name2</span>)
|
||
<span class="ruby-ivar">@deck</span> = <span class="ruby-constant">Deck</span>.<span class="ruby-identifier">new</span>
|
||
<span class="ruby-ivar">@player1</span> = <span class="ruby-constant">Player</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">player_name1</span>)
|
||
<span class="ruby-ivar">@player2</span> = <span class="ruby-constant">Player</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">player_name2</span>)
|
||
<span class="ruby-ivar">@dealer</span> = <span class="ruby-keyword">nil</span>
|
||
<span class="ruby-ivar">@non_dealer</span> = <span class="ruby-keyword">nil</span>
|
||
<span class="ruby-ivar">@upcard</span> = <span class="ruby-keyword">nil</span>
|
||
<span class="ruby-ivar">@trump_suit</span> = <span class="ruby-keyword">nil</span>
|
||
<span class="ruby-ivar">@trick_winner</span> = <span class="ruby-keyword">nil</span>
|
||
<span class="ruby-ivar">@ui</span> = <span class="ruby-constant">TerminalUI</span>.<span class="ruby-identifier">new</span>
|
||
<span class="ruby-keyword">end</span></pre>
|
||
</div>
|
||
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</section>
|
||
|
||
<section id="public-instance-5Buntitled-5D-method-details" class="method-section anchor-link">
|
||
<header>
|
||
<h3>Public Instance Methods</h3>
|
||
</header>
|
||
|
||
<div id="method-i-change_dealer" class="method-detail anchor-link ">
|
||
<div class="method-header">
|
||
<div class="method-heading">
|
||
<a href="#method-i-change_dealer" title="Link to this method">
|
||
<span class="method-name">change_dealer</span>
|
||
<span class="method-args">()</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="method-controls">
|
||
<details class="method-source-toggle">
|
||
<summary>Source</summary>
|
||
</details>
|
||
</div>
|
||
|
||
<div class="method-description">
|
||
<div class="method-source-code" id="change_dealer-source">
|
||
<pre><span class="ruby-comment"># File lib/game.rb, line 41</span>
|
||
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">change_dealer</span>
|
||
<span class="ruby-identifier">old_dealer</span> = <span class="ruby-ivar">@dealer</span>
|
||
<span class="ruby-ivar">@dealer</span> = <span class="ruby-ivar">@non_dealer</span>
|
||
<span class="ruby-ivar">@non_dealer</span> = <span class="ruby-identifier">old_dealer</span>
|
||
<span class="ruby-keyword">end</span></pre>
|
||
</div>
|
||
<p>Échange les rôles de donneur et de non-donneur.</p>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
<div id="method-i-deal" class="method-detail anchor-link ">
|
||
<div class="method-header">
|
||
<div class="method-heading">
|
||
<a href="#method-i-deal" title="Link to this method">
|
||
<span class="method-name">deal</span>
|
||
<span class="method-args">()</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="method-controls">
|
||
<details class="method-source-toggle">
|
||
<summary>Source</summary>
|
||
</details>
|
||
</div>
|
||
|
||
<div class="method-description">
|
||
<div class="method-source-code" id="deal-source">
|
||
<pre><span class="ruby-comment"># File lib/game.rb, line 48</span>
|
||
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">deal</span>
|
||
<span class="ruby-ivar">@player1</span>.<span class="ruby-identifier">clear_hand</span>
|
||
<span class="ruby-ivar">@player2</span>.<span class="ruby-identifier">clear_hand</span>
|
||
|
||
<span class="ruby-ivar">@deck</span> = <span class="ruby-constant">Deck</span>.<span class="ruby-identifier">new</span>
|
||
<span class="ruby-ivar">@deck</span>.<span class="ruby-identifier">shuffle</span>
|
||
|
||
<span class="ruby-value">5</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span>
|
||
<span class="ruby-ivar">@non_dealer</span>.<span class="ruby-identifier">receive</span>(<span class="ruby-ivar">@deck</span>.<span class="ruby-identifier">draw</span>)
|
||
<span class="ruby-ivar">@dealer</span>.<span class="ruby-identifier">receive</span>(<span class="ruby-ivar">@deck</span>.<span class="ruby-identifier">draw</span>)
|
||
<span class="ruby-keyword">end</span>
|
||
<span class="ruby-ivar">@upcard</span> = <span class="ruby-ivar">@deck</span>.<span class="ruby-identifier">draw</span>
|
||
<span class="ruby-ivar">@trump_suit</span> = <span class="ruby-ivar">@upcard</span>.<span class="ruby-identifier">suit</span>
|
||
<span class="ruby-keyword">end</span></pre>
|
||
</div>
|
||
<p>Distribue les cartes et pose la retourne.</p>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
<div id="method-i-determine_dealer" class="method-detail anchor-link ">
|
||
<div class="method-header">
|
||
<div class="method-heading">
|
||
<a href="#method-i-determine_dealer" title="Link to this method">
|
||
<span class="method-name">determine_dealer</span>
|
||
<span class="method-args">()</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="method-controls">
|
||
<details class="method-source-toggle">
|
||
<summary>Source</summary>
|
||
</details>
|
||
</div>
|
||
|
||
<div class="method-description">
|
||
<div class="method-source-code" id="determine_dealer-source">
|
||
<pre><span class="ruby-comment"># File lib/game.rb, line 23</span>
|
||
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">determine_dealer</span>
|
||
<span class="ruby-ivar">@deck</span>.<span class="ruby-identifier">shuffle</span>
|
||
|
||
<span class="ruby-keyword">while</span> <span class="ruby-ivar">@dealer</span>.<span class="ruby-identifier">nil?</span>
|
||
<span class="ruby-identifier">card1</span> = <span class="ruby-ivar">@deck</span>.<span class="ruby-identifier">cards</span>[<span class="ruby-identifier">rand</span>(<span class="ruby-value">2</span><span class="ruby-operator">..</span><span class="ruby-value">30</span>) <span class="ruby-operator">-</span> <span class="ruby-value">1</span>]
|
||
<span class="ruby-identifier">card2</span> = <span class="ruby-ivar">@deck</span>.<span class="ruby-identifier">cards</span>[<span class="ruby-identifier">rand</span>(<span class="ruby-value">2</span><span class="ruby-operator">..</span><span class="ruby-value">30</span>) <span class="ruby-operator">-</span> <span class="ruby-value">1</span>]
|
||
|
||
<span class="ruby-keyword">if</span> <span class="ruby-identifier">card1</span>.<span class="ruby-identifier">strength</span> <span class="ruby-operator">></span> <span class="ruby-identifier">card2</span>.<span class="ruby-identifier">strength</span>
|
||
<span class="ruby-ivar">@dealer</span> = <span class="ruby-ivar">@player1</span>
|
||
<span class="ruby-ivar">@non_dealer</span> = <span class="ruby-ivar">@player2</span>
|
||
<span class="ruby-keyword">elsif</span> <span class="ruby-identifier">card2</span>.<span class="ruby-identifier">strength</span> <span class="ruby-operator">></span> <span class="ruby-identifier">card1</span>.<span class="ruby-identifier">strength</span>
|
||
<span class="ruby-ivar">@dealer</span> = <span class="ruby-ivar">@player2</span>
|
||
<span class="ruby-ivar">@non_dealer</span> = <span class="ruby-ivar">@player1</span>
|
||
<span class="ruby-keyword">end</span>
|
||
<span class="ruby-keyword">end</span>
|
||
<span class="ruby-keyword">end</span></pre>
|
||
</div>
|
||
<p>Simule une coupe pour déterminer quel joueur sera le donneur.</p>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
<div id="method-i-game_winner" class="method-detail anchor-link ">
|
||
<div class="method-header">
|
||
<div class="method-heading">
|
||
<a href="#method-i-game_winner" title="Link to this method">
|
||
<span class="method-name">game_winner</span>
|
||
<span class="method-args">()</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="method-controls">
|
||
<details class="method-source-toggle">
|
||
<summary>Source</summary>
|
||
</details>
|
||
</div>
|
||
|
||
<div class="method-description">
|
||
<div class="method-source-code" id="game_winner-source">
|
||
<pre><span class="ruby-comment"># File lib/game.rb, line 123</span>
|
||
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">game_winner</span>
|
||
<span class="ruby-keyword">if</span> <span class="ruby-ivar">@player1</span>.<span class="ruby-identifier">score</span> <span class="ruby-operator">></span> <span class="ruby-ivar">@player2</span>.<span class="ruby-identifier">score</span>
|
||
<span class="ruby-ivar">@player1</span>
|
||
<span class="ruby-keyword">elsif</span> <span class="ruby-ivar">@player1</span>.<span class="ruby-identifier">score</span> <span class="ruby-operator"><</span> <span class="ruby-ivar">@player2</span>.<span class="ruby-identifier">score</span>
|
||
<span class="ruby-ivar">@player2</span>
|
||
<span class="ruby-keyword">else</span>
|
||
<span class="ruby-keyword">nil</span>
|
||
<span class="ruby-keyword">end</span>
|
||
<span class="ruby-keyword">end</span></pre>
|
||
</div>
|
||
<p>Retourne le joueur ayant le meilleur score.</p>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
<div id="method-i-other_player" class="method-detail anchor-link ">
|
||
<div class="method-header">
|
||
<div class="method-heading">
|
||
<a href="#method-i-other_player" title="Link to this method">
|
||
<span class="method-name">other_player</span>
|
||
<span class="method-args">(player)</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="method-controls">
|
||
<details class="method-source-toggle">
|
||
<summary>Source</summary>
|
||
</details>
|
||
</div>
|
||
|
||
<div class="method-description">
|
||
<div class="method-source-code" id="other_player-source">
|
||
<pre><span class="ruby-comment"># File lib/game.rb, line 105</span>
|
||
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">other_player</span>(<span class="ruby-identifier">player</span>)
|
||
<span class="ruby-identifier">player</span> <span class="ruby-operator">==</span> <span class="ruby-ivar">@player1</span> <span class="ruby-operator">?</span> <span class="ruby-ivar">@player2</span> <span class="ruby-operator">:</span> <span class="ruby-ivar">@player1</span>
|
||
<span class="ruby-keyword">end</span></pre>
|
||
</div>
|
||
<p>Retourne l’autre joueur.</p>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
<div id="method-i-play" class="method-detail anchor-link ">
|
||
<div class="method-header">
|
||
<div class="method-heading">
|
||
<a href="#method-i-play" title="Link to this method">
|
||
<span class="method-name">play</span>
|
||
<span class="method-args">()</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="method-controls">
|
||
<details class="method-source-toggle">
|
||
<summary>Source</summary>
|
||
</details>
|
||
</div>
|
||
|
||
<div class="method-description">
|
||
<div class="method-source-code" id="play-source">
|
||
<pre><span class="ruby-comment"># File lib/game.rb, line 110</span>
|
||
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">play</span>
|
||
<span class="ruby-identifier">lead_player</span> = <span class="ruby-ivar">@non_dealer</span>
|
||
<span class="ruby-identifier">follow_player</span> = <span class="ruby-ivar">@dealer</span>
|
||
|
||
<span class="ruby-value">5</span>.<span class="ruby-identifier">times</span> <span class="ruby-keyword">do</span>
|
||
<span class="ruby-identifier">play_trick</span>(<span class="ruby-identifier">lead_player</span>, <span class="ruby-identifier">follow_player</span>)
|
||
|
||
<span class="ruby-identifier">lead_player</span> = <span class="ruby-ivar">@trick_winner</span>
|
||
<span class="ruby-identifier">follow_player</span> = <span class="ruby-identifier">other_player</span>(<span class="ruby-identifier">lead_player</span>)
|
||
<span class="ruby-keyword">end</span>
|
||
<span class="ruby-keyword">end</span></pre>
|
||
</div>
|
||
<p>Joue une partie.</p>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
<div id="method-i-play_trick" class="method-detail anchor-link ">
|
||
<div class="method-header">
|
||
<div class="method-heading">
|
||
<a href="#method-i-play_trick" title="Link to this method">
|
||
<span class="method-name">play_trick</span>
|
||
<span class="method-args">(lead_player, follow_player)</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="method-controls">
|
||
<details class="method-source-toggle">
|
||
<summary>Source</summary>
|
||
</details>
|
||
</div>
|
||
|
||
<div class="method-description">
|
||
<div class="method-source-code" id="play_trick-source">
|
||
<pre><span class="ruby-comment"># File lib/game.rb, line 80</span>
|
||
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">play_trick</span>(<span class="ruby-identifier">lead_player</span>, <span class="ruby-identifier">follow_player</span>)
|
||
<span class="ruby-identifier">lead_card</span> = <span class="ruby-ivar">@ui</span>.<span class="ruby-identifier">choose_card</span>(<span class="ruby-identifier">lead_player</span>)
|
||
<span class="ruby-identifier">follow_card</span> = <span class="ruby-ivar">@ui</span>.<span class="ruby-identifier">choose_card</span>(<span class="ruby-identifier">follow_player</span>)
|
||
|
||
<span class="ruby-keyword">until</span> <span class="ruby-identifier">valid_follow_card?</span>(<span class="ruby-identifier">follow_player</span>, <span class="ruby-identifier">lead_card</span>, <span class="ruby-identifier">follow_card</span>)
|
||
<span class="ruby-ivar">@ui</span>.<span class="ruby-identifier">display_wrong_card</span>
|
||
<span class="ruby-identifier">follow_card</span> = <span class="ruby-ivar">@ui</span>.<span class="ruby-identifier">choose_card</span>(<span class="ruby-identifier">follow_player</span>)
|
||
<span class="ruby-keyword">end</span>
|
||
|
||
<span class="ruby-identifier">lead_player</span>.<span class="ruby-identifier">play</span>(<span class="ruby-identifier">lead_card</span>)
|
||
<span class="ruby-identifier">follow_player</span>.<span class="ruby-identifier">play</span>(<span class="ruby-identifier">follow_card</span>)
|
||
|
||
<span class="ruby-keyword">if</span> <span class="ruby-identifier">lead_card</span>.<span class="ruby-identifier">suit</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">follow_card</span>.<span class="ruby-identifier">suit</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">follow_card</span>.<span class="ruby-identifier">suit</span> <span class="ruby-operator">!=</span> <span class="ruby-ivar">@trump_suit</span>
|
||
<span class="ruby-ivar">@trick_winner</span> = <span class="ruby-identifier">lead_player</span>
|
||
<span class="ruby-keyword">elsif</span> <span class="ruby-identifier">lead_card</span>.<span class="ruby-identifier">suit</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">follow_card</span>.<span class="ruby-identifier">suit</span> <span class="ruby-operator">&&</span> <span class="ruby-identifier">lead_card</span>.<span class="ruby-identifier">strength</span> <span class="ruby-operator">></span> <span class="ruby-identifier">follow_card</span>.<span class="ruby-identifier">strength</span>
|
||
<span class="ruby-ivar">@trick_winner</span> = <span class="ruby-identifier">lead_player</span>
|
||
<span class="ruby-keyword">else</span>
|
||
<span class="ruby-ivar">@trick_winner</span> = <span class="ruby-identifier">follow_player</span>
|
||
<span class="ruby-keyword">end</span>
|
||
|
||
<span class="ruby-ivar">@trick_winner</span>.<span class="ruby-identifier">add_point</span>
|
||
<span class="ruby-ivar">@ui</span>.<span class="ruby-identifier">display_trick_winner</span>(<span class="ruby-ivar">@trick_winner</span>)
|
||
<span class="ruby-keyword">end</span></pre>
|
||
</div>
|
||
<p>Joue un pli.</p>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
<div id="method-i-stock" class="method-detail anchor-link ">
|
||
<div class="method-header">
|
||
<div class="method-heading">
|
||
<a href="#method-i-stock" title="Link to this method">
|
||
<span class="method-name">stock</span>
|
||
<span class="method-args">()</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="method-controls">
|
||
<details class="method-source-toggle">
|
||
<summary>Source</summary>
|
||
</details>
|
||
</div>
|
||
|
||
<div class="method-description">
|
||
<div class="method-source-code" id="stock-source">
|
||
<pre><span class="ruby-comment"># File lib/game.rb, line 64</span>
|
||
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">stock</span>
|
||
<span class="ruby-ivar">@deck</span>.<span class="ruby-identifier">cards</span>
|
||
<span class="ruby-keyword">end</span></pre>
|
||
</div>
|
||
<p>Retourne les cartes restantes dans le talon.</p>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
<div id="method-i-valid_follow_card-3F" class="method-detail anchor-link ">
|
||
<div class="method-header">
|
||
<div class="method-heading">
|
||
<a href="#method-i-valid_follow_card-3F" title="Link to this method">
|
||
<span class="method-name">valid_follow_card?</span>
|
||
<span class="method-args">(follow_player, lead_card, follow_card)</span>
|
||
</a>
|
||
</div>
|
||
</div>
|
||
|
||
<div class="method-controls">
|
||
<details class="method-source-toggle">
|
||
<summary>Source</summary>
|
||
</details>
|
||
</div>
|
||
|
||
<div class="method-description">
|
||
<div class="method-source-code" id="valid_follow_card-3F-source">
|
||
<pre><span class="ruby-comment"># File lib/game.rb, line 69</span>
|
||
<span class="ruby-keyword">def</span> <span class="ruby-identifier ruby-title">valid_follow_card?</span>(<span class="ruby-identifier">follow_player</span>, <span class="ruby-identifier">lead_card</span>, <span class="ruby-identifier">follow_card</span>)
|
||
<span class="ruby-keyword">if</span> <span class="ruby-identifier">follow_card</span>.<span class="ruby-identifier">suit</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">lead_card</span>.<span class="ruby-identifier">suit</span>
|
||
<span class="ruby-keyword">true</span>
|
||
<span class="ruby-keyword">elsif</span> <span class="ruby-identifier">follow_player</span>.<span class="ruby-identifier">hand</span>.<span class="ruby-identifier">any?</span> { <span class="ruby-operator">|</span><span class="ruby-identifier">card</span><span class="ruby-operator">|</span> <span class="ruby-identifier">card</span>.<span class="ruby-identifier">suit</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">lead_card</span>.<span class="ruby-identifier">suit</span> }
|
||
<span class="ruby-keyword">false</span>
|
||
<span class="ruby-keyword">else</span>
|
||
<span class="ruby-keyword">true</span>
|
||
<span class="ruby-keyword">end</span>
|
||
<span class="ruby-keyword">end</span></pre>
|
||
</div>
|
||
<p>Vérifie si le coup du second joueur respecte les règles.</p>
|
||
</div>
|
||
|
||
|
||
</div>
|
||
|
||
</section>
|
||
|
||
</section>
|
||
</main>
|
||
|