Bitcoin Forum
November 14, 2024, 08:27:30 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Warning: One or more bitcointalk.org users have reported that they strongly believe that the creator of this topic is a scammer. (Login to see the detailed trust ratings.) While the bitcointalk.org administration does not verify such claims, you should proceed with extreme caution.
Pages: « 1 2 3 4 [5] 6 »  All
  Print  
Author Topic: SolidCoin Now officially most secure p2p currency  (Read 9407 times)
sd
Hero Member
*****
Offline Offline

Activity: 730
Merit: 500



View Profile
October 15, 2011, 03:35:31 PM
 #81

Haha. Can you be any more scared of SolidCoin? Probably not. Welcome to the future and the current best cryptocurrency going around. Jump on before it's too late.

You know that time you were looking for evidence of your own lies? Well look above and you will find a whopper.
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
October 15, 2011, 03:35:45 PM
 #82

Haha. Can you be any more scared of SolidCoin? Probably not. Welcome to the future and the current best cryptocurrency going around. Jump on before it's too late.

The funny thing is that a scam of any kind always includes language like this.  The need for immediacy is important.  Convince people they have so much to lose by not acting to force an action.  

So you say ScamCoin 2.0 isn't a scam yet you keep it as closed source and then use scam baiting language in your communications.  The use of sock puppets to create a "consensus" among multiple "people" (all yourself) that it can be trusted is just icing on the cake.

CoinHunter
Sr. Member
****
Offline Offline

Activity: 252
Merit: 251



View Profile
October 15, 2011, 03:38:38 PM
 #83

Haha. Can you be any more scared of SolidCoin? Probably not. Welcome to the future and the current best cryptocurrency going around. Jump on before it's too late.

The funny thing is that a scam of any kind always includes language like this.  The need for immediacy is important.  Convince people they have so much to lose by not acting to force an action.  

So you say ScamCoin 2.0 isn't a scam yet you keep it as closed source and then use scam baiting language in your communications.  The use of sock puppets to create a "consensus" among multiple "people" (all yourself) that it can be trusted is just icing on the cake.

You're a bit jealous aren't you. Have you seen the new client? It has mining built right into it, now everyone can just easily mine SolidCoin's and become part of the network. It's probably why the network is so large now. Let me show you what actual development looks like.



Neat eh.

Try SolidCoin or talk with other SolidCoin supporters here SolidCoin Forums
sd
Hero Member
*****
Offline Offline

Activity: 730
Merit: 500



View Profile
October 15, 2011, 03:42:21 PM
 #84

You're a bit jealous aren't you. Have you seen the new client? It has mining built right into it, now everyone can just easily mine SolidCoin's and become part of the network. It's probably why the network is so large now. Let me show you what actual development looks like.

Neat eh.

We are a little more interested in how the thing functions than how pretty the client is. Only that lemon party moron would trust your secret network because of Oh! Look! Shiny!
CoinHunter
Sr. Member
****
Offline Offline

Activity: 252
Merit: 251



View Profile
October 15, 2011, 03:45:49 PM
 #85

We are a little more interested in how the thing functions than how pretty the client is. Only that lemon party moron would trust your secret network because of Oh! Look! Shiny!

I understand that, but part of the problem of cryptocurrencies to this point is their complete lack of usability. So it's important to make things easy to use for everyone, combined with like you said, having a secure and fast network protocol.

Being able to just install and be 2 clicks from making or sending SolidCoin's is obviously a big deal to a lot of people, don't gloss over it.


Try SolidCoin or talk with other SolidCoin supporters here SolidCoin Forums
MaGNeT
Legendary
*
Offline Offline

Activity: 1526
Merit: 1002


Waves | 3PHMaGNeTJfqFfD4xuctgKdoxLX188QM8na


View Profile WWW
October 15, 2011, 03:48:46 PM
 #86

People look out, I have heard there is a keylogger/wallet-stealer in the SC2 client!
sd
Hero Member
*****
Offline Offline

Activity: 730
Merit: 500



View Profile
October 15, 2011, 03:53:27 PM
 #87

I understand that, but part of the problem of cryptocurencies to this point is their complete lack of usability.

And you have fixed that by making bigger problems. Wonderful! Now the biggest problem with SolidCoin isn't the lack of usability but the unstable network design, the tax, and the 12 million premined coins. That's real progress!


You took a peer to peer network, centralized it, and added tax, broke the transaction fee setup, and got your blockchain dosed in the process. You are a moron and could be easily replaced with the bottom grade of code money from Infosys or Wipro.

sd
Hero Member
*****
Offline Offline

Activity: 730
Merit: 500



View Profile
October 15, 2011, 03:55:56 PM
 #88

People look out, I have heard there is a keylogger/wallet-stealer in the SC2 client!

Hang on, I'll check the source. Oh I can't because I don't have it.

Maybe you are right and this whole SolidCoin thing is an excuse to get code on people's machines to steal wallet.dat's.

CoinHunter
Sr. Member
****
Offline Offline

Activity: 252
Merit: 251



View Profile
October 15, 2011, 03:56:20 PM
 #89

I understand that, but part of the problem of cryptocurencies to this point is their complete lack of usability.

And you have fixed that by making bigger problems. Wonderful! Now the biggest problem with SolidCoin isn't the lack of usability but the unstable network design, the tax, and the 12 million premined coins. That's real progress!


You took a peer to peer network, centralized it, and added tax, broke the transaction fee setup, and got your blockchain dosed in the process. You are a moron and could be easily replaced with the bottom grade of code money from Infosys or Wipro.

The 12 million coins cannot be used on the network, the CPF or tax yes some people won't like it. I didn't centralize SolidCoin much at all, it's 5% economic centralized, the network is still very decentralized because I believe that is the most secure way to protect against large corporations and governments. Unlike you I'm not living in a fantasy land where I don't understand the problems and inefficiencies with this technology.

As you can see, the new mining options in SolidCoin show parts of the new block header format and the ability for SolidCoin v2.0 to act as a minipool.




Try SolidCoin or talk with other SolidCoin supporters here SolidCoin Forums
sd
Hero Member
*****
Offline Offline

Activity: 730
Merit: 500



View Profile
October 15, 2011, 04:05:18 PM
 #90

The 12 million coins cannot be used on the network, the CPF or tax yes some people won't like it. I didn't centralize SolidCoin much at all, it's 5% economic centralized, the network is still very decentralized because I believe that is the most secure way to protect against large corporations and governments. Unlike you I'm not living in a fantasy land where I don't understand the problems and inefficiencies with this technology.

You want people to take your word that there are 12 million magic coins that can't be spent in your network? Maybe there are 12 Googolplex coins and maybe they can all be spent by you. We only have your word that they can't be spent because you won't release the source code. And in case you have not got the message we don't trust your word over the facts in the source code. It seems pretty likely there are all kinds of other nasty surprises in there.

You don't seem to know what you are doing and posting pretty graphics isn't going to change that.
sd
Hero Member
*****
Offline Offline

Activity: 730
Merit: 500



View Profile
October 15, 2011, 04:12:07 PM
 #91

As you can see, the new mining options in SolidCoin show parts of the new block header format and the ability for SolidCoin v2.0 to act as a minipool.

CoinHunter
Sr. Member
****
Offline Offline

Activity: 252
Merit: 251



View Profile
October 15, 2011, 05:09:45 PM
 #92

This code shows that every client will reject any trusted fund attempting to be spent on the network. Any block containing it will be rejected, anyone trying to send a trusted transaction will not get it propagated.

Code:
bool CTransaction::ConnectInputs(CTxDB& txdb, std::map<uint256, CTxIndex>& mapTestPool, CDiskTxPos posThisTx,CBlockIndex* pindexBlock, int64& nFees, bool fBlock, bool fMiner, bool bTrustedTX)
{
    // Take over previous transactions' spent pointers
    if (!IsCoinBase())
    {
        int64 nValueIn = 0;
        for (int i = 0; i < vin.size(); i++)
        {
            COutPoint prevout = vin[i].prevout;
            printf("connect inputs prevout: ");
            prevout.print();

            // Read txindex
            CTxIndex txindex;
            bool fFound = true;
            if ((fBlock || fMiner) && mapTestPool.count(prevout.hash))
            {
                txindex = mapTestPool[prevout.hash];    // Get txindex from current proposed changes
            }
            else
            {
                fFound = txdb.ReadTxIndex(prevout.hash, txindex);   // Read txindex from txdb
            }
            if (!fFound && (fBlock || fMiner))
                return fMiner ? false : error("ConnectInputs() : %s prev tx %s index entry not found", GetHash().ToString().substr(0,10).c_str(),  prevout.hash.ToString().substr(0,10).c_str());

            // Read txPrev
            CTransaction txPrev;
            if (!fFound || txindex.pos == CDiskTxPos(1,1,1))
            {
                // Get prev tx from single transactions in memory
                {
                    MUTEX_LOCK(cs_mapTransactions);
                    if (!mapTransactions.count(prevout.hash))   return error("ConnectInputs() : %s mapTransactions prev not found %s", GetHash().ToString().substr(0,10).c_str(),  prevout.hash.ToString().substr(0,10).c_str());
                    txPrev = mapTransactions[prevout.hash];
                }
                if (!fFound)    txindex.vSpent.resize(txPrev.vout.size());
            }
            else
            {
                // Get prev tx from disk
                if (!txPrev.ReadFromDisk(txindex.pos))
                    return error("ConnectInputs() : %s ReadFromDisk prev tx %s failed", GetHash().ToString().substr(0,10).c_str(),  prevout.hash.ToString().substr(0,10).c_str());
            }

            if (prevout.n >= txPrev.vout.size() || prevout.n >= txindex.vSpent.size())
                return error("ConnectInputs() : %s prevout.n out of range %d %d %d prev tx %s\n%s", GetHash().ToString().substr(0,10).c_str(), prevout.n, txPrev.vout.size(), txindex.vSpent.size(), prevout.hash.ToString().substr(0,10).c_str(), txPrev.ToString().c_str());

            if(bTrustedTX)
            {
                if(!::IsStandard(txPrev.vout[prevout.n].scriptPubKey))              return error("ConnectInputs() : trusted tx isnt standard");
                if(txPrev.vout[prevout.n].nValue<(TRUST_FUND_AMOUNT*COIN))          return error("ConnectInputs() : not enough SC for a trusted block");
                if(txPrev.vout[prevout.n].scriptPubKey != vout[0].scriptPubKey)     return error("ConnectInputs() : trusted tx pubkey does not match previous");
                int64 valDiff = txPrev.vout[prevout.n].nValue-vout[0].nValue;
                int64 blockValue = Block_GetCoinBaseValue(pindexBlock->blk.dwBits, pindexBlock->blk.nBlockNum);
                if(valDiff<blockValue)                                              return error("ConnectInputs() : trusted tx payment less than CPF");
            }
            else
            {
                CSolidCoinAddress addr=txPrev.vout[prevout.n].scriptPubKey.GetSolidCoinAddress();
                if(addr.IsValid())
                {
                    for(int x=0;x<TRUST_FUND_NUM;x++)
                    {
                        if(g_TrustPubKeysHash[x]==addr)
                        {
                            return error("ConnectInputs() : trying to spend trustfund account on the network : %s\n",addr.ToString().c_str());
                        }
                    }
                }
                else
                {
                    std::string txstr = txPrev.vout[prevout.n].scriptPubKey.ToString();
                    for(int x=0;x<TRUST_FUND_NUM;x++)
                    {
                        if(txstr.find(g_TrustPubKeys[x])!=std::string::npos)
                        {
                            return error("ConnectInputs() : trying to spend trustfund account on the network : %s\n",txstr.c_str());
                        }
                    }
                }
            }

            // If prev is coinbase, check that it's matured
            if (txPrev.IsCoinBase())
            {
                bool bTrusted=false;

                if(pindexBlock->blk.nBlockNum<=COINBASE_MATURITY)
                {
                    for(int x=0;x<TRUST_FUND_NUM;x++)
                    {
                        if(txPrev.vout[0].scriptPubKey==g_TrustedScript[x])
                        {
                            bTrusted=true;
                            break;
                        }
                    }
                    if(txPrev.vout[0].scriptPubKey==g_GenScript)   bTrusted=true;
                }
                if(!bTrusted)
                {
                    for (CBlockIndex* pindex = pindexBlock; pindex && pindexBlock->blk.nBlockNum - pindex->blk.nBlockNum < COINBASE_MATURITY; pindex = pindex->pprev)
                        if (pindex->nBlockPos == txindex.pos.nBlockPos && pindex->nFile == txindex.pos.nFile)
                            return error("ConnectInputs() : tried to spend coinbase at depth %"PRI64d"", pindexBlock->blk.nBlockNum - pindex->blk.nBlockNum);
                }
            }

            if (!VerifySignature(txPrev, *this, i)) return error("ConnectInputs() : %s VerifySignature failed", GetHash().ToString().substr(0,10).c_str());

            // Check for conflicts
            if (!txindex.vSpent[prevout.n].IsNull())    return fMiner ? false : error("ConnectInputs() : %s prev tx already used at %s", GetHash().ToString().substr(0,10).c_str(), txindex.vSpent[prevout.n].ToString().c_str());

            // Check for negative or overflow input values
            nValueIn += txPrev.vout[prevout.n].nValue;
            if (txPrev.vout[prevout.n].nValue<=0 || nValueIn<=0)    return error("ConnectInputs() : txin values out of range");

            txindex.vSpent[prevout.n] = posThisTx;  // Mark outpoints as spent

            // Write back
            if (fBlock || fMiner)
            {
                mapTestPool[prevout.hash] = txindex;
            }
        }

        if (nValueIn < GetValueOut())   return error("ConnectInputs() : %s value in < value out", GetHash().ToString().substr(0,10).c_str());

        // Tally transaction fees
        int64 nTxFee = nValueIn - GetValueOut();
        if (nTxFee < 0)         return error("ConnectInputs() : %s nTxFee < 0", GetHash().ToString().substr(0,10).c_str());
        if (nTxFee < GetMinFee())   return false;
        nFees += nTxFee;
        if (nFees<=0) return error("ConnectInputs() : nFees out of range");
    }

    if (fBlock)
    {
       // Add transaction to changes
        mapTestPool[GetHash()] = CTxIndex(posThisTx, vout.size());
    }
    else if (fMiner)
    {
        // Add transaction to test pool
        mapTestPool[GetHash()] = CTxIndex(CDiskTxPos(1,1,1), vout.size());
    }

    return true;
}


Try SolidCoin or talk with other SolidCoin supporters here SolidCoin Forums
BitcoinPorn
Hero Member
*****
Offline Offline

Activity: 630
Merit: 500


Posts: 69


View Profile WWW
October 15, 2011, 05:11:25 PM
 #93

The built in GUI miner with pool choices would be huge for any coin that took the time out to ensure they implement that, well done design choice.

johnj
Full Member
***
Offline Offline

Activity: 154
Merit: 100


View Profile
October 15, 2011, 05:11:50 PM
 #94

CH, that code means nothing - whos to say you didn't just write that crap up just now?

Secondly, CryptoX already called you out for adding Kens name w/o consultation. And BitcoinMedia.

Fail troll is fail.

1AeW7QK59HvEJwiyMztFH1ubWPSLLKx5ym
TradeHill Referral TH-R120549
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
October 15, 2011, 05:14:06 PM
 #95

This code shows that every client will reject any trusted fund attempting to be spent on the network. Any block containing it will be rejected, anyone trying to send a trusted transaction will not get it propagated.

Code:
bool CTransaction::ConnectInputs(CTxDB& txdb, std::map<uint256, CTxIndex>& mapTestPool, CDiskTxPos posThisTx,CBlockIndex* pindexBlock, int64& nFees, bool fBlock, bool fMiner, bool bTrustedTX)
{
    // Take over previous transactions' spent pointers
    if (!IsCoinBase())
    {
        int64 nValueIn = 0;
        for (int i = 0; i < vin.size(); i++)
        {
            COutPoint prevout = vin[i].prevout;
            printf("connect inputs prevout: ");
            prevout.print();

            // Read txindex
            CTxIndex txindex;
            bool fFound = true;
            if ((fBlock || fMiner) && mapTestPool.count(prevout.hash))
            {
                txindex = mapTestPool[prevout.hash];    // Get txindex from current proposed changes
            }
            else
            {
                fFound = txdb.ReadTxIndex(prevout.hash, txindex);   // Read txindex from txdb
            }
            if (!fFound && (fBlock || fMiner))
                return fMiner ? false : error("ConnectInputs() : %s prev tx %s index entry not found", GetHash().ToString().substr(0,10).c_str(),  prevout.hash.ToString().substr(0,10).c_str());

            // Read txPrev
            CTransaction txPrev;
            if (!fFound || txindex.pos == CDiskTxPos(1,1,1))
            {
                // Get prev tx from single transactions in memory
                {
                    MUTEX_LOCK(cs_mapTransactions);
                    if (!mapTransactions.count(prevout.hash))   return error("ConnectInputs() : %s mapTransactions prev not found %s", GetHash().ToString().substr(0,10).c_str(),  prevout.hash.ToString().substr(0,10).c_str());
                    txPrev = mapTransactions[prevout.hash];
                }
                if (!fFound)    txindex.vSpent.resize(txPrev.vout.size());
            }
            else
            {
                // Get prev tx from disk
                if (!txPrev.ReadFromDisk(txindex.pos))
                    return error("ConnectInputs() : %s ReadFromDisk prev tx %s failed", GetHash().ToString().substr(0,10).c_str(),  prevout.hash.ToString().substr(0,10).c_str());
            }

            if (prevout.n >= txPrev.vout.size() || prevout.n >= txindex.vSpent.size())
                return error("ConnectInputs() : %s prevout.n out of range %d %d %d prev tx %s\n%s", GetHash().ToString().substr(0,10).c_str(), prevout.n, txPrev.vout.size(), txindex.vSpent.size(), prevout.hash.ToString().substr(0,10).c_str(), txPrev.ToString().c_str());

            if(bTrustedTX)
            {
                if(!::IsStandard(txPrev.vout[prevout.n].scriptPubKey))              return error("ConnectInputs() : trusted tx isnt standard");
                if(txPrev.vout[prevout.n].nValue<(TRUST_FUND_AMOUNT*COIN))          return error("ConnectInputs() : not enough SC for a trusted block");
                if(txPrev.vout[prevout.n].scriptPubKey != vout[0].scriptPubKey)     return error("ConnectInputs() : trusted tx pubkey does not match previous");
                int64 valDiff = txPrev.vout[prevout.n].nValue-vout[0].nValue;
                int64 blockValue = Block_GetCoinBaseValue(pindexBlock->blk.dwBits, pindexBlock->blk.nBlockNum);
                if(valDiff<blockValue)                                              return error("ConnectInputs() : trusted tx payment less than CPF");
            }
            else
            {
                CSolidCoinAddress addr=txPrev.vout[prevout.n].scriptPubKey.GetSolidCoinAddress();
                if(addr.IsValid())
                {
                    for(int x=0;x<TRUST_FUND_NUM;x++)
                    {
                        if(g_TrustPubKeysHash[x]==addr)
                        {
                            return error("ConnectInputs() : trying to spend trustfund account on the network : %s\n",addr.ToString().c_str());
                        }
                    }
                }
                else
                {
                    std::string txstr = txPrev.vout[prevout.n].scriptPubKey.ToString();
                    for(int x=0;x<TRUST_FUND_NUM;x++)
                    {
                        if(txstr.find(g_TrustPubKeys[x])!=std::string::npos)
                        {
                            return error("ConnectInputs() : trying to spend trustfund account on the network : %s\n",txstr.c_str());
                        }
                    }
                }
            }

            // If prev is coinbase, check that it's matured
            if (txPrev.IsCoinBase())
            {
                bool bTrusted=false;

                if(pindexBlock->blk.nBlockNum<=COINBASE_MATURITY)
                {
                    for(int x=0;x<TRUST_FUND_NUM;x++)
                    {
                        if(txPrev.vout[0].scriptPubKey==g_TrustedScript[x])
                        {
                            bTrusted=true;
                            break;
                        }
                    }
                    if(txPrev.vout[0].scriptPubKey==g_GenScript)   bTrusted=true;
                }
                if(!bTrusted)
                {
                    for (CBlockIndex* pindex = pindexBlock; pindex && pindexBlock->blk.nBlockNum - pindex->blk.nBlockNum < COINBASE_MATURITY; pindex = pindex->pprev)
                        if (pindex->nBlockPos == txindex.pos.nBlockPos && pindex->nFile == txindex.pos.nFile)
                            return error("ConnectInputs() : tried to spend coinbase at depth %"PRI64d"", pindexBlock->blk.nBlockNum - pindex->blk.nBlockNum);
                }
            }

            if (!VerifySignature(txPrev, *this, i)) return error("ConnectInputs() : %s VerifySignature failed", GetHash().ToString().substr(0,10).c_str());

            // Check for conflicts
            if (!txindex.vSpent[prevout.n].IsNull())    return fMiner ? false : error("ConnectInputs() : %s prev tx already used at %s", GetHash().ToString().substr(0,10).c_str(), txindex.vSpent[prevout.n].ToString().c_str());

            // Check for negative or overflow input values
            nValueIn += txPrev.vout[prevout.n].nValue;
            if (txPrev.vout[prevout.n].nValue<=0 || nValueIn<=0)    return error("ConnectInputs() : txin values out of range");

            txindex.vSpent[prevout.n] = posThisTx;  // Mark outpoints as spent

            // Write back
            if (fBlock || fMiner)
            {
                mapTestPool[prevout.hash] = txindex;
            }
        }

        if (nValueIn < GetValueOut())   return error("ConnectInputs() : %s value in < value out", GetHash().ToString().substr(0,10).c_str());

        // Tally transaction fees
        int64 nTxFee = nValueIn - GetValueOut();
        if (nTxFee < 0)         return error("ConnectInputs() : %s nTxFee < 0", GetHash().ToString().substr(0,10).c_str());
        if (nTxFee < GetMinFee())   return false;
        nFees += nTxFee;
        if (nFees<=0) return error("ConnectInputs() : nFees out of range");
    }

    if (fBlock)
    {
       // Add transaction to changes
        mapTestPool[GetHash()] = CTxIndex(posThisTx, vout.size());
    }
    else if (fMiner)
    {
        // Add transaction to test pool
        mapTestPool[GetHash()] = CTxIndex(CDiskTxPos(1,1,1), vout.size());
    }

    return true;
}



Which means nothing.  That may not even be the source code that is running.  Still even if we TRUST (once again that implicit trust thing) you it still means nothing,

Trust Node -> Spend (this has been blocked)
Tust Node -> Coinhunter wealth transfer system (aka "even blocks) -> coinhunter's personal wallet -> Spend (this most certainly is not blocked)

10% of all coins mined end up in your personal wallet where they can be spent as you see fit.   You can't obfuscate that away.
sd
Hero Member
*****
Offline Offline

Activity: 730
Merit: 500



View Profile
October 15, 2011, 05:14:13 PM
 #96

This code shows that every client will reject any trusted fund attempting to be spent on the network. Any block containing it will be rejected, anyone trying to send a trusted transaction will not get it propagated.

How do we know that is the same code used in the SolidCoin client? We don't.
Clipse
Hero Member
*****
Offline Offline

Activity: 504
Merit: 502


View Profile
October 15, 2011, 05:15:31 PM
 #97

So then its settled, no point releasing the source if it would mean nothing right?

Cool.

...In the land of the stale, the man with one share is king... >> Clipse

We pay miners at 130% PPS | Signup here : Bonus PPS Pool (Please read OP to understand the current process)
sd
Hero Member
*****
Offline Offline

Activity: 730
Merit: 500



View Profile
October 15, 2011, 05:19:20 PM
 #98

So then its settled, no point releasing the source if it would mean nothing right?

Cool.

That doesn't make sense. If CH releases ALL the code, and we can compile it, and it runs as expected on his network, then we would at least be capable of checking it for nasties.

Releasing small bits of code that may or may not be the code from the client doesn't prove a thing.
DeathAndTaxes
Donator
Legendary
*
Offline Offline

Activity: 1218
Merit: 1079


Gerald Davis


View Profile
October 15, 2011, 05:22:18 PM
 #99

So then its settled, no point releasing the source if it would mean nothing right?

Cool.

Are you brain damaged?  Releasing the entire source code would allow someone to COMPILE that source code and be 100% sure what is running on their computer = source code.

Releasing a snipet of code and saying "trust me this is what is running on your computer" = worthless.
MaGNeT
Legendary
*
Offline Offline

Activity: 1526
Merit: 1002


Waves | 3PHMaGNeTJfqFfD4xuctgKdoxLX188QM8na


View Profile WWW
October 15, 2011, 05:22:25 PM
 #100

CoinHunter just released another piece of SC2 code:

Code:
REFRAIN = '''
%d bottles of beer on the wall,
%d bottles of beer,
take one down, pass it around,
%d bottles of beer on the wall!
'''
bottles_of_beer = 99
while bottles_of_beer > 1:
    print REFRAIN % (bottles_of_beer, bottles_of_beer,
        bottles_of_beer - 1)
    bottles_of_beer -= 1
Pages: « 1 2 3 4 [5] 6 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!