Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (define cria-jogo
- (lambda (clube1 golos1 clube2 golos2)
- (cons (cons clube1 clube2) (cons golos1 golos2))))
- (define vencedor-jogo
- (lambda (jogo)
- (cond ((> (car (cdr jogo)) (cdr (cdr jogo))) (car (car jogo)))
- ((< (car (cdr jogo)) (cdr (cdr jogo))) (cdr (car jogo)))
- (else 'empate))))
- (define cria-pontuacao
- (lambda (clubes)
- (if (null? clubes)
- '()
- (append (list (cons (car clubes) 0)) (cria-pontuacao (cdr clubes))))))
- (define atualiza-pontuacao!
- (lambda (pontuacao clube pontos)
- (map (lambda(x) (if (equal? (car x) clube)
- (set-cdr! x (+ (cdr x) pontos))
- )) pontuacao)
- (void)))
- (define atualiza-jornada!
- (lambda (pontuacao jornada)
- (letrec( (pontos
- (lambda (pontuacao jogo)
- (if (equal? (vencedor-jogo jogo) 'empate)
- (begin
- (atualiza-pontuacao! pontuacao (car (car jogo)) 1)
- (atualiza-pontuacao! pontuacao (cdr (car jogo)) 1))
- (atualiza-pontuacao! pontuacao (vencedor-jogo jogo) 3)))))
- (if (null? jornada)
- (void)
- (begin
- (pontos pontuacao (car jornada))
- (atualiza-jornada! pontuacao (cdr jornada)))))))
- (define primeiros
- (lambda (pontuacao)
- (letrec( (pmax
- (lambda (pontuacao)
- (apply max (map cdr pontuacao))))
- (lista-prim
- (lambda (pontuacao)
- (apply append (map (lambda(x) (if (equal? (cdr x) (pmax pontuacao))
- (list (car x))
- '())) pontuacao)))))
- (if (null? pontuacao)
- 'pontuacao_invalida
- (cons (lista-prim pontuacao) (pmax pontuacao))))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement