Sign in to follow this  
Followers 0
Fegarur

El juego de los Dieces (Tens)

5 posts in this topic

Descripción:
Permite jugar al juego 'dieces' en el RPG Maker.

Recursos Necesarios:
Necesitas este recurso en la carpeta Pictures.
user posted image

Script:

Añade este nuevo script: (Scene_Tens)
[spoiler]
CODE
#==============================================================================
#     Scene_Tens
#------------------------------------------------------------------------------
#     The scene where you can play the card game tens
#==============================================================================

class Scene_Tens
 #--------------------------------------------------------------------------
 #     Main
 #--------------------------------------------------------------------------
 def main
   @main_window = Window_Tens.new
   @side_window = Window_Side.new
   @pa_window = Window_Command.new(112, ["Jugar de Nuevo", "Salir"])
   @pa_window.active = false
   @pa_window.visible = false
   @pa_window.x = 264
   @pa_window.y = 192
   @pa_window.z = 1000
   @main_window.side_window = @side_window
   Graphics.transition
   loop do
     Graphics.update
     Input.update
     update
     if $scene != self
       break
     end
   end
   @main_window.dispose
   @side_window.dispose
   @pa_window.dispose
   Graphics.freeze
 end
 #--------------------------------------------------------------------------
 #     Update
 #--------------------------------------------------------------------------
 def update
   @main_window.update
   @side_window.update
   @pa_window.update
   @pa_window.active = !@main_window.active
   @pa_window.visible = !@main_window.active
   if Input.trigger?(Input::C) and @pa_window.active
     case @pa_window.index
     when 0
       $game_system.se_play($data_system.decision_se)
       $scene = Scene_Tens.new
     when 1
       $game_system.se_play($data_system.decision_se)
       $scene = Scene_Map.new
     end
   end
 end
end
[/spoiler]

Añade este script: (Window_Tens)[spoiler]
CODE
#==============================================================================
#     Window_Tens
#------------------------------------------------------------------------------
#     The window with the card table for tens
#==============================================================================

class Window_Tens < Window_Base
 #--------------------------------------------------------------------------
 #     Attributes
 #--------------------------------------------------------------------------
 attr_accessor :side_window
 attr_reader :active
 #--------------------------------------------------------------------------
 #     Initialize
 #--------------------------------------------------------------------------
 def initialize
   @cards = [[53, 53, 53, 53], [53, 53, 53, 53], [53, 53, 53, 53], [53, 53, 53, 53], 53, 53]
   @x = 0
   @y = 0
   @held = 53
   @active = true
   @lose = false
   super(160, 0, 480, 480)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.cursor_rect.set(@x * 92 + 92, @y * 117, 71, 96)
   shuffle
   draw
   refresh
 end
 #--------------------------------------------------------------------------
 #     Refresh
 #--------------------------------------------------------------------------
 def refresh
   self.contents.clear
   bitmap = RPG::Cache.picture("cards")
   src_rect = Rect.new(3692, 0, 71, 96)
   for i in [email protected]
     self.contents.blt(0, i * 2, bitmap, src_rect)
   end
   src_rect = Rect.new(@cards[4] * 71, 0, 71, 96)
   self.contents.blt(0, 234, bitmap, src_rect, 127)
   src_rect = Rect.new(@cards[5] * 71, 0, 71, 96)
   self.contents.blt(0, 351, bitmap, src_rect, 127)
   for y in 0..3
     for x in 0..3
       src_rect = Rect.new(71 * @cards[y][x], 0, 71, 96)
       self.contents.blt(x * 92 + 92, y * 117, bitmap, src_rect)
     end
   end
   if @held < 53
     src_rect = Rect.new(71 * @held, 0, 71, 96)
     self.contents.blt(@x * 92 + 92, @y * 117, bitmap, src_rect, 127)
   end
   self.cursor_rect.set(@x * 92 + 88, @y * 117 - 4, 79, 104)
 end
 #--------------------------------------------------------------------------
 #     Shuffle
 #--------------------------------------------------------------------------
 def shuffle
   @deck = []
   temp = []
   for i in 0..51
     temp[i] = i
   end
   for i in 0..51
     x = rand(temp.size)
     @deck[i] = temp[x]
     temp.delete_at(x)
   end
 end
 #--------------------------------------------------------------------------
 #     Update
 #--------------------------------------------------------------------------
 def update
   super
   unless @active
     return
   end
   x = @x
   y = @y
   if Input.repeat?(Input::DOWN) and @y < 3
     @y += 1
   end
   if Input.repeat?(Input::UP) and @y > 0
     @y -= 1
   end
   if Input.repeat?(Input::LEFT) and @x > 0
     @x -= 1
   end
   if Input.repeat?(Input::RIGHT) and @x < 3
     @x += 1
   end
   if Input.trigger?(Input::C)
     if @cards[@y][@x] == 53
       if @held < 53
         spots = []
         case valueof(@held)
         when 11
           spots = [[0, 0], [0, 3], [3, 0], [3, 3]]
         when 12
           spots = [[1, 0], [1, 3], [2, 0], [2, 3]]
         when 13
           spots = [[0, 1], [0, 2], [3, 1], [3, 2]]
         end
         if spots == [] or spots.include?([@x, @y])
           $game_system.se_play($data_system.decision_se)
           @cards[@y][@x] = @held
           nd = false
           for y in 0..3
             for x in 0..3
               if @cards[y][x] > 51
                 nd = true
                 break
               end
             end
           end
           if nd
             draw
           else
             @held = 53
             refresh
             @side_window.set_text("Descarta los dieces...")
           end
         else
           $game_system.se_play($data_system.buzzer_se)
           refresh
         end
       else
         $game_system.se_play($data_system.decision_se)
         draw
         refresh
       end
     else
       if @held < 53
         $game_system.se_play($data_system.buzzer_se)
       else
         case valueof(@cards[@y][@x])
         when 1..10
           if @cards[4] == 53
             @cards[4] = @cards[@y][@x]
           else
             @cards[5] = @cards[@y][@x]
           end
           refresh
           if @cards[4] == @cards[5]
             $game_system.se_play($data_system.cancel_se)
             @cards[4] = 53
             @cards[5] = 53
             refresh
           elsif valueof(@cards[4]) + valueof(@cards[5]) == 10
             $game_system.se_play($data_system.decision_se)
             @side_window.set_text("¡Descartado!")
             @side_window.add_pair([@cards[4], @cards[5]])
             wait(10)
             for y in 0..3
               for x in 0..3
                 if @cards[y][x] == @cards[4] or @cards[y][x] == @cards[5]
                   @cards[y][x] = 53
                 end
               end
             end
             @cards[4] = 53
             @cards[5] = 53
             @side_window.set_text("Descarta los dieces...")
             refresh
           elsif @cards[5] == 53
             $game_system.se_play($data_system.decision_se)
           else
             $game_system.se_play($data_system.buzzer_se)
             @side_window.set_text("No suman diez...")
             @cards[4] = 53
             @cards[5] = 53
             wait(10)
             refresh
             @side_window.set_text("Descarta los dieces...")
           end
         when 11..13
           @side_window.set_text("¡Las figuras no se pueedn descartar!")
           $game_system.se_play($data_system.buzzer_se)
           wait(10)
           @side_window.set_text("Descartando los dieces...")
         end
       end
     end
   end
   if Input.trigger?(Input::B)
     $game_system.se_play($data_system.cancel_se)
     @active = false
   end
   if x != @x or y != @y
     $game_system.se_play($data_system.cursor_se)
     refresh
   end
   if @lose
     case valueof(@held)
     when 11
       card = "Sota"
     when 12
       card = "Reina"
     when 13
       card = "Rey"
     end
     @side_window.set_text("No hay sitio para un/a " + card + "!")
     refresh
     wait(20)
     Input.update
     @active = false
   end
   if @deck == []
     @side_window.set_text("¡¡Ganaste!!")
     wait(20)
     Input.update
     @active = false
   end
 end
 #--------------------------------------------------------------------------
 #     Value of
 #--------------------------------------------------------------------------
 def valueof(card)
   if card == 53
     return 0
   end
   return (card % 13) + 1
 end
 #--------------------------------------------------------------------------
 #     Draw
 #--------------------------------------------------------------------------
 def draw
   unless @side_window == nil
     @side_window.set_text("Colocando...")
   end
   @cards[4] = 53
   @held = @deck[0]
   @deck.shift
   if valueof(@held) < 11
     return
   end
   spots = []
   case valueof(@held)
   when 11
     spots = [[0, 0], [0, 3], [3, 0], [3, 3]]
   when 12
     spots = [[1, 0], [1, 3], [2, 0], [2, 3]]
   when 13
     spots = [[0, 1], [0, 2], [3, 1], [3, 2]]
   end
   @lose = true
   for i in spots
     if @cards[i[1]][i[0]] == 53
       @lose = false
       break
     end
   end
 end
 #--------------------------------------------------------------------------
 #     Wait
 #--------------------------------------------------------------------------
 def wait(frames)
   for i in 1..frames
     Graphics.update
   end
 end
end
[/spoiler]

Añade este script: (Window_Side)[spoiler]
CODE
#==============================================================================
#     Window_Side
#------------------------------------------------------------------------------
#     The window on the side of the tens table
#==============================================================================

class Window_Side < Window_Base
 #--------------------------------------------------------------------------
 #     Initialize
 #--------------------------------------------------------------------------
 def initialize
   super(0, 0, 160, 480)
   self.contents = Bitmap.new(width - 32, height - 32)
   self.contents.font.name = $defaultfonttype
   self.contents.font.size = $defaultfontsize
   @text = "Colocando..."
   @pairs = []
   refresh
 end
 #--------------------------------------------------------------------------
 #     Refresh
 #--------------------------------------------------------------------------
 def refresh
   self.contents.clear
   self.contents.font.size = 32
   self.contents.draw_text(0, 0, 128, 32, "Dieces", 1)
   self.contents.font.size = $defaultfontsize
   self.contents.draw_text(0, 28, 128, 32, @text, 1)
   bitmap = RPG::Cache.picture("cards")
   for i in [email protected]
     src_rect = Rect.new(@pairs[i][0] * 71, 0, 71, 96)
     self.contents.blt(0, i * 15 + 60, bitmap, src_rect)
     unless @pairs[i][1] == 53
       src_rect = Rect.new(@pairs[i][1] * 71, 0, 71, 96)
       self.contents.blt(16, i * 15 + 60, bitmap, src_rect)
     end
   end
 end
 #--------------------------------------------------------------------------
 #     Set_Text
 #--------------------------------------------------------------------------
 def set_text(text)
   @text = text
   refresh
 end
 #--------------------------------------------------------------------------
 #     Add Pair
 #--------------------------------------------------------------------------
 def add_pair(pair)
   @pairs.push(pair)
   refresh
 end
end
[/spoiler]

Instrucciones:
+ Coloca esos scripts sobre Main.
+ Para jugar al 'Dieces' usa llamar script:
CODE
$scene = Scene_Tens.new
+ En el juego, el objetivo es juntar 2 cartas cuyos valores sumen 10, o seleccionar un 10. xD.png
+ Al comenzar, tienes que poner las cartas en el tablero. Las figuras no pueden ir en cualquier sitio (pero que alguien me explique dónde pueden ir xD.png).
+ Una vez las cartas estén sobre el tablero, se seleccionan para formar dieces (cartas cuyo valor sume 10, solo se pueden juntar 2 cartas)
+ Cuando te quedas sin cartas (excepto figuras) tú ganas.

Crédito:
Script creado por Tiberius (obligatorio)
0

Share this post


Link to post
Share on other sites
mu bueno el script estube jugando un buen rato pero perdia llorar.gif
pero e mejorado evilgrin39.gif
0

Share this post


Link to post
Share on other sites
entonces dime dónde se pueden poner las figuras y dónde no, que no me entero. xD.png
0

Share this post


Link to post
Share on other sites
que? no te entiendo la pregunta blink.gif
0

Share this post


Link to post
Share on other sites
La reina, el rey... hay sitios donde no se pueden poner...
0

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0