Attic/resit.scala
changeset 477 a4e1f63157d8
parent 459 d59404a41d5f
equal deleted inserted replaced
476:7550c816187a 477:a4e1f63157d8
       
     1 // Resit about Evil Wordle
       
     2 //==========================
       
     3 
       
     4 
       
     5 object Resit { 
       
     6 
       
     7 import io.Source
       
     8 import scala.util._
       
     9 
       
    10 // ADD YOUR CODE BELOW
       
    11 //======================
       
    12 
       
    13 
       
    14 //(1)
       
    15 def get_wordle_list(url: String) : List[String] = ???
       
    16 
       
    17 // val secrets = get_wordle_list("https://nms.kcl.ac.uk/christian.urban/wordle.txt")
       
    18 // secrets.length // => 12972
       
    19 // secrets.filter(_.length != 5) // => Nil
       
    20 
       
    21 //(2)
       
    22 def removeN[A](xs: List[A], elem: A, n: Int) : List[A] = ???
       
    23 
       
    24 
       
    25 // removeN(List(1,2,3,2,1), 3, 1)  // => List(1, 2, 2, 1)
       
    26 // removeN(List(1,2,3,2,1), 2, 1)  // => List(1, 3, 2, 1)
       
    27 // removeN(List(1,2,3,2,1), 1, 1)  // => List(2, 3, 2, 1)
       
    28 // removeN(List(1,2,3,2,1), 0, 2)  // => List(1, 2, 3, 2, 1)
       
    29 
       
    30 // (3)
       
    31 abstract class Tip
       
    32 case object Absent extends Tip
       
    33 case object Present extends Tip
       
    34 case object Correct extends Tip
       
    35 
       
    36 
       
    37 def pool(secret: String, word: String) : List[Char] = ??? 
       
    38 
       
    39 def aux(secret: List[Char], word: List[Char], pool: List[Char]) : List[Tip] = ???
       
    40 
       
    41 def score(secret: String, word: String) : List[Tip] = ???
       
    42 
       
    43 
       
    44 // score("chess", "caves") // => List(Correct, Absent, Absent, Present, Correct)
       
    45 // score("doses", "slide") // => List(Present, Absent, Absent, Present, Present)
       
    46 // score("chess", "swiss") // => List(Absent, Absent, Absent, Correct, Correct)
       
    47 // score("chess", "eexss") // => List(Present, Absent, Absent, Correct, Correct)
       
    48 
       
    49 // (4)
       
    50 def eval(t: Tip) : Int = ???
       
    51 
       
    52 def iscore(secret: String, word: String) : Int = ???
       
    53 
       
    54 //iscore("chess", "caves") // => 21
       
    55 //iscore("chess", "swiss") // => 20
       
    56 
       
    57 // (5)
       
    58 def lowest(secrets: List[String], word: String, current: Int, acc: List[String]) : List[String] = ???
       
    59 
       
    60 def evil(secrets: List[String], word: String) : List[String] = ???
       
    61 
       
    62 
       
    63 //evil(secrets, "stent").length
       
    64 //evil(secrets, "hexes").length
       
    65 //evil(secrets, "horse").length
       
    66 //evil(secrets, "hoise").length
       
    67 //evil(secrets, "house").length
       
    68 
       
    69 // (6)
       
    70 def frequencies(secrets: List[String]) : Map[Char, Double] = ???
       
    71 
       
    72 // (7)
       
    73 def rank(frqs: Map[Char, Double], s: String) : Double = ???
       
    74 
       
    75 def ranked_evil(secrets: List[String], word: String) : List[String] = ???
       
    76 
       
    77 
       
    78 }