DAW Desenvolupament d'aplicacions web ( Informàtica )
Exercici de DAW-MP02-UF3 - Llenguatges SQL: DCL i extensió procedimental
Bits en el ring. Contienda. Dado.

El joc està basat en Ignotum consiteix en el següent:

  • Es juga per torns.
  • Es llença un dau.
  • El jugador que té el torn decideix si:
    • S'anota els punts i perd el torn.
    • S'anota els punts el rival i no perd el torn.
  • No sé sap quantes vegades es llençarà el dau.
  • Quan s'acaba la partida guanya qui ha acumulat més punts.

Els punts es guararan en aquesta taula:

marcador ( tirada int pk, nJugadorAnota, puntsAnotats )

Es tracta de fer la funció mElsQuedo que prengui la decissió si es queda els punts i perd el torn o no se'ls queda i perd el torn.

La funció té aquesta signatura:

create function dbo.mElsQuedo( nJugador int, punts int ) returns bit
  • La funció l'ha de desenvolupar l'alumne.
  • La funció tindrà una estratègia per decidir si es queda els punts ( retorna 1 ) o no ( retorna 0 )
  • La funció té accés lectura a la taula marcador.
  • La funció s'ha descriure de manera neta i llegible. Ben indentada.
  • Agafarem totes les funcions i les farem compatir entre elles.

Aquest és el codi que fa competir funcions:

declare @n int;
set @n = 10000;

drop table if exists Marcador;
create table Marcador (
tirada int not null identity,
nJugadorAnota int,
puntsAnotats int
)

while @n > 0 BEGIN
    declare @dau int;
    declare @selqueda bit;
    set @selqueda = 0;
    while (@selqueda = 0 and @n > 0 ) begin
        set @dau = (cast(rand()*10000 as int) % 6 ) + 1;
        set @selqueda = dbo.f1( 1, @dau );
        insert into Marcador (nJugadorAnota, puntsAnotats)
               values (1, @dau );
        set @n = @n - 1;
        print 'Jugador 1: ' + str(@dau) + ' s''el queda ' + str(@selqueda)
    end
    set @selqueda = 0;
    while ( @selqueda = 0 and @n > 0 ) begin
        set @dau = (cast(rand()*10000 as int) % 6 ) + 1;
        set @selqueda = dbo.f2( 2, @dau );
        insert into Marcador (nJugadorAnota, puntsAnotats)
               values (2, @dau );
        set @n = @n - 1;
        print 'Jugador 2: ' + str(@dau) + ' s''el queda ' + str(@selqueda)
    end
END

--resultats
select nJugadorAnota, sum(puntsAnotats)
from marcador
group by nJugadorAnota
order by nJugadorAnota;
Resultats d'aprenentatge:
Continguts:

Pujat el 27 de abril de 2018 a les 17:42
per daniel herrera

Consulteu nota legal i condicions