Advertisement
maziari

SSBB - Turnip Bot

Feb 7th, 2023
771
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 9.53 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. void advance_seed(long *seed){
  6.     *seed = (*seed * 0x41C64E6D + 0x3039) & 0x7FFFFFFF;
  7. }
  8.  
  9. void back_seed(long *seed){
  10.     *seed = (*seed * 0x6EB9EB65 + 0x7C77A683) & 0x7FFFFFFF;
  11. }
  12.  
  13. char* select_turnip(long seed, long nseed){
  14.     int isitem = (unsigned long)((seed >> 8) * 80) >> 23;
  15.     int n;
  16.     if(isitem == 0){
  17.         n = (unsigned long)((nseed >> 8) * 6) >> 23;
  18.         if(n < 2){ return "bomb"; }
  19.         else if(n < 5){ return "saturn"; }
  20.         else{ return "sword"; }
  21.     }else{
  22.         n = (unsigned long)(nseed * 58) >> 31;
  23.         if(n < 35){ return "t0"; }
  24.         else if(n < 41){ return "t1"; }
  25.         else if(n < 46){ return "t2"; }
  26.         else if(n < 49){ return "t3"; }
  27.         else if(n < 52){ return "t4"; }
  28.         else if(n < 56){ return "t5"; }
  29.         else if(n < 57){ return "t6"; }
  30.         else{ return "t7"; }
  31.     }
  32. }
  33.  
  34. int main(int argc, char *argv[])
  35. {
  36.     char name[401][11] ={
  37.         "100%",
  38.         "8BIT",
  39.         "ああああ",
  40.         "アオチャン",
  41.         "あかみ",
  42.         "あきなす",
  43.         "アケオメ",
  44.         "あすなろ",
  45.         "あと1ぽん",
  46.         "あなご",
  47.         "あなのぬし",
  48.         "アニ",
  49.         "あばれんぼ",
  50.         "アフロヘア",
  51.         "あまとう",
  52.         "ありとん",
  53.         "あるでんて",
  54.         "あろあろ",
  55.         "アロハオエ",
  56.         "あんぱん",
  57.         "イカフライ",
  58.         "いただき",
  59.         "いやいや",
  60.         "インドラー",
  61.         "うぃー",
  62.         "ヴィーナス",
  63.         "ウエルカム",
  64.         "ウキャキャ",
  65.         "うすくち",
  66.         "うっとり",
  67.         "うにゃりん",
  68.         "エチル",
  69.         "エックス",
  70.         "えっへん",
  71.         "えぴ",
  72.         "エンペラー",
  73.         "おいたん",
  74.         "おうごん",
  75.         "おおあたり",
  76.         "おおとろ",
  77.         "おかん",
  78.         "おさきです",
  79.         "おだいかん",
  80.         "おでん",
  81.         "おならプー",
  82.         "おにいたん",
  83.         "おにわばん",
  84.         "おひつ",
  85.         "おプリン",
  86.         "おめし",
  87.         "かいがん",
  88.         "カクテキ",
  89.         "カターカタ",
  90.         "かちょう",
  91.         "かっぱまき",
  92.         "ガニ",
  93.         "かまくら",
  94.         "かまたま",
  95.         "からすみ",
  96.         "からてか",
  97.         "カリーマン",
  98.         "かるしうむ",
  99.         "カルビ",
  100.         "カレー",
  101.         "ガンジス",
  102.         "がんもどき",
  103.         "ギアラ",
  104.         "キジトラ",
  105.         "キャップ",
  106.         "キャメロン",
  107.         "キューベエ",
  108.         "きれこみ",
  109.         "ぎんぴか",
  110.         "グェ",
  111.         "くっちゃね",
  112.         "くにまつ",
  113.         "ぐらま~",
  114.         "ぐらんぱ",
  115.         "ぐりぐり",
  116.         "クリス",
  117.         "くるとん",
  118.         "くろおび",
  119.         "ぐんそう",
  120.         "ケーオー",
  121.         "ゲジゲジ",
  122.         "ケチャラー",
  123.         "ゲッコウ",
  124.         "ゲンブ",
  125.         "こうちゃ",
  126.         "コーチ",
  127.         "ごっつぁん",
  128.         "ことこと",
  129.         "ごはん",
  130.         "コミット",
  131.         "ごめいさん",
  132.         "こやけ",
  133.         "ごようきき",
  134.         "サード",
  135.         "さーもん",
  136.         "さいころ",
  137.         "さくらんぼ",
  138.         "サドラー",
  139.         "さばとら",
  140.         "サラミ",
  141.         "さんかく",
  142.         "サンチュ",
  143.         "ジェクツ",
  144.         "シェフ",
  145.         "しおしお",
  146.         "しこみ",
  147.         "ししゃも",
  148.         "ジッチャ",
  149.         "しめさば",
  150.         "しゃちょう",
  151.         "じゃんぼ",
  152.         "しょうきち",
  153.         "じょんがら",
  154.         "しらたき",
  155.         "しろごま",
  156.         "すいっちょ",
  157.         "スイーツ",
  158.         "すけさん",
  159.         "スザク",
  160.         "すなぎも",
  161.         "すなぶくろ",
  162.         "スベスベ",
  163.         "スマぼう",
  164.         "すりごま",
  165.         "セイリュウ",
  166.         "せばすちゃ",
  167.         "せんじゅ",
  168.         "センス",
  169.         "そばゆ",
  170.         "ソ\フビ",
  171.         "そもさん",
  172.         "そら",
  173.         "そりこみ",
  174.         "たあぼう",
  175.         "だいおう",
  176.         "だいきち",
  177.         "たいさ",
  178.         "タイタニー",
  179.         "たいちょう",
  180.         "たいやき",
  181.         "たつじん",
  182.         "タピオカ",
  183.         "タマ",
  184.         "たまご",
  185.         "だるにゃん",
  186.         "タンしお",
  187.         "たんばりん",
  188.         "たんぱん",
  189.         "チムカタ",
  190.         "ちゃー",
  191.         "チャンス",
  192.         "ちゅうとろ",
  193.         "ちょいわる",
  194.         "チョッキ",
  195.         "つけめん",
  196.         "つゆだく",
  197.         "っょぃゃっ",
  198.         "つんつん",
  199.         "ツンドラ",
  200.         "ていおう",
  201.         "デイヤー",
  202.         "でかちょー",
  203.         "ですます",
  204.         "てっかまき",
  205.         "てつわん",
  206.         "てばさき",
  207.         "てふてふ",
  208.         "テミヤゲ",
  209.         "テリヤカレ",
  210.         "でれつん",
  211.         "でろでろ",
  212.         "てんぐどの",
  213.         "デンジャー",
  214.         "てんたま",
  215.         "どうする?",
  216.         "ときそば",
  217.         "とくじょう",
  218.         "ドクトル",
  219.         "とくロース",
  220.         "トッチャ",
  221.         "どってん",
  222.         "トップ",
  223.         "ドドド",
  224.         "となかい",
  225.         "ドリアン",
  226.         "トロイカ",
  227.         "ドロドロ",
  228.         "ドン",
  229.         "とんかつ",
  230.         "とんこつ",
  231.         "トンズラ",
  232.         "とんとろ",
  233.         "ナイスガイ",
  234.         "なにがし",
  235.         "ナポリタン",
  236.         "なるなる",
  237.         "なんぞこれ",
  238.         "ニイハオ",
  239.         "にく",
  240.         "にくきゅう",
  241.         "にっぽり",
  242.         "にとうへい",
  243.         "にゃんころ",
  244.         "ニラニラ",
  245.         "ニンテン",
  246.         "にんにくん",
  247.         "ねこめ",
  248.         "ネブクロ",
  249.         "ねりけし",
  250.         "ねりま",
  251.         "ねるねる",
  252.         "ハード",
  253.         "バイバイ",
  254.         "はかばか",
  255.         "ばじりこ",
  256.         "バスター",
  257.         "はずれ",
  258.         "バタール",
  259.         "ばっちゃ",
  260.         "ハッピー",
  261.         "ハナチャン",
  262.         "はも",
  263.         "ハラホレ",
  264.         "はらまき",
  265.         "パリジャン",
  266.         "はるかぜ",
  267.         "はるさめ",
  268.         "パルメザン",
  269.         "ハロー",
  270.         "はんぺん",
  271.         "びーふん",
  272.         "ヒエン",
  273.         "ピカピカ",
  274.         "ビギナー",
  275.         "ひざかけ",
  276.         "ビシャモン",
  277.         "ぴすたちお",
  278.         "びたみん",
  279.         "ひつじ",
  280.         "ヒットミー",
  281.         "ビビンバ",
  282.         "ビャッコ",
  283.         "ひょうたん",
  284.         "ビョーィ",
  285.         "ピョンピー",
  286.         "ピンクだま",
  287.         "ピンポン",
  288.         "ぶぅぅぅん",
  289.         "ふーたろう",
  290.         "ふぉぉぉぉ",
  291.         "ふくふく",
  292.         "ブコツもの",
  293.         "ふっくら",
  294.         "ぶどうとう",
  295.         "ププル",
  296.         "ふやける",
  297.         "ぶらすと",
  298.         "ブルー",
  299.         "ふれんち",
  300.         "ペット",
  301.         "ぺっぴー",
  302.         "へっぽこ",
  303.         "ポ",
  304.         "ぼうたら",
  305.         "ポエマー",
  306.         "ホカホカ",
  307.         "ぼく",
  308.         "ぽっちゃり",
  309.         "ポッポク",
  310.         "ホネボーン",
  311.         "ポポル",
  312.         "ぽりごん",
  313.         "ポリスマン",
  314.         "ぼるしち",
  315.         "ホルマリン",
  316.         "ボンジュー",
  317.         "ぼんじり",
  318.         "マーベラス",
  319.         "マイルド",
  320.         "まえうしろ",
  321.         "マエストロ",
  322.         "マカリキ",
  323.         "ましかく",
  324.         "まじかる",
  325.         "マゼラン",
  326.         "マタドール",
  327.         "ままかり",
  328.         "マヨラー",
  329.         "まりしてん",
  330.         "まる",
  331.         "マルデタコ",
  332.         "まるやかれ",
  333.         "まわりこみ",
  334.         "まわる",
  335.         "まんまる",
  336.         "まんもす",
  337.         "ミサイラー",
  338.         "みそだれ",
  339.         "みみがー",
  340.         "みやこ",
  341.         "みよしの",
  342.         "ミリひこ",
  343.         "むしとり",
  344.         "ムチプリ",
  345.         "ムッシュ",
  346.         "めいじん",
  347.         "メガうな",
  348.         "メチル",
  349.         "めんそーれ",
  350.         "めんたい",
  351.         "モエツキ",
  352.         "モケモケ",
  353.         "もずくす",
  354.         "モニータ",
  355.         "もふもふ",
  356.         "もみあげ",
  357.         "もろへいや",
  358.         "もわれ",
  359.         "モンジャ",
  360.         "やきトン",
  361.         "ヤシャ",
  362.         "やつはし",
  363.         "やまんば",
  364.         "ヤヤ",
  365.         "やんばる",
  366.         "ゆうやけ",
  367.         "ゆげどおし",
  368.         "ゆたんぽ",
  369.         "ゆでたまご",
  370.         "ゆめおち",
  371.         "ようろう",
  372.         "よるむん",
  373.         "よろしく!",
  374.         "ラスいち",
  375.         "ラッキー",
  376.         "ラブ",
  377.         "らんにんぐ",
  378.         "リアスしき",
  379.         "リサイクル",
  380.         "リディア",
  381.         "りもこん",
  382.         "りゃんし",
  383.         "りろすけ",
  384.         "リンリン",
  385.         "ルーシィ",
  386.         "レジン",
  387.         "れんこん",
  388.         "ロイヤル",
  389.         "ローレンス",
  390.         "わおり",
  391.         "ワックス",
  392.         "わびさび",
  393.         "ワンさん",
  394.         "ワンダバ",
  395.         "プリム",
  396.         "ブローム",
  397.         "ガル",
  398.         "メロリン",
  399.         "ポッパラム",
  400.         "ホーエル",
  401.         "バイタン",
  402.         "メクキャノ",
  403.         "ミズオ",
  404.         "ローダ",
  405.         "ボンヘッド",
  406.         "ブラッサ",
  407.         "ギラーン",
  408.         "ブチュルス",
  409.         "タウタウ",
  410.         "ブボット",
  411.         "フロウス",
  412.         "アロアロス",
  413.         "ボトロン",
  414.         "ジャキール",
  415.         "ダイバーン",
  416.         "トリスタ",
  417.         "ウィームズ",
  418.         "ギャムギャ",
  419.         "キャン",
  420.         "パッチ",
  421.         "ファウロン",
  422.         "デスポッド",
  423.         "ビュッシー",
  424.         "スパー",
  425.         "コッコン",
  426.         "ジェイダス",
  427.         "アリアンズ",
  428.         "マイト",
  429.         "シェリー",
  430.         "ンガゴグ",
  431.         "ガンナッタ",
  432.         "サイマル",
  433.         "テキン",
  434.         "キャタガー",
  435.         "アラモス",
  436.         "ブーバス",
  437.         "アーマン"
  438.     };
  439.    
  440.     long seed = strtol(argv[1], NULL, 16), seed_t, seed_tt, tmp;
  441.     int step = atoi(argv[2]);
  442.     char *target = argv[3];
  443.     int i, j;
  444.    
  445.     for(i = 0; i < 10000; i++){
  446.         seed_t = seed;
  447.         for(j = 0; j < i; j++){
  448.             advance_seed(&seed_t);
  449.         }
  450.         tmp = seed_t;
  451.        
  452.         advance_seed(&seed_t);
  453.         advance_seed(&seed_t);
  454.         seed_t = seed_t & 0x7FFFFF00;
  455.        
  456.         for(j = 0; j < step; j++){
  457.             advance_seed(&seed_t);
  458.         }
  459.        
  460.         seed_tt = seed_t;
  461.         advance_seed(&seed_tt);
  462.         if(strcmp(select_turnip(seed_t, seed_tt), target) == 0){
  463.             printf("step : %d\n\n", i);
  464.            
  465.             for(j = 0; j < 10; j++){
  466.                 back_seed(&tmp);
  467.             }
  468.             for(j = 0; j < 10; j++){
  469.                 advance_seed(&tmp);
  470.                 printf("[%04d] %08X %s\n", i - 9 + j, (unsigned int)tmp, name[((unsigned int)((tmp >> 8) * 401) >> 23)]);
  471.             }
  472.             return 0;
  473.         }
  474.        
  475.     }
  476.  
  477.     return 0;
  478. }
  479.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement