Ajatus C++:n ja Pythonin eroista

"C :lla ohjelmoidessani olen Jumala. Pythonilla ohjelmoidessani komennan Jumalia."
10302
Äänestä

Muut lukivat myös

Vastaukset 10

Vanhimmat

Ja sitten esimies, märkäkorvainen insinörtti, käskee sinua, jumalten komentajaa, nöyrästi tarttumaan Visual Basiciin ja vääntämään koodia sillä.

Äänestä

Oon koodannu yli 20v eri kielillä. En tunne olevani Jumala. Kauanko PTRW on koodannu työkseen. Varmaan ei ollenkaan, kun puhuu noin pehmosia...

Äänestä

Haha minä olen vieläkin kauemmin, aloitin assembly-ohjelmoinnin jo Spectravideo 328:lla ja Z80A-prosessorilla, tuossa oli Microsoft BASIC 1.0 asennettuna tuossa kyllä.

Äänestä

Huh, samoihin aikoihin aloitettu koodailu. Joskin nykyjään koodailen mieluiten juuri Pythonilla. Tietysti myös CoffeeScriptiä, Rubyä ja Luaa pitää vilkuilla.

Äänestä

perlillä kun ohjelmoi, on pappi ja jumala. jumala luo olion, mutta pappi joutuu sen siunaamaan.
dog bless america!

Äänestä

Tää on niin hyvä keskustelualue kun kaikki on aina aiheessa mukana :)

No, oli tylsää niin testailin tuota python 3.3:sta ja värkkäilin jotain kakkaa pelikorttien muodossa. jospa tästä on jollekin jotain iloa joko hyvässä tai pahassa niin hyvä. Kommentteja ei kovin paljoa ole, mutta ehkä siitä jotain selvää saa. Toimii python 2.4 -> 3.3 asti - muita en testannut. Tällaisenaan tästä ei paljoa käytännön hyötyä ole, mutta siitä voi joku jatkaa korttipelin jos kiinnostaa

Toivotaan että tämä copypaste kikkareeni toimii vielä suomi24:ssä ja ei mene sivu täysin lukukelvottomaksi - jos meni niin anteeksi kovasti optimistisuudestani

PAH - suomi24:n mielestä liian pitkä joten joutuu paloittelemaan!

#!/usr/bin/python
# -*- coding: utf-8 -*-
import random

class Card(object):
    """A Basic Card"""
    SUITS = ['Hearts', 'Diamonds', 'Clubs', 'Spades']
    VALUES = ['', 'Ace', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven',
              'Eight', 'Nine', 'Ten', 'Jack', 'Queen', 'King']

    def __init__(self, suit, value):
        self._suit = suit
        self._value = value
        
    def __str__(self):
        return '%s of %s' % (Card.VALUES[self._value],
                              Card.SUITS[self._suit])
    def __repr__(self):
        return '%s(%s)' % (self.__class__.__name__, str(self))
    
class FaceCard(Card):
    """A Face Card"""
    pass

class NumberCard(Card):
    """A Card numbered from 2 to 10"""
    pass

class AceCard(Card):
    """An Ace"""

class CardFactory(object):
    """A simple Card factory"""
    @staticmethod
    def create_card(suit, value):
        if value == 1:
            return AceCard(suit, value)
        elif value >= 2 and value = 11 and value 

