{"id":21838372,"url":"https://github.com/prust/c-talk","last_synced_at":"2026-01-04T10:42:49.221Z","repository":{"id":142795738,"uuid":"147751849","full_name":"prust/c-talk","owner":"prust","description":"c-talk scripting language","archived":false,"fork":false,"pushed_at":"2018-11-16T06:23:01.000Z","size":13,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-01-26T10:30:59.153Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/prust.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-09-07T01:08:24.000Z","updated_at":"2018-11-16T06:23:02.000Z","dependencies_parsed_at":"2023-06-03T15:30:20.108Z","dependency_job_id":null,"html_url":"https://github.com/prust/c-talk","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prust%2Fc-talk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prust%2Fc-talk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prust%2Fc-talk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/prust%2Fc-talk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/prust","download_url":"https://codeload.github.com/prust/c-talk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244819802,"owners_count":20515646,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-27T21:10:40.845Z","updated_at":"2026-01-04T10:42:49.165Z","avatar_url":"https://github.com/prust.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"# c-talk\n\nA simple language, loosely in the HyperTalk family, designed for simplicity of implementation and embedding in C.\n\nAt this point, it is a largely imaginary language, but the below example should give an idea of what I would like the language to feel like.\n\nExample breakout clone:\n\n### Setup\n\n```applescript\nset lives to 3\n  \n-- create paddle in the middle/bottom of the screen\nset paddle to new object (width: 70, height: 30, color: green)\nset paddle.x to screen.width / 2 - paddle.width / 2\nset paddle.y to screen.height - paddle.height\nset paddle.speed to 10\n\n-- create 30 bredricks scattered around the top half of the screen\nset num_bricks_per_screen_w = screen.width / brick.width\nset num_bricks_per_screen_h = screen.height / brick.height\nset bricks to new collection (max size: 30)\nrepeat 30x:\n  set brick to new object (width: 20, height: 10, color: blue)\n  set brick.x to random (max: num_bricks_per_screen_w) * brick.width\n  set brick.y to random (max: num_bricks_per_screen_h / 2) * brick.height\n  put brick in bricks\n\n-- create a ball dropping at 45 degree angle\nset ball to new object (width: 5, height: 5, color: green, speed: 3)\nset ball.delta_x to random (max: 2)\nif ball.delta_x = 0 then:\n  set ball.delta_x to -1\nset ball.delta_y to 1\n```\n\n### Update\n\n```applescript\nif is_pressed 'left' then:\n  set paddle.x to paddle.x - paddle.speed\nif is_pressed 'right' then:\n  set paddle.x to paddle.x + paddle.speed\n\n-- if ball is outside the screen, move it in \u0026 bounce the direction (or lose a life)\nif ball.x \u003c 0 then:\n  set ball.x to 0\n  set ball.delta_x to -ball.delta_x\nif ball.x \u003e screen.width then:\n  set ball.x to screen.width\n  set ball.delta_x to -ball.delta_x\nif ball.y \u003c 0 then:\n  set ball.y to 0\n  set ball.delta_y to -ball.delta_y\nif ball.y \u003e screen.height then:\n  set ball.y to 0\n  set lives to lives - 1\n  if lives = 0 then:\n    end_game\n\n-- bounce the ball off the paddle\nif collide ball (with: paddle) then:\n  bounce ball (off: paddle)\n  \n-- bounce the ball off bricks\nfor_each brick in bricks:\n  if collide ball (with: brick) then:\n    bounce ball (off: brick)\n    destroy brick\n    if (count bricks) = 0 then:\n      end_game\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprust%2Fc-talk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprust%2Fc-talk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprust%2Fc-talk/lists"}