Hidden WordScanner
Private scans · No account required

DuckieDai DUCKPET

A duck-care game in three files: hatch and look after your duck in DUCKPET, win coins in the DPGAMES minigames, and shop and check stats in DPSHOP, all sharing one save on the calculator.

games · MIT License

Overview

A duck-care game in three files: hatch and look after your duck in DUCKPET, win coins in the DPGAMES minigames, and shop and check stats in DPSHOP, all sharing one save on the calculator.

  • Owner-tested on a TI calculator
  • Version 1.0.0
  • 3 files · 7133 bytes
  • Uses random, ti_system

This game is 3 files. Download all of them and send each one to your calculator.

Before you run it

  • TI-84 Plus CE Python · No calculator OS or Python App version has been verified.
  • TI Connect CE .py transfer to the Python App, all three files; the owner's transfer details were not recorded
  • All three files, DUCKPET, DPGAMES, and DPSHOP, are on the same calculator.
  • DUCKPET is run first: it hatches your duck and creates the save, a list named DPET, that DPGAMES and DPSHOP read.
  • The game saves after every action to the calculator list DPET. Deleting that list starts over with a new duck.

Play it here first

This is the real game, all three files. Pick a file to run, the way you would in the Python App: hatch and name your duck in DUCKPET, then feed, wash, pet, and walk it, win coins in DPGAMES, and spend them in DPSHOP. Your duck is shared between the three files, like the DPET list on the calculator, and lasts until you leave or reload this page.

JavaScript is required for the optional browser simulation. Source viewing and downloading remain available without it.

Simulation boundary: This preview uses a reviewed browser adapter. It does not execute the downloaded Python and does not prove TI-Python or calculator compatibility.

How to play

How to play DUCKPET

About the game

DUCKPET is a virtual pet, duck style. Hatch a duck, name it, and keep it full, happy, rested, and clean. Its face shows how it feels, and it levels up from Duckling to Super Duck as you play.

The game is three programs that share one save. DUCKPET is your duck's home, DPGAMES has three minigames that win coins, and DPSHOP is the shop, the full stats, and help. Put all three on your calculator, and run DUCKPET first: it hatches your duck.

Controls

1 Feed
uses 1 food: Full +32 and Joy +4
2 Wash
uses 1 soap: Clean +45
3 Pet
Joy +18, plus 4 for each toy level
4 Nap
Energy +40, plus 10 for each bed level, but Full -4
5 Walk
find 8 coins and Joy +13, but Energy -10 and Clean -5
0
save and exit, or go back in the shop
enter
move on from a message screen marked [enter]

How to play

Tips

Good to know

Exact reviewed bytes

Source code

Download .py

View source below, copy it when JavaScript is available, or download the exact .py bytes.

  1. from random import randint as R
  2. from ti_system import disp_clr as cl,recall_list,store_list
  3. s=[]
  4. def cp(n):return max(0,min(100,n))
  5. def nm():return "".join(chr(x) for x in s[16:16+s[15]])
  6. def lv():return min(9,1+s[11]//25)
  7. def pz():input("[enter]")
  8. def sv():
  9. try:store_list("DPET",s)
  10. except Exception:print("SAVE FAILED!")
  11. def ld():
  12. global s
  13. try:
  14. a=[int(x) for x in recall_list("DPET")]
  15. if len(a)==24 and a[0]==1 and 1<=a[15]<=8 and min(a[1:16])>=0 and max(a[1:5])<=100:s=a;return 1
  16. except Exception:pass
  17. def tick():
  18. for i,d in((1,4),(2,2),(3,4),(4,3)):s[i]=cp(s[i]-d)
  19. s[10]+=1;s[11]+=1
  20. def done(m):sv();cl();print(nm()+": "+m);pz()
  21. def new():
  22. global s
  23. cl();print("A DUCK EGG HATCHES!")
  24. while 1:
  25. n=input("Name (1-8 letters): ").strip().upper()
  26. if 1<=len(n)<=8 and all("A"<=c<="Z" for c in n):break
  27. print("Letters A-Z only!")
  28. while 1:
  29. c=input("Color: 1 Gold 2 White\n3 Brown? ").strip()
  30. if c in("1","2","3"):break
  31. s=[1,85,80,85,85,45,3,2,0,0,0,0,0,0,int(c),len(n)]+[ord(x) for x in n]+[0]*(8-len(n));sv()
  32. cl();print(n+" HATCHED!\n"+" __\n ___(o )> quack!\n \\ <_. )\n `---'"+"\nFood x3 Soap x2 45 coins\n\nMinigames: DPGAMES\nShop + stats: DPSHOP");pz()
  33. def act(c):
  34. if c=="1":
  35. if not s[6]:return "Out of food! (DPSHOP)"
  36. s[6]-=1;tick();s[1]=cp(s[1]+32);s[2]=cp(s[2]+4);return "YUM YUM!"
  37. if c=="2":
  38. if not s[7]:return "Out of soap! (DPSHOP)"
  39. s[7]-=1;tick();s[4]=cp(s[4]+45);return "SQUEAKY CLEAN!"
  40. tick()
  41. if c=="3":s[2]=cp(s[2]+18+4*s[8]);return "QUACK QUACK!"
  42. if c=="4":s[3]=cp(s[3]+40+10*s[9]);s[1]=cp(s[1]-4);return "GOOD NAP! Zzz"
  43. s[2]=cp(s[2]+13);s[3]=cp(s[3]-10);s[4]=cp(s[4]-5);s[5]+=8;return "FOUND 8 COINS!"
  44. cl();print("DUCKPET\n"+" __\n ___(o )> quack!\n \\ <_. )\n `---'"+"\nDuckieDai (TM)\nhiddenwordscanner.com");pz()
  45. if not ld():
  46. cl()
  47. if input("No duck yet!\nHatch a new duck?\n(replaces old DPET)\n1 Yes 0 Exit\n> ")=="1":new()
  48. while s:
  49. a=(s[1]+s[2]+s[3]+s[4])//4;k=(a<80)+(a<55)+(a<30);L=lv()
  50. m=min(range(1,5),key=lambda i:s[i]);w=("Hungry!","Bored!","Sleepy!","Dirty!")[m-1] if s[m]<35 else ""
  51. cl();print(nm()+" Lv"+str(L)+" "+("Duckling","Young Duck","Super Duck")[(L>2)+(L>5)])
  52. print(" __\n ___("+"^o-x"[k]+" )> "+("SUPER HAPPY!","Happy duck","Needs care","HELP ME!")[k]+"\n \\ <_. ) "+w+"\n `---'")
  53. print("F"+str(s[1])+" J"+str(s[2])+" E"+str(s[3])+" C"+str(s[4])+" $"+str(s[5]))
  54. c=input("1 Feed("+str(s[6])+") 2 Wash("+str(s[7])+")\n3 Pet 4 Nap 5 Walk\n0 Save + exit\n> ").strip()
  55. if c=="0":sv();cl();print("Saved! QUACK! SEE YOU!\nGames: DPGAMES\nShop: DPSHOP\nDuckieDai (TM)");break
  56. if c in("1","2","3","4","5"):done(act(c))
Filename
DUCKPET.py
Size
2632 bytes
SHA-256
ef89db1add24a4f713dcf71053207f3d900428b15c60ce430fe20019e367b70d

DPGAMES.py

Download DPGAMES.py

  1. from random import randint as R
  2. from ti_system import disp_clr as cl,recall_list,store_list
  3. s=[]
  4. def cp(n):return max(0,min(100,n))
  5. def nm():return "".join(chr(x) for x in s[16:16+s[15]])
  6. def lv():return min(9,1+s[11]//25)
  7. def pz():input("[enter]")
  8. def sv():
  9. try:store_list("DPET",s)
  10. except Exception:print("SAVE FAILED!")
  11. def ld():
  12. global s
  13. try:
  14. a=[int(x) for x in recall_list("DPET")]
  15. if len(a)==24 and a[0]==1 and 1<=a[15]<=8 and min(a[1:16])>=0 and max(a[1:5])<=100:s=a;return 1
  16. except Exception:pass
  17. def tick():
  18. for i,d in((1,4),(2,2),(3,4),(4,3)):s[i]=cp(s[i]-d)
  19. s[10]+=1;s[11]+=1
  20. def done(m):sv();cl();print(nm()+": "+m);pz()
  21. def pond():
  22. c=input("POND HUNT\nOne lily pad hides\na coin bag!\nPad 1, 2 or 3? ").strip()
  23. if c not in("1","2","3"):return None
  24. x=R(1,3);cl();print("Treasure was at pad",x);return c==str(x)
  25. def math():
  26. a=R(1,12);b=R(1,12);c=input("DUCK MATH DASH\n"+str(a)+" + "+str(b)+" = ? ").strip()
  27. if not c:return None
  28. cl();print(str(a)+" + "+str(b)+" = "+str(a+b));return c==str(a+b)
  29. def echo():
  30. n=str(R(100,999));input("QUACK MEMORY\nRemember: "+n+"\n[enter] when ready");cl()
  31. c=input("What was the code?\n> ").strip()
  32. if not c:return None
  33. cl();print("Code was "+n);return c==n
  34. cl();print("DUCKPET GAMES\n"+" __\n ___(^ )> play time!\n \\ <_. )\n `---'"+"\nDuckieDai (TM)\nhiddenwordscanner.com");pz()
  35. if not ld():cl();print("No duck found!\nRun DUCKPET first.")
  36. else:
  37. while 1:
  38. cl();c=input("PLAY WITH "+nm()+"\nEnergy "+str(s[3])+" Coins "+str(s[5])+"\n1 Pond Hunt\n2 Math Dash\n3 Quack Memory\n0 Save + exit\n> ").strip()
  39. if c=="0":sv();cl();print("Saved! QUACK!\nDuckieDai (TM)");break
  40. if c not in("1","2","3"):continue
  41. if s[3]<12 or s[1]<10:cl();print(nm()+" is tired!\nFeed or nap first\nin DUCKPET.");pz();continue
  42. cl();w=(pond,math,echo)[int(c)-1]()
  43. if w is None:continue
  44. tick();s[3]=cp(s[3]-7);s[4]=cp(s[4]-3);s[13]+=1
  45. if w:k=18+s[8]*3;s[5]+=k;s[12]+=1;s[11]+=3;s[2]=cp(s[2]+16);done("WIN! +"+str(k)+" COINS")
  46. else:s[5]+=4;s[2]=cp(s[2]+6);done("GOOD TRY! +4 coins")
Filename
DPGAMES.py
Size
2048 bytes
SHA-256
27ecb8bf4e45744bfb65330e1ee16005c4022904c6f336de6576dda1b40634c7

DPSHOP.py

Download DPSHOP.py

  1. from random import randint as R
  2. from ti_system import disp_clr as cl,recall_list,store_list
  3. s=[]
  4. def cp(n):return max(0,min(100,n))
  5. def nm():return "".join(chr(x) for x in s[16:16+s[15]])
  6. def lv():return min(9,1+s[11]//25)
  7. def pz():input("[enter]")
  8. def sv():
  9. try:store_list("DPET",s)
  10. except Exception:print("SAVE FAILED!")
  11. def ld():
  12. global s
  13. try:
  14. a=[int(x) for x in recall_list("DPET")]
  15. if len(a)==24 and a[0]==1 and 1<=a[15]<=8 and min(a[1:16])>=0 and max(a[1:5])<=100:s=a;return 1
  16. except Exception:pass
  17. def tick():
  18. for i,d in((1,4),(2,2),(3,4),(4,3)):s[i]=cp(s[i]-d)
  19. s[10]+=1;s[11]+=1
  20. def done(m):sv();cl();print(nm()+": "+m);pz()
  21. def shop():
  22. while 1:
  23. cl();c=input("DUCKPET SHOP $"+str(s[5])+"\n1 Food x3 15\n2 Soap x2 12\n3 Toy Lv"+str(s[8])+(" MAX" if s[8]>2 else " "+str(45+35*s[8]))+"\n4 Bed Lv"+str(s[9])+(" MAX" if s[9]>2 else " "+str(60+40*s[9]))+"\n0 Back\n> ").strip()
  24. if c=="0":return
  25. if c not in("1","2","3","4"):continue
  26. i=int(c)+5
  27. if c in("3","4") and s[i]>2:continue
  28. p=(15,12,45+35*s[8],60+40*s[9])[i-6]
  29. if input("Buy for "+str(p)+"? 1 Yes 0 No: ").strip()!="1":continue
  30. if s[5]<p:cl();print("Not enough coins!\nWalk or play games\nto earn more.");pz();continue
  31. s[5]-=p;s[i]+=(3,2,1,1)[i-6];done("PURCHASED!")
  32. def stats():
  33. L=lv();cl();print(nm()+" ("+("Gold","White","Brown")[s[14]-1]+")\n"+("Duckling","Young Duck","Super Duck")[(L>2)+(L>5)]+" Lv"+str(L)+" XP "+str(s[11])+"\nDay "+str(1+s[10]//6)+"\nGames "+str(s[13])+" Wins "+str(s[12])+"\nToy Lv"+str(s[8])+" Bed Lv"+str(s[9])+"\nFood "+str(s[6])+" Soap "+str(s[7]))
  34. print("Full "+str(s[1])+" Joy "+str(s[2])+"\nEnergy "+str(s[3])+" Clean "+str(s[4])+"\nCoins "+str(s[5]));pz()
  35. def hlp():
  36. cl();print("HOW TO PLAY\nDUCKPET: care for duck\nDPGAMES: earn coins\nDPSHOP: shop + stats\nStats drop each turn.\nToy: more joy + coins\nBed: better naps\n6 turns = 1 day");pz()
  37. cl();print("No real-time decay\nand no permanent death.\nSaves to list DPET -\ndon't delete it!\nDelete DPET to start\na brand new duck.");pz()
  38. cl();print("DUCKPET SHOP\n"+" __\n ___(o )> shopping!\n \\ <_. )\n `---'"+"\nDuckieDai (TM)\nhiddenwordscanner.com");pz()
  39. if not ld():cl();print("No duck found!\nRun DUCKPET first.")
  40. else:
  41. while 1:
  42. cl();c=input(nm()+" $"+str(s[5])+"\n1 Shop 2 Stats\n3 Help 0 Save + exit\n> ").strip()
  43. if c=="0":sv();cl();print("Saved! QUACK!\nDuckieDai (TM)");break
  44. if c in("1","2","3"):(shop,stats,hlp)[int(c)-1]()
Filename
DPSHOP.py
Size
2453 bytes
SHA-256
82d124461c7452e32647421845acd4446e205d106b7fb1ec5526eb83203157a2

Usage

Inputs

  • Menu choices typed as numbers, then Enter
  • A duck name of 1 to 8 letters A to Z, and a color
  • Minigame answers: a lily pad, a sum, or a 3-digit code

Outputs

  • Your duck's mood face, level, and its fullness, joy, energy, cleanliness, and coins
  • Three minigames that win coins and XP
  • A shop for food, soap, toy, and bed upgrades, and a full stats screen

Units: Coins and stat points; no units.

Assumptions and limitations

Assumptions

  • All three files, DUCKPET, DPGAMES, and DPSHOP, are on the same calculator.
  • DUCKPET is run first: it hatches your duck and creates the save, a list named DPET, that DPGAMES and DPSHOP read.

Constraints

  • The game saves after every action to the calculator list DPET. Deleting that list starts over with a new duck.
  • Time passes only when you take a turn; there is no real-time decay and no permanent death.

Known failures

  • The game needs the calculator's ti_system module to clear the screen and save; on a computer it stops with an import error.
  • If the DPET list is changed by hand so it no longer looks like a DUCKPET save, the game ignores it and offers to hatch a new duck.

Compatibility and review

Review status
Owner-tested on a TI calculator
Tested on
Owner reports personally running all three files on a TI-84 Plus CE Python calculator; the test date, OS version, and Python App version were not recorded
What happened
Owner reported pass on the calculator: the three files run and share the DPET save. The published files are the owner's files unchanged.
Dependencies
random, ti_system
Calculator names
DUCKPET, DPGAMES, DPSHOP — keep these names: the files open each other's saved data by name
Desktop test cases
Not available for this interactive-only source

This exact source auto-launches an interactive calculator session, so compatibility evidence comes from the recorded physical-device review rather than an importable desktop fixture.

Transfer and launch

Download the .py file, send it to your calculator with TI Connect CE as DUCKPET or another name, then open the Python App and start a game. Press [on] to stop at any time. This release has no verified calculator OS or Python App version; treat transfer and execution as unverified until independently tested.

Full installation and troubleshooting guide. Check your teacher's or exam's rules before using any program.

Version history

Enjoying a DuckieDai game? Every game and program here is free. If you would like to say thanks, you can leave a tip on Cash App ($duckiedai214) or read what tips pay for.

Independent compatibility resource: Hidden Word Scanner is independent and is not affiliated with or endorsed by Texas Instruments. TI product names describe compatibility only.

Action-count privacy: Successful downloads, preview starts, and preview completions increment same-origin aggregate counters, and so does a Yes or No answer about whether the program worked. Your browser notes that you answered; that note is never sent to the site. No entered values, source text, IP address, account, cookie, device identifier, or fingerprint is stored with these counts.