Changeset 32


Ignore:
Timestamp:
11/14/06 19:11:07 (5 years ago)
Author:
james
Message:

new near five thingy working!

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TriviaEngine/TriviaEngine-sqlite.tcl

    r31 r32  
    66 
    77# the channel to play in 
    8 set trivia_channel "#triviacow" 
     8set trivia_channel "#molsoft" 
    99 
    1010# the time between hints (sec) 
     
    5555set trivia_last_ts 0 
    5656set trivia_score_time 0 
    57 set trivia_debug_mode 0 
     57set trivia_debug_mode 1 
    5858set trivia_warned 0 
    5959set trivia_asking_question 0 
     
    396396          putquick "PRIVMSG $trivia_channel :Welcome to our newest player,  $trivia_c(purple)$nick$trivia_c(off) :)" 
    397397        }        
    398         putquick "PRIVMSG $trivia_channel :Rankings: [trivia_near_five2 $uid]" 
     398        putquick "PRIVMSG $trivia_channel :Rankings: [trivia_near_five3 $uid]" 
    399399 
    400400        set leader [trivia_leader] 
     
    14651465        trivia_db_handle eval $sql 
    14661466 
    1467         set outputlist [list] 
     1467        set outputlist "" 
    14681468 
    14691469 
     
    14871487        #find our position 
    14881488        #don't need to use last_score here because we must've just scored - making use the most recent point for this score 
    1489         set sql "SELECT COUNT(*)+1 AS position FROM _score WHERE user_score > $our_score ORDER BY user_score DESC, last_score DESC" 
     1489        set sql "SELECT user_id FROM _score WHERE user_score >= $our_score ORDER BY user_score DESC, last_score DESC" 
    14901490        putlog $sql 
    1491         set position [trivia_db_handle onecolumn $sql] 
     1491        set position 1 
     1492        trivia_db_handle eval $sql { 
     1493                if {$user_id != $uid} { 
     1494                        incr position 
     1495                } else { 
     1496                        break 
     1497                } 
     1498        } 
    14921499 
    14931500        putlog "our position is $position" 
     
    15011508        } else { 
    15021509                #find some users higher than us 
    1503                 set sql "SELECT * FROM _score WHERE user_score > $user_score ORDER BY user_score DESC, last_score DESC LIMIT 4" 
     1510                set sql "SELECT * FROM _score WHERE user_score > $user_score ORDER BY user_score ASC, last_score ASC LIMIT 4" 
    15041511                putlog $sql 
    15051512 
     
    15071514 
    15081515                trivia_db_handle eval $sql { 
    1509                         lappend outputlist [list $user_id $user_score] 
     1516                        set outputlist [concat [list [list $user_id $user_score] ] $outputlist] 
     1517                        putlog "outputlist is now $outputlist" 
    15101518                } 
    15111519 
     
    15301538 
    15311539        if {$position == 1} { 
     1540                putlog "we're in first" 
    15321541                set pre_size 1 
    15331542                set post_size 4 
     
    15351544 
    15361545        if {$position == 2} { 
     1546                putlog "we're in 2nd" 
    15371547                set pre_size 2 
    15381548                set post_size 3 
     
    15401550 
    15411551        if {[llength $postlist] == 0} { 
     1552                putlog "no postlist, using only prelist" 
    15421553                set pre_size 5 
    15431554        } 
    15441555 
     1556        if {[llength $postlist] == 1} { 
     1557                putlog "one postlist, using most prelist" 
     1558                set pre_size 4 
     1559        } 
     1560 
    15451561        if {$pre_size < [llength $outputlist]} { 
    1546                 set outputlist [lrange $outputlist end-$pre_size end] 
    1547         } 
     1562                putlog "pre_size $pre_size < length of prelist, trimming" 
     1563                set startpos [expr [llength $outputlist] - $pre_size] 
     1564                set outputlist [lrange $outputlist $startpos end] 
     1565        } 
     1566 
     1567        putlog "outputlist length is [llength $outputlist]" 
    15481568 
    15491569        set post_size [expr 5 - [llength $outputlist]] 
    15501570 
    1551         if {$post_size > [llength $postlist]} { 
    1552                 set postlist [lrange $postlist 0 $post_size] 
     1571        if {$post_size < [llength $postlist]} { 
     1572                putlog "post_size calculated as $post_size and is less than list length" 
     1573                set postlist [lrange $postlist 0 [expr $post_size - 1]] 
    15531574        } 
    15541575 
     
    15571578        putlog "post: $postlist" 
    15581579 
    1559  
     1580        if {$position > 2} { 
     1581                set initpos [expr $position - 2] 
     1582        } else { 
     1583                set initpos 1 
     1584        } 
     1585 
     1586        putlog "first position on list is $initpos" 
     1587 
     1588        foreach place $postlist { 
     1589                lappend outputlist $place 
     1590        } 
     1591 
     1592        set output "" 
     1593 
     1594        foreach place $outputlist { 
     1595                set entry "" 
     1596                append entry "$initpos" 
     1597                append entry [trivia_ordinal $initpos] 
     1598                append entry ": " 
     1599                append entry [trivia_get_username [lindex $place 0]] 
     1600                append entry " (" 
     1601                append entry [lindex $place 1] 
     1602                append entry ")" 
     1603                incr initpos 
     1604                if {[lindex $place 0] == $uid} { 
     1605                        append output "$trivia_c(purple)$trivia_c(bold) $entry$trivia_c(off)$trivia_c(bold) " 
     1606                } else { 
     1607                        append output " $entry " 
     1608                } 
     1609        } 
     1610         
     1611        putlog $output 
    15601612 
    15611613} 
Note: See TracChangeset for help on using the changeset viewer.