diff --git a/Pendu/Base.lproj/Game.storyboard b/Pendu/Base.lproj/Game.storyboard index 9d448a3cb797f3bee66175eb9aeab6144b83901c..4895db58ab12d982faf40553b66d22103104116e 100644 --- a/Pendu/Base.lproj/Game.storyboard +++ b/Pendu/Base.lproj/Game.storyboard @@ -403,6 +403,12 @@ <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <nil key="highlightedColor"/> </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" ambiguous="YES" text="Label" textAlignment="natural" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="z7p-BQ-fzG"> + <rect key="frame" x="335" y="71" width="42" height="21"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> </subviews> <viewLayoutGuide key="safeArea" id="6Tk-OE-BBY"/> <color key="backgroundColor" systemColor="systemBackgroundColor"/> @@ -413,6 +419,7 @@ <constraint firstItem="2XB-iI-dfu" firstAttribute="top" secondItem="6Tk-OE-BBY" secondAttribute="top" constant="586" id="GDi-3N-WOL"/> <constraint firstItem="2XB-iI-dfu" firstAttribute="leading" secondItem="6Tk-OE-BBY" secondAttribute="leading" constant="18" id="H7Y-qR-xN4"/> <constraint firstItem="z7N-Ws-jLx" firstAttribute="trailing" secondItem="2XB-iI-dfu" secondAttribute="trailing" id="bRt-Cx-tpa"/> + <constraint firstItem="z7p-BQ-fzG" firstAttribute="width" secondItem="8bC-Xf-vdC" secondAttribute="height" multiplier="3:64" id="fYv-Gn-rTp"/> <constraint firstItem="2XB-iI-dfu" firstAttribute="centerX" secondItem="8bC-Xf-vdC" secondAttribute="centerX" id="k43-6H-xEG"/> <constraint firstItem="z7N-Ws-jLx" firstAttribute="leading" secondItem="8bC-Xf-vdC" secondAttribute="leadingMargin" id="v2G-KO-OfQ"/> </constraints> diff --git a/Pendu/Base.lproj/Main.storyboard b/Pendu/Base.lproj/Main.storyboard index a5c7b58ab0f39e98059fcae669d907a5cbbd0420..7d187bf9dfa8d65819f7761ce7d13b6e814851df 100644 --- a/Pendu/Base.lproj/Main.storyboard +++ b/Pendu/Base.lproj/Main.storyboard @@ -108,7 +108,7 @@ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="K1J-8m-J9K"> <rect key="frame" x="0.0" y="0.0" width="37" height="31"/> <constraints> - <constraint firstAttribute="width" constant="37" id="nU8-EW-BQp"/> + <constraint firstAttribute="width" constant="37" id="gd8-7P-C88"/> </constraints> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <buttonConfiguration key="configuration" style="filled" title="A"> @@ -121,7 +121,7 @@ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="3y4-VD-M0Z"> <rect key="frame" x="43" y="0.0" width="36.5" height="31"/> <constraints> - <constraint firstAttribute="width" constant="36.5" id="gwE-ee-OW4"/> + <constraint firstAttribute="width" constant="36.5" id="7jw-dM-OQN"/> </constraints> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <state key="normal" title="Button"/> @@ -135,7 +135,7 @@ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="A5I-Mg-2Ou"> <rect key="frame" x="85.5" y="0.0" width="37" height="31"/> <constraints> - <constraint firstAttribute="width" constant="37" id="08g-4b-Pf0"/> + <constraint firstAttribute="width" constant="37" id="a2K-GN-58Q"/> </constraints> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <state key="normal" title="Button"/> @@ -149,7 +149,7 @@ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="zO4-1x-xRr"> <rect key="frame" x="128.5" y="0.0" width="36.5" height="31"/> <constraints> - <constraint firstAttribute="width" constant="36.5" id="Au1-0z-JiC"/> + <constraint firstAttribute="width" constant="36.5" id="SIQ-A2-etP"/> </constraints> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <state key="normal" title="Button"/> @@ -174,7 +174,7 @@ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="dUl-j1-UPC"> <rect key="frame" x="213" y="0.0" width="36.5" height="31"/> <constraints> - <constraint firstAttribute="width" constant="36.5" id="wNM-kd-Ozm"/> + <constraint firstAttribute="width" constant="36.5" id="5Pv-ks-nnB"/> </constraints> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <state key="normal" title="Button"/> @@ -188,7 +188,7 @@ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="eT3-eI-h6F"> <rect key="frame" x="255.5" y="0.0" width="37" height="31"/> <constraints> - <constraint firstAttribute="width" constant="37" id="rQg-Xn-Ap9"/> + <constraint firstAttribute="width" constant="37" id="sY3-rd-UWP"/> </constraints> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <state key="normal" title="Button"/> @@ -202,7 +202,7 @@ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="3Vi-3e-hIm"> <rect key="frame" x="298.5" y="0.0" width="36.5" height="31"/> <constraints> - <constraint firstAttribute="width" constant="36.5" id="T3K-oO-Awp"/> + <constraint firstAttribute="width" constant="36.5" id="SCI-TO-f77"/> </constraints> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <state key="normal" title="Button"/> @@ -226,8 +226,8 @@ </button> </subviews> <constraints> - <constraint firstItem="K1J-8m-J9K" firstAttribute="baseline" secondItem="3y4-VD-M0Z" secondAttribute="firstBaseline" id="9Mq-sP-wDV"/> - <constraint firstItem="VI7-Hb-gxf" firstAttribute="centerX" secondItem="Lxn-jn-iUp" secondAttribute="centerX" id="IW0-l5-udR"/> + <constraint firstItem="VI7-Hb-gxf" firstAttribute="centerX" secondItem="Lxn-jn-iUp" secondAttribute="centerX" id="DLm-Wh-GOE"/> + <constraint firstItem="K1J-8m-J9K" firstAttribute="baseline" secondItem="3y4-VD-M0Z" secondAttribute="firstBaseline" id="xzf-b4-DuM"/> </constraints> </stackView> <stackView opaque="NO" contentMode="scaleToFill" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="iGY-z0-cnq"> @@ -236,7 +236,7 @@ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="VcP-Ew-YEz"> <rect key="frame" x="0.0" y="0.0" width="35" height="31"/> <constraints> - <constraint firstAttribute="width" constant="35" id="sUt-Dd-SGf"/> + <constraint firstAttribute="width" constant="35" id="VJa-PE-55l"/> </constraints> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <state key="normal" title="Button"/> @@ -250,7 +250,7 @@ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="5oN-oV-uOo"> <rect key="frame" x="43" y="0.0" width="35" height="31"/> <constraints> - <constraint firstAttribute="width" constant="35" id="vyp-KO-f6t"/> + <constraint firstAttribute="width" constant="35" id="KWo-wL-9bp"/> </constraints> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <state key="normal" title="Button"/> @@ -262,7 +262,10 @@ </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="pbT-fO-DaV"> - <rect key="frame" x="86" y="0.0" width="34" height="31"/> + <rect key="frame" x="86" y="0.0" width="35" height="31"/> + <constraints> + <constraint firstAttribute="width" constant="35" id="BXs-Nt-LaQ"/> + </constraints> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <state key="normal" title="Button"/> <buttonConfiguration key="configuration" style="filled" title="S"> @@ -273,9 +276,9 @@ </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="9ob-tq-FGc"> - <rect key="frame" x="128" y="0.0" width="35" height="31"/> + <rect key="frame" x="129" y="0.0" width="35" height="31"/> <constraints> - <constraint firstAttribute="width" constant="35" id="uas-qT-m7D"/> + <constraint firstAttribute="width" constant="35" id="FEs-Qv-SQc"/> </constraints> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <state key="normal" title="Button"/> @@ -287,7 +290,7 @@ </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xVA-v4-SeY"> - <rect key="frame" x="171" y="0.0" width="36" height="31"/> + <rect key="frame" x="172" y="0.0" width="34" height="31"/> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <state key="normal" title="Button"/> <buttonConfiguration key="configuration" style="filled" title="F"> @@ -298,9 +301,9 @@ </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="lFV-Ph-7oH"> - <rect key="frame" x="215" y="0.0" width="35" height="31"/> + <rect key="frame" x="214" y="0.0" width="35" height="31"/> <constraints> - <constraint firstAttribute="width" constant="35" id="PAi-d0-m1T"/> + <constraint firstAttribute="width" constant="35" id="SCs-eE-KXf"/> </constraints> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <state key="normal" title="Button"/> @@ -312,9 +315,9 @@ </connections> </button> <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="gfF-8E-ztz"> - <rect key="frame" x="258" y="0.0" width="35" height="31"/> + <rect key="frame" x="257" y="0.0" width="35" height="31"/> <constraints> - <constraint firstAttribute="width" constant="35" id="wzM-tZ-pzw"/> + <constraint firstAttribute="width" constant="35" id="OYl-j3-cf7"/> </constraints> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <state key="normal" title="Button"/> @@ -325,11 +328,8 @@ <action selector="H_Action:" destination="SII-Cn-Tul" eventType="touchUpInside" id="yfb-FP-5oM"/> </connections> </button> - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="9Hg-a5-lyX"> - <rect key="frame" x="301" y="0.0" width="35" height="31"/> - <constraints> - <constraint firstAttribute="width" constant="35" id="3eq-2n-Zh7"/> - </constraints> + <button opaque="NO" contentMode="scaleToFill" ambiguous="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="9Hg-a5-lyX"> + <rect key="frame" x="300" y="0.0" width="35" height="31"/> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <state key="normal" title="Button"/> <buttonConfiguration key="configuration" style="filled" title="J"> @@ -339,11 +339,8 @@ <action selector="J_Action:" destination="SII-Cn-Tul" eventType="touchUpInside" id="bGT-pq-EGZ"/> </connections> </button> - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="SRC-kg-I9t"> - <rect key="frame" x="344" y="0.0" width="34" height="31"/> - <constraints> - <constraint firstAttribute="width" constant="34" id="Fzp-gB-C60"/> - </constraints> + <button opaque="NO" contentMode="scaleToFill" ambiguous="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="SRC-kg-I9t"> + <rect key="frame" x="343" y="0.0" width="35" height="31"/> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <state key="normal" title="Button"/> <buttonConfiguration key="configuration" style="filled" title="K"> @@ -355,19 +352,15 @@ </button> </subviews> <constraints> - <constraint firstItem="xVA-v4-SeY" firstAttribute="centerX" secondItem="iGY-z0-cnq" secondAttribute="centerX" id="35V-U4-Rzg"/> - <constraint firstItem="9ob-tq-FGc" firstAttribute="leading" secondItem="pbT-fO-DaV" secondAttribute="trailing" constant="8" id="iMq-Tq-nu2"/> - <constraint firstItem="VcP-Ew-YEz" firstAttribute="baseline" secondItem="5oN-oV-uOo" secondAttribute="firstBaseline" id="y0Q-Ny-vsi"/> + <constraint firstItem="VcP-Ew-YEz" firstAttribute="baseline" secondItem="5oN-oV-uOo" secondAttribute="firstBaseline" id="4g7-Vk-Ba2"/> + <constraint firstItem="xVA-v4-SeY" firstAttribute="centerX" secondItem="iGY-z0-cnq" secondAttribute="centerX" id="z5a-9w-kcr"/> </constraints> </stackView> <stackView opaque="NO" contentMode="scaleToFill" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="2hT-k9-3se"> <rect key="frame" x="0.0" y="86" width="378" height="31"/> <subviews> - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CiT-Ul-IXe"> + <button opaque="NO" contentMode="scaleToFill" ambiguous="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="CiT-Ul-IXe"> <rect key="frame" x="0.0" y="0.0" width="40.5" height="31"/> - <constraints> - <constraint firstAttribute="width" constant="40.5" id="hAd-XB-8jO"/> - </constraints> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <state key="normal" title="Button"/> <buttonConfiguration key="configuration" style="filled" title="L"> @@ -377,11 +370,8 @@ <action selector="L_Action:" destination="SII-Cn-Tul" eventType="touchUpInside" id="qL4-Ih-7GP"/> </connections> </button> - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="him-pb-hSO"> + <button opaque="NO" contentMode="scaleToFill" ambiguous="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="him-pb-hSO"> <rect key="frame" x="48.5" y="0.0" width="40" height="31"/> - <constraints> - <constraint firstAttribute="width" constant="40" id="Sv9-mP-1Lk"/> - </constraints> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <state key="normal" title="Button"/> <buttonConfiguration key="configuration" style="filled" title="M"> @@ -391,11 +381,8 @@ <action selector="M_Action:" destination="SII-Cn-Tul" eventType="touchUpInside" id="Rbj-3R-lQ8"/> </connections> </button> - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="f86-Pv-8XU"> + <button opaque="NO" contentMode="scaleToFill" ambiguous="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="f86-Pv-8XU"> <rect key="frame" x="96.5" y="0.0" width="40.5" height="31"/> - <constraints> - <constraint firstAttribute="width" constant="40.5" id="y8F-zR-SoZ"/> - </constraints> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <state key="normal" title="Button"/> <buttonConfiguration key="configuration" style="filled" title="W"> @@ -405,11 +392,8 @@ <action selector="W_Action:" destination="SII-Cn-Tul" eventType="touchUpInside" id="eKF-hD-n9A"/> </connections> </button> - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="p6W-Zy-IJN"> + <button opaque="NO" contentMode="scaleToFill" ambiguous="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="p6W-Zy-IJN"> <rect key="frame" x="145" y="0.0" width="40" height="31"/> - <constraints> - <constraint firstAttribute="width" constant="40" id="UNr-Ew-RJI"/> - </constraints> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <state key="normal" title="Button"/> <buttonConfiguration key="configuration" style="filled" title="X"> @@ -419,7 +403,7 @@ <action selector="X_Action:" destination="SII-Cn-Tul" eventType="touchUpInside" id="SSD-RT-NyK"/> </connections> </button> - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="f5g-Vp-Dkm"> + <button opaque="NO" contentMode="scaleToFill" ambiguous="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="f5g-Vp-Dkm"> <rect key="frame" x="193" y="0.0" width="40.5" height="31"/> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <state key="normal" title="Button"/> @@ -430,11 +414,8 @@ <action selector="C_Action:" destination="SII-Cn-Tul" eventType="touchUpInside" id="a46-Ll-6FM"/> </connections> </button> - <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="wg8-a4-KPy"> + <button opaque="NO" contentMode="scaleToFill" ambiguous="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="wg8-a4-KPy"> <rect key="frame" x="241.5" y="0.0" width="40" height="31"/> - <constraints> - <constraint firstAttribute="width" constant="40" id="1G0-6C-igj"/> - </constraints> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <state key="normal" title="Button"/> <buttonConfiguration key="configuration" style="filled" title="V"> @@ -447,7 +428,7 @@ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ErA-af-qSV"> <rect key="frame" x="289.5" y="0.0" width="40" height="31"/> <constraints> - <constraint firstAttribute="width" constant="40" id="eeV-Eq-QWY"/> + <constraint firstAttribute="width" constant="40" id="vSl-wV-Y8M"/> </constraints> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <state key="normal" title="Button"/> @@ -461,7 +442,7 @@ <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="system" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="JoJ-to-kUH"> <rect key="frame" x="337.5" y="0.0" width="40.5" height="31"/> <constraints> - <constraint firstAttribute="width" constant="40.5" id="kz1-9t-uCY"/> + <constraint firstAttribute="width" constant="40.5" id="4SU-RY-yB0"/> </constraints> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <state key="normal" title="Button"/> @@ -474,30 +455,44 @@ </button> </subviews> <constraints> - <constraint firstItem="ErA-af-qSV" firstAttribute="baseline" secondItem="wg8-a4-KPy" secondAttribute="firstBaseline" id="Jvt-zT-kdA"/> + <constraint firstItem="ErA-af-qSV" firstAttribute="baseline" secondItem="wg8-a4-KPy" secondAttribute="firstBaseline" id="BGf-en-Iry"/> </constraints> </stackView> </subviews> <rect key="contentStretch" x="1" y="1" width="1" height="1"/> </stackView> - <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YK4-Bp-YJg"> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" misplaced="YES" text="Label" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="YK4-Bp-YJg"> <rect key="frame" x="20" y="606" width="376" height="60"/> + <constraints> + <constraint firstAttribute="height" constant="60" id="PWP-pN-cfl"/> + </constraints> <fontDescription key="fontDescription" type="system" pointSize="30"/> <color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/> <nil key="highlightedColor"/> </label> + <label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="b0q-r0-Lec"> + <rect key="frame" x="286" y="107" width="128" height="26"/> + <constraints> + <constraint firstAttribute="height" constant="26" id="9Cj-u8-X5d"/> + </constraints> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <nil key="textColor"/> + <nil key="highlightedColor"/> + </label> </subviews> <viewLayoutGuide key="safeArea" id="uHe-Zh-6OV"/> <color key="backgroundColor" systemColor="systemBackgroundColor"/> <color key="tintColor" systemColor="opaqueSeparatorColor"/> <constraints> - <constraint firstItem="YK4-Bp-YJg" firstAttribute="top" secondItem="uHe-Zh-6OV" secondAttribute="top" constant="518" id="0RM-e8-dUR"/> - <constraint firstItem="YK4-Bp-YJg" firstAttribute="leading" secondItem="lA6-ta-b6b" secondAttribute="leadingMargin" id="8V5-R5-D98"/> - <constraint firstItem="nPm-hO-jSU" firstAttribute="leading" secondItem="uHe-Zh-6OV" secondAttribute="leading" constant="18" id="Hxn-xs-CA2"/> - <constraint firstItem="nPm-hO-jSU" firstAttribute="top" secondItem="uHe-Zh-6OV" secondAttribute="top" constant="586" id="RCq-Wo-NQ6"/> - <constraint firstItem="YK4-Bp-YJg" firstAttribute="trailing" secondItem="nPm-hO-jSU" secondAttribute="trailing" id="gQQ-EB-9ZR"/> - <constraint firstItem="nPm-hO-jSU" firstAttribute="top" secondItem="YK4-Bp-YJg" secondAttribute="bottom" constant="8" id="gd4-GV-Rbc"/> - <constraint firstItem="nPm-hO-jSU" firstAttribute="centerX" secondItem="lA6-ta-b6b" secondAttribute="centerX" id="gx6-Zs-yWe"/> + <constraint firstItem="b0q-r0-Lec" firstAttribute="leading" secondItem="uHe-Zh-6OV" secondAttribute="leading" constant="286" id="HZI-1h-KMP"/> + <constraint firstItem="YK4-Bp-YJg" firstAttribute="centerX" secondItem="nPm-hO-jSU" secondAttribute="centerX" id="LiK-Qo-mvb"/> + <constraint firstItem="uHe-Zh-6OV" firstAttribute="bottom" secondItem="nPm-hO-jSU" secondAttribute="bottom" constant="22" id="SjP-eM-mUa"/> + <constraint firstItem="nPm-hO-jSU" firstAttribute="leading" secondItem="uHe-Zh-6OV" secondAttribute="leading" constant="18" id="Sxx-8n-kFl"/> + <constraint firstItem="b0q-r0-Lec" firstAttribute="top" secondItem="uHe-Zh-6OV" secondAttribute="top" constant="19" id="ndW-at-4Wu"/> + <constraint firstItem="YK4-Bp-YJg" firstAttribute="leading" secondItem="lA6-ta-b6b" secondAttribute="leadingMargin" id="qJE-Ri-fkh"/> + <constraint firstItem="nPm-hO-jSU" firstAttribute="top" secondItem="YK4-Bp-YJg" secondAttribute="bottom" constant="8" id="tyX-oo-IMe"/> + <constraint firstItem="uHe-Zh-6OV" firstAttribute="trailing" secondItem="b0q-r0-Lec" secondAttribute="trailing" id="u71-I0-TTw"/> + <constraint firstItem="nPm-hO-jSU" firstAttribute="centerX" secondItem="lA6-ta-b6b" secondAttribute="centerX" id="uIT-ji-7Iv"/> </constraints> </view> <toolbarItems/> @@ -530,6 +525,7 @@ <outlet property="X_Button" destination="p6W-Zy-IJN" id="Sxv-Xl-26y"/> <outlet property="Y_Button" destination="dUl-j1-UPC" id="iQo-bR-ql3"/> <outlet property="Z_Button" destination="3y4-VD-M0Z" id="kgJ-ua-BLx"/> + <outlet property="score" destination="b0q-r0-Lec" id="L6v-7D-eE9"/> <outlet property="wordLabel" destination="YK4-Bp-YJg" id="V2y-ee-WzG"/> </connections> </viewController> diff --git a/Pendu/GameEngine.swift b/Pendu/GameEngine.swift index 56914995cddd9c00ce920b851df9944364053452..2c08f530e2c3fe4600fce5e034d4e35175439ca4 100644 --- a/Pendu/GameEngine.swift +++ b/Pendu/GameEngine.swift @@ -10,17 +10,17 @@ import CoreData class GameEngine: NSObject { - private var listThemeAnimalsEasy : [String] = ["Chien", "Chat", "Lion", "Girafe", "Éléphant", "Serpent", "Oiseau", "Tigre", "Papillon", "Singe"]; - private var listThemeSportsEasy : [String] = ["Football", "Basket-ball", "Tennis", "Natation", "Rugby", "Golf", "Volley-ball", "Baseball", "Athlétisme", "Boxe"]; + private var listThemeAnimalsEasy : [String] = ["Chien", "Chat", "Lion", "Girafe", "elephant", "Serpent", "Oiseau", "Tigre", "Papillon", "Singe"]; + private var listThemeSportsEasy : [String] = ["Football", "Basket-ball", "Tennis", "Natation", "Rugby", "Golf", "Volley-ball", "Baseball", "Athletisme", "Boxe"]; private var listThemeFoodEasy : [String] = ["Pomme", "Banane", "Carotte", "Poisson", "Riz", "Fromage", "Pain", "Chocolat", "Fraise", "Poulet"]; private var listThemeCitiesEasy : [String] = ["Paris", "Londres", "New York", "Rome", "Tokyo", "Sydney", "Barcelone", "Berlin", "Istanbul", "Mumbai"]; private var listThemeColorsEasy : [String] = ["Rouge", "Bleu", "Vert", "Jaune", "Rose", "Violet", "Orange", "Gris", "Marron", "Noir"]; - private var listThemeAnimalsHard : [String] = ["Chimpanzé", "Lynx", "Hippopotame", "Pélican", "Kangourou", "Anaconda", "Chimère", "Panda roux", "Calmar géant", "Ouistiti"]; - private var listThemeSportsHard : [String] = ["Escrime", "Squash", "Haltérophilie", "Badminton", "Ski de fond", "Pentathlon moderne", "Canoë-kayak", "Aviron", "Patinage artistique", "Triathlon"]; + private var listThemeAnimalsHard : [String] = ["Chimpanze", "Lynx", "Hippopotame", "Pelican", "Kangourou", "Anaconda", "Chimere", "Panda roux", "Calmar geant", "Ouistiti"]; + private var listThemeSportsHard : [String] = ["Escrime", "Squash", "Halterophilie", "Badminton", "Ski de fond", "Pentathlon moderne", "Canoë-kayak", "Aviron", "Patinage artistique", "Triathlon"]; private var listThemeFoodHard : [String] = ["Artichaut", "Quinoa", "Courge", "Wasabi", "Chou-fleur", "Sarrasin", "Salsifis", "Morue", "Canneberge", "Pistache"]; - private var listThemeCitiesHard : [String] = ["Copenhague", "Budapest", "Dubrovnik", "Séoul", "Marrakech", "Reykjavik", "La Nouvelle-Orléans", "Bratislava", "Wellington", "Accra"]; - private var listThemeColorsHard : [String] = ["Écarlate", "Azur", "Émeraude", "Safran", "Pourpre", "Indigo", "Sienne", "Cyan", "Vermillon", "Lavande"]; + private var listThemeCitiesHard : [String] = ["Copenhague", "Budapest", "Dubrovnik", "Seoul", "Marrakech", "Reykjavik", "La Nouvelle-Orleans", "Bratislava", "Wellington", "Accra"]; + private var listThemeColorsHard : [String] = ["ecarlate", "Azur", "emeraude", "Safran", "Pourpre", "Indigo", "Sienne", "Cyan", "Vermillon", "Lavande"]; private var wordToGuess : String = ""; private var attemptsRemaining : Int = 0; @@ -39,52 +39,55 @@ class GameEngine: NSObject { // } - func WordToGuess(theme: String, difficulty: String) -> String{ - var word = "" + func WordToGuess(theme: String, difficulty: String) -> Void{ self.theme = theme; self.difficulty = difficulty; if theme == "Animals"{ if difficulty == "Easy"{ let randomInt = Int.random(in: 0..<listThemeAnimalsEasy.count) - word = listThemeAnimalsEasy[randomInt] + self.wordToGuess = listThemeAnimalsEasy[randomInt] } else { let randomInt = Int.random(in: 0..<listThemeAnimalsHard.count) - word = listThemeAnimalsHard[randomInt] + self.wordToGuess = listThemeAnimalsHard[randomInt] } } else if theme == "Sports"{ if difficulty == "Easy"{ let randomInt = Int.random(in: 0..<listThemeSportsEasy.count) - word = listThemeAnimalsEasy[randomInt] + self.wordToGuess = listThemeAnimalsEasy[randomInt] } else { let randomInt = Int.random(in: 0..<listThemeSportsHard.count) - word = listThemeSportsHard[randomInt] + self.wordToGuess = listThemeSportsHard[randomInt] } } else if theme == "Food"{ if difficulty == "Easy"{ let randomInt = Int.random(in: 0..<listThemeFoodEasy.count) - word = listThemeFoodEasy[randomInt] + self.wordToGuess = listThemeFoodEasy[randomInt] } else { let randomInt = Int.random(in: 0..<listThemeFoodHard.count) - word = listThemeFoodHard[randomInt] + self.wordToGuess = listThemeFoodHard[randomInt] } } else if theme == "Cities"{ if difficulty == "Easy"{ let randomInt = Int.random(in: 0..<listThemeCitiesEasy.count) - word = listThemeCitiesEasy[randomInt] + self.wordToGuess = listThemeCitiesEasy[randomInt] } else { let randomInt = Int.random(in: 0..<listThemeCitiesHard.count) - word = listThemeCitiesHard[randomInt] + self.wordToGuess = listThemeCitiesHard[randomInt] } } else if theme == "Colors"{ if difficulty == "Easy"{ let randomInt = Int.random(in: 0..<listThemeColorsEasy.count) - word = listThemeColorsEasy[randomInt] + self.wordToGuess = listThemeColorsEasy[randomInt] } else { let randomInt = Int.random(in: 0..<listThemeColorsHard.count) - word = listThemeColorsHard[randomInt] + self.wordToGuess = listThemeColorsHard[randomInt] } } - return word + self.wordToGuess = self.wordToGuess.uppercased() + } + + public func getWordToGuess() -> String { + return self.wordToGuess; } public func guessLetter(letter: Character) -> Bool { @@ -92,6 +95,8 @@ class GameEngine: NSObject { return false; } + print("lettre: " + String(letter)) + guessedLetters.append(letter); if wordToGuess.contains(letter) { @@ -132,12 +137,14 @@ class GameEngine: NSObject { } lastGuessedLetterTime = Date(); + print("trouvé, score="+String(score)) return true; } remainingLives -= 1; combo = 0; lastGuessedLetterTime = nil; + print("pas trouvé") return false; } diff --git a/Pendu/GameViewController.swift b/Pendu/GameViewController.swift index 018d09c7af30d3ddf152bc7c393dd60d9f709881..7a64ba081b22df2b92625f660d2bff78c0cf7175 100644 --- a/Pendu/GameViewController.swift +++ b/Pendu/GameViewController.swift @@ -31,7 +31,8 @@ extension UIView { class GameViewController: UIViewController { @IBOutlet weak var wordLabel: UILabel! - + @IBOutlet weak var score: UILabel! + @IBOutlet weak var A_Button: UIButton! @IBOutlet weak var Z_Button: UIButton! @IBOutlet weak var E_Button: UIButton! @@ -150,7 +151,10 @@ class GameViewController: UIViewController { var currentWordState: [String] = [] - var wordToGuess : String = "" + + var gameEngine : GameEngine = GameEngine() + + var wordToGuess = "" var isWordFound = false @@ -158,12 +162,17 @@ class GameViewController: UIViewController { override func viewDidLoad() { view.addBackground() + + wordToGuess = gameEngine.getWordToGuess() + super.viewDidLoad() - print(wordToGuess) initializeWordState() updateWordLabel() updateImage() + score.textColor = UIColor.white + score.text = "Score : 0" + let label = UILabel(frame: CGRect(x: 0, y: 0, width: 200, height: 40)) label.center = CGPoint(x: 170, y: 230) label.font = UIFont(name: "whatever it takes", size: 40) @@ -228,7 +237,8 @@ class GameViewController: UIViewController { var updateWordState = currentWordState - var guessedCorrectly = false + let guessedCorrectly = gameEngine.guessLetter(letter: Character(letter)) + score.text = "Score : " + String(gameEngine.getScore()) for (wordIndex, word) in wordToGuess.components(separatedBy: " ").enumerated() { var updateWord = "" @@ -238,7 +248,7 @@ class GameViewController: UIViewController { if currentChar.uppercased() == guessedLetter { updateWord += currentChar - guessedCorrectly = true +// guessedCorrectly = true } else { let currentWordStateChar = String(wordCharacters[charIndex]) updateWord += currentWordStateChar @@ -253,7 +263,6 @@ class GameViewController: UIViewController { if !guessedCorrectly { updateImage() } - } diff --git a/Pendu/ViewController.swift b/Pendu/ViewController.swift index 1a822c61b772055ff1c59c15f889dea3e0ec3c79..9069bf560a7a02f557b20c9375f800b5445502b0 100644 --- a/Pendu/ViewController.swift +++ b/Pendu/ViewController.swift @@ -9,7 +9,7 @@ class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDele var wordToGuess : String = "" let pickerData = ["Animals", "Sports", "Food", "Cities", "Colors"] - let gameEngine : GameEngine = GameEngine() + var gameEngine : GameEngine = GameEngine() override func viewDidLoad() { super.viewDidLoad() @@ -20,7 +20,7 @@ class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDele override func prepare(for segue: UIStoryboardSegue, sender: Any?){ if segue.identifier == "DeAccueilAJeu" { let destinationVC = segue.destination as! GameViewController - destinationVC.wordToGuess = wordToGuess + destinationVC.gameEngine = gameEngine } } @@ -44,8 +44,8 @@ class ViewController: UIViewController, UIPickerViewDataSource, UIPickerViewDele // Ajoutez votre code supplémentaire ici let difficulty = niveau ?? "" - wordToGuess = gameEngine.WordToGuess(theme: theme, difficulty: difficulty) - print("Mot à deviner: \(wordToGuess)") + gameEngine.WordToGuess(theme: theme, difficulty: difficulty) + print("Mot à deviner: \(wordToGuess)") } // MARK: - UIPickerViewDataSource