Äänestä
  • # sort types
    def suit_then_value(cards, reverse=False):
        cards.sort(key=lambda card: (card._suit, card._value), reverse=reverse)
    def value_then_suit(cards, reverse=False):
        cards.sort(key=lambda card: (card._value, card._suit), reverse=reverse)

    class Hand(object):
        def __init__(self, cards, sort_strategy=suit_then_value):
            self._sort_strategy = sort_strategy         
            self._cards = cards
            
        def sort(self):
            self._sort_strategy(self._cards)                      
            
        def __str__(self):        
            return 'Hand: '+ ', '.join((str(card) for card in self._cards))
     

    class Deck(object):
        """Deck of Cards"""
        def __init__(self, factory=CardFactory,
                     shuffle_strategy=random.shuffle,
                     sort_strategy=suit_then_value):
            self._shuffle_strategy = shuffle_strategy
            self._sort_strategy = sort_strategy
            self._cards = []        
            for suit in range(4):
                for value in range(13):
                    self._cards.append(factory.create_card(suit, value+1))

        def shuffle(self):
            self._shuffle_strategy(self._cards)

        def sort(self):
            self._sort_strategy(self._cards)
            
        def deal(self, count):
            cards = []
            for _ in range(count):
                cards.append(self._cards.pop())
            return Hand(cards)

        def __str__(self):
            return 'Deck: '+ ', '.join((str(card) for card in self._cards))
            
    if __name__ == '__main__':
        deck = Deck()

        print ('shuffling deck..')
        deck.shuffle()

        for player in range(4):
            print('dealing five cards to player%d' % player)
            hand = deck.deal(5)
            print(hand)
        
        

    Äänestä

  • pöntön pyyttoni kirjoitti:

    # sort types
    def suit_then_value(cards, reverse=False):
        cards.sort(key=lambda card: (card._suit, card._value), reverse=reverse)
    def value_then_suit(cards, reverse=False):
        cards.sort(key=lambda card: (card._value, card._suit), reverse=reverse)

    class Hand(object):
        def __init__(self, cards, sort_strategy=suit_then_value):
            self._sort_strategy = sort_strategy         
            self._cards = cards
            
        def sort(self):
            self._sort_strategy(self._cards)                      
            
        def __str__(self):        
            return 'Hand: '+ ', '.join((str(card) for card in self._cards))
     

    class Deck(object):
        """Deck of Cards"""
        def __init__(self, factory=CardFactory,
                     shuffle_strategy=random.shuffle,
                     sort_strategy=suit_then_value):
            self._shuffle_strategy = shuffle_strategy
            self._sort_strategy = sort_strategy
            self._cards = []        
            for suit in range(4):
                for value in range(13):
                    self._cards.append(factory.create_card(suit, value+1))

        def shuffle(self):
            self._shuffle_strategy(self._cards)

        def sort(self):
            self._sort_strategy(self._cards)
            
        def deal(self, count):
            cards = []
            for _ in range(count):
                cards.append(self._cards.pop())
            return Hand(cards)

        def __str__(self):
            return 'Deck: '+ ', '.join((str(card) for card in self._cards))
            
    if __name__ == '__main__':
        deck = Deck()

        print ('shuffling deck..')
        deck.shuffle()

        for player in range(4):
            print('dealing five cards to player%d' % player)
            hand = deck.deal(5)
            print(hand)
        
        

    esimerkki ulostus..

    shuffling deck..
    dealing five cards to player0
    Hand: Five of Diamonds, Ace of Spades, Queen of Clubs, Three of Hearts, Ace of Clubs
    dealing five cards to player1
    Hand: Two of Clubs, Seven of Spades, Five of Clubs, Seven of Diamonds, King of Clubs
    dealing five cards to player2
    Hand: Six of Clubs, Six of Diamonds, Ten of Diamonds, Eight of Spades, Ace of Hearts
    dealing five cards to player3
    Hand: Three of Spades, Ten of Hearts, Two of Hearts, Nine of Hearts, Two of Spades

    Äänestä

  • pöntön pyyttoni kirjoitti:

    esimerkki ulostus..

    shuffling deck..
    dealing five cards to player0
    Hand: Five of Diamonds, Ace of Spades, Queen of Clubs, Three of Hearts, Ace of Clubs
    dealing five cards to player1
    Hand: Two of Clubs, Seven of Spades, Five of Clubs, Seven of Diamonds, King of Clubs
    dealing five cards to player2
    Hand: Six of Clubs, Six of Diamonds, Ten of Diamonds, Eight of Spades, Ace of Hearts
    dealing five cards to player3
    Hand: Three of Spades, Ten of Hearts, Two of Hearts, Nine of Hearts, Two of Spades

    mjoo unohtui vielä laittaa kutsu että kädet järjestettäisiin mutta jääköön kotitehtäväsk

    Äänestä

  • pntön pyyttoni kirjoitti:

    mjoo unohtui vielä laittaa kutsu että kädet järjestettäisiin mutta jääköön kotitehtäväsk

    Aika karseen näköistä tuo Pythonin syntaksi, sama tunne kuin Objective-C:stä tulee mieleen nurinpäin käännetty eläin, suolet ulkona ja turkki sisällä.

    Mutta kait kaikkeen tottuu kun tarpeeksi vääntää?

    Äänestä

Kommentoi aloitusta


PTRW kirjoitti:

"C :lla ohjelmoidessani olen Jumala. Pythonilla ohjelmoidessani komennan Jumalia."

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